Skip to content

Latest commit

 

History

History
123 lines (105 loc) · 5.28 KB

Helm_Deployment.md

File metadata and controls

123 lines (105 loc) · 5.28 KB

Deployment via Helm Charts

Helm is a standard framework for deploying Kubernetes applications. The Helm charts for Neon Diana are the recommended method for production deployment.

Preparing for Backend Deployment

Before deploying a Diana backend, ensure the following has been completed:

  • Kubernetes Cluster is deployed and helm CLI is properly configured
  • Desired domain is ready to forward all relevant subdomains to the cluster
  • Add the following Helm repositories:
    helm repo add diana https://neongeckocom.github.io/neon-diana-utils
    helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
    helm repo add jetstack https://charts.jetstack.io
    helm repo add bitnami https://charts.bitnami.com/bitnami

Backend Configuration

Configure the backend deployment with diana configure-mq-backend <output_path>. Follow the shell prompts to provide any necessary configuration parameters; when complete, the specified output_path will be populated with Helm charts to deploy.

Ingress

An NGINX ingress chart is provided in the diana Helm repository, diana/ingress-common. A values.yaml file may be specified to include any additional TCP ports to be used (i.e. for RabbitMQ) and then the chart is generally deployed to the ingress-nginx namespace. Only one ingress is necessary for a cluster. For example, an ingress values.yaml could look like:

ingress-nginx:
  tcp:
    5672: "default/neon-rabbitmq:5672"

Assuming the file exists at /home/$USER/values.yaml, this would be deployed with:

helm install -f /home/$USER/values.yaml ingress-nginx diana/ingress-common --namespace ingress-nginx --create-namespace

At this point, check to make sure all expected subdomains resolve to the ingress IP address (ping each domain and check the resolved address)

Diana Backend

Validate the configuration in <output_path>/diana-backend/values.yaml; at minimum, the following parameters MUST be updated:

  • domain
  • letsencrypt.email
  • letsencrypt.server (default is test endpoint)

After updating or overriding these values, deploy the backend via:

helm dependency update <output_path>/diana-backend
helm install diana-backend <output_path>/diana-backend --namespace backend --create-namespace

Neon Core

After the backend has been deployed, Neon Core services may also be deployed to the same namespace. If you were prompted to configure Neon when setting up the backend, then the Helm charts and configuration has already been completed.

If Neon was not configured with the backend, you can generate helm charts via diana configure-neon-core <output_path>, where <output_path> is the same path used for the backend. Follow the prompts to either generate an updated MQ configuration or input values if you wish to manually update RabbitMQ. If you had diana automatically update MQ configuration, you can update an existing deployment via:

helm upgrade diana-backend <output_path>/diana-backend --namespace backend

Once the backend has been deployed or updated, Neon Core services can be deployed via:

helm install neon-core <output_path>/neon-core --namespace backend

Klat Chat

After the backend has been deployed, Klat Chat may also be deployed to the same namespace.

Note that you will need a configured MongoDB instance as well as an available SFTP Share to complete this deployment

If Klat was not configured with the backend, you can generate helm charts via diana configure-klat <output_path>, where <output_path> is the same path used for the backend. Follow the prompts to either generate an updated MQ configuration or input values if you wish to manually update RabbitMQ. If you had diana automatically update MQ configuration, you can update an existing deployment via:

helm upgrade diana-backend <output_path>/diana-backend --namespace backend

Once the backend has been deployed or updated, Klat services can be deployed via:

helm install klat-chat <output_path>/klat-chat --namespace backend

Chatbots

After the backend has been deployed, Chatbots services may also be deployed to the same namespace. If you were prompted to configure Chatbots when setting up the backend, then the Helm charts and configuration has already been completed.

If Chatbots were not configured with the backend, you can generate helm charts via diana configure-chatbots <output_path>, where <output_path> is the same path used for the backend. Follow the prompts to either generate an updated MQ configuration or input values if you wish to manually update RabbitMQ. If you had diana automatically update MQ configuration, you can update an existing deployment via:

helm upgrade diana-backend <output_path>/diana-backend --namespace backend

Once the backend has been deployed or updated, Chatbot services can be deployed via:

helm install chatbots <output_path>/chatbots --namespace backend

Other Notes

  • The namespace used for Backend deployment is configurable; it may be desirable to use namespaces for test vs production deployments, to separate the Diana backend from other deployments, or both.