Helm is a standard framework for deploying Kubernetes applications. The Helm charts for Neon Diana are the recommended method for production 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
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.
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)
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
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
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
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
- 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.