Syntphony CAI server Installation guide

Why use Helm?

Helm can make deployments easier and repeatable because all resources for an application are deployed by running one command:

$ helm install <chart>

With Helm, configuration settings are kept separate from the manifest formats. You can edit the configuration values without changing the rest of the manifest.

Configuration settings are in a values.yaml file. You update the runtime parameters in that file to deploy each application instance differently.

You can use single commands for installing, upgrading, and deleting Syntphony CAI releases. More information about Helm at https://helm.sh/arrow-up-right.

Description

This chapter describes the design and governance for the Syntphony CAI 4 helm charts.

These helm charts are designed to be a lightweight way to configure, package and deploy Syntphony CAI admin and Syntphony CAI instance resources onto Kubernetes clusters, both for a single installation and multicluster installation. These charts are currently tested against the following versions:

  • Syntphony CAI application: 4.1.0

  • Helm: 3.5.0

  • Kubernetes: 1.22

  • Istio: 1.11.7

The GitLab repository for these charts is eva4-helm-repository. Following is a description of repository each folder:

  • eva-admin-charts

    • eva-admin-base-resources: a chart to deploy the base configurations for Syntphony CAI admin.

    • eva-admin-saas-resources: a chart to deploy the components for Syntphony CAI admin SaaS.

    • eva-admin-rabbitmq: a chart to deploy the rabbitmq cluster operator and cert manager for rabbitmq.

    • keycloak: contains the keycloak-values.yaml file to use with helm installation to deploy a keycloak.

    • minio: contains the values.yaml file to use with helm installation to install Minio.

    • eva-admin-rabbitmq-server: a chart to deploy the rabbitmq messaging topology operator and rabbitmq resources.

    • eva-admin-rabbitmq-config: a chart to deploy exchange, permissions, users, and secrets for the rabbitmq resources.

    • eva-admin-config-server: a chart to deploy the core component for Syntphony CAI config server.

    • eva-admin-config-server-post: a chart to deploy several configuration jobs for admin cluster.

    • eva-admin-keycloak-realm-post: a chart to create necessary realm to clever engine auth.

    • eva-admin-server: a chart to deploy the core component for Syntphony CAI admin application.

  • eva-instance-charts:

    • eva-instance-base-resources: a chart to deploy the base configurations for an Syntphony CAI instance.

    • eva-instance-saas-resources: a chart to deploy the components for Syntphony CAI instance SaaS. Only for eva-cloud.

    • eva-instance-server: this chart contains the following subcharts:

      • eva-core: a chart to deploy the core components for Syntphony CAI admin.

      • eva-envoy-config: a chart to deploy eva-decrypt-filter and eva-envoy-filter resources.

  • eva-configuration-charts:

    • eva-organization: chart to launch a job to create a new organization for the instance.

    • eva-instance-config-server-post: chart to run configurations jobs, where:

      • instance-default-config-job: apply the default configuration for an instance.

      • instance-honeypot-config-job: apply the honeypot configuration for an instance.

    • eva-environment: chart to launch a job to create or update an environment for the instance.

Important Syntphony CAI 4 helm charts configuration

Syntphony CAI deployment with Helm requires very little configuration to get started, but there are several components which must be considered before the installation:

NodeSelector

If the application environment is based on multi-node pool architecture, uncomment the nodeSelector section with the specific label into chart Values.yaml files, and check if the label has been added on node pools.

If there is no node selection constraint, comment the nodeSelector section into values.yaml files.

PullSecret

If the application environment uses a private container registry with authentication, uncomment the imagePullSecret section with the specific name chart values.yaml files.

If login information is not requiring, comment the imagePullSecret section into values.yaml files.

Redis and MongoDB

If the application environment uses a mongodb or/and redis as a service in the cloud, it will be mandatory to provide the configuration data of these cloud services into redis and mongo section of eva-admin-base-resources, eva-admin-server, eva-instance-base-resources, eva-instance-server and eva-enviroment values.yaml files.

Remember include the redis cidr range into eva-admin-saas-resources and eva-instance-saas-resources values.yaml.

Single Installation

For a single server cluster, set true the single_installation option into enabled_components in eva-instance-base-resources, eva-instance-saas-resources and eva-instance-server values.yaml files.

Usernames, service name and passwords

The following charts are not meant to be executed as they are - They contain fields such as passwords, usernames and service names (Found as [YOUR-SERVICE], 'password-in-plain-text', etc). Please read carefully and make the proper substitutions for each of them.

Wait before executing the post config charts

During the admin cluster installation, keep in mind these tips:

  • Before executing eva-admin-rabbitmq-config chart, it must be validated that eva-rabbitmq-server pod has been successfully deployed.

  • Before executing eva-config-server-post chart, it must be validated that eva-config-server pod has been successfully deployed.

  • Before executing eva-admin-keycloak-realm-post chart, it must be validated that keycloak has been successfully installed.

Admin Charts

eva-admin-base-resources

eva-admin-base-resources allows you set base components for Syntphony CAI admin application. You can activate the section for pull secret if you need use authentication to container Registry. Also, it's possible to configure nodeSelector option for the deployment.

The following namespaces are deployed: eva-admin, minio and keycloak. Also, eva-gateway and eva-gateway-internal are installed.

The code below is the eva-admin-base-resources Values.yaml:

eva-admin-saas-resources

circle-exclamation

It allows you set SaaS components for eva admin application, network policies, load balancer components and Istio Addons like, Prometheus, Grafana and Kiali. You can choose to deploy optional Istio tunning components. To do this, set true istio_tunning in the enabled_components section in values.yaml file. In addition, you can deploy Prometheus with a pvc, setting true prometheus_with_pvc in the enabled_components section as detailed below:

This chart also allows to change the image tag version of each component, and container registry name. You can activate the section for pull secret if you need use authentication to container registry. Also, it's possible to configure nodeSelector option for the deployment. Do this with Values.yaml customization.

circle-info

Remember: once installed this chart, the ingress spreading to GKE can be delayed for 5 to 10 minutes.

The code below is the eva-admin-saas-resources Values.yaml:

eva-admin-rabbitmq

It allows set RabbitMQ operator components for Syntphony CAI admin application, rabbitmq cluster operator and cert manager resources.

eva-admin-rabbitmq-server

It allows set RabbitMQ messaging topology operator components and eva-rabbitmq resources for Syntphony CAI admin application.

The code below is the eva-admin-rabbitmq-server Values.yaml:

eva-admin-rabbitmq-config

It allows set rabbitMQ users, permissions, exchage and secrets.

eva-admin-config-server

It allows deploy eva-config-server and components for eva admin application. The code below is the eva-admin-config-server Values.yaml:

eva-admin-config-server-post

circle-info

Remember: Before executing, make sure that eva-config-server pod is deployed successfully.

This chart executes the eva-admin-config-job to apply admin configuration changes. The code below is the eva-admin-config-server-post Values.yaml:

eva-admin-keycloak-realm-post

circle-info

Remember: Before executing, make sure that the keycloak pod is deployed successfully.

This chart executes eva-admin-keycloak-eva-bot-realm-job to create a new realm in keycloak and posteriorly clever-system user into this realm. For that we have the values.yaml below.

eva-admin-server

This chart contains the following subcharts:

  • eva-envoy-config: it allows deploy Istio EnvoyFilter resources.

  • eva-core: it allows deploy several objects for eva admin cluster, eva-proxy, eva-bot-admin, eva-object-store, eva-environment, eva-organization, eva-security-checker, eva-cockpit and hpa resources.

The code below is the eva-admin-server Values.yaml:

Configuration Charts

Configuration charts consists of several charts to apply configuration changes to a set elements in both admin and instances cluster. Each chart has a purpose.

eva-instance-config-server-post

circle-info

Remember: Before creating a new instance, eva-instance-config-server-post chart has been released into admin cluster to apply configuration changes for an instance.

This chart executes two jobs to apply configurations changes for an instance:

  • instance-default-config-job: apply the default configuration for an instance.

  • instance-honeypot-config-job: apply the honeypot configuration for an instance.

The code below is the eva-instance-config-server-post Values.yaml:

eva-register-instance

This chart executes a job to register a new instance. The code below is the eva-register-instace Values.yaml:

circle-exclamation

eva-organization

This chart executes a job to create a new organization for an instance. The code below is the eva-organization Values.yaml:

eva-environment

This chart executes a job to create or update an environment for an instance. The code below is the eva-environment Values.yaml:

Instance Charts

eva-instance-base-resources

eva-instance-base-resources allows you set base components for Syntphony CAI instance application. You can activate the section for pull secret if you need use authentication to container Registry. Also, it's possible to configure nodeSelector option for the deployment.

circle-info

Remember: for a single server installation, set true single_installation in enabled_components into optional section in eva-instance-base-resources Values.yaml file.

The namespace Syntphony CAI is created and eva-gateway id deployed only if not single installation. The code below is the eva-instance-base-resources Values.yaml:

eva-instance-saas-resources

circle-exclamation

It allows you set SaaS components for Syntphony CAI instance application, network policies, load balancer components and Istio Addons like, Prometheus, Grafana and Kiali. You can choose to deploy optional Istio tunning components. To do this, set true istio_tunning in the enabled_components section in values.yaml file. In addition, you can deploy Prometheus with a pvc, setting true prometheus_with_pvc in the enabled_components section as detailed below.

circle-info

Remember: for a single server installation, set true single_installation in enabled_components into optional section in eva-instance-saas-resources Values.yaml file.

This chart also allows to change the image tag version of each component, and container registry name. You can activate the section for pull secret if you need use authentication to container registry. Also, it's possible to configure nodeSelector option for the deployment. Do this with Values.yaml customization.

circle-info

Remember: once installed this chart, the ingress spreading to GKE can be delayed for 5 to 10 minutes.

The code below is the eva-admin-saas-resources Values.yaml:

eva-instance-server

This chart contains the following subcharts:

  • eva-instance-channel: deploy eva-channel and components and optionally deploy facebook, google-assistant and Infobip channels and hpas.

  • eva-instance-nlp: deploy optionally nlp resources.

  • eva-instance-training: deploy optionally training resources.

  • eva-instance-core: deploy several objects for Syntphony CAI instance cluster, eva-answer, eva-bot, eva-intent, … and hpa resources.

circle-info

Remember: for a single server installation, set true single_installation in enabled_components into optional section in eva-instance-server Values.yaml file.

This chart also allows to change the image tag version of each component, and container registry name. You can activate the section for pull secret if you need use authentication to container registry. Also, it's possible to configure nodeSelector option for the deployment. Do this with values.yaml customization.

The code below is the eva-instance-server values.yaml:

Usage

Admin Cluster

Once you have installed or checked the dependencies needed onto system (review the section Supported Configurations for this), execute in order, the following commands to deploy ADMIN charts for the eva admin cluster:

  1. Install eva-admin-base-resources chart.

Additionally, install the eva-admin-saas-resources chart if you're installing an eva-cloud solution. Once installed, the ingress spreading to GKE can be delayed for 5 to 10 minutes.

circle-exclamation

2. Install eva-admin-rabbitmq chart.

3. In this step, execute the following commands to install the codecentric/keycloak chart archive. You can isntall min.io with PVC or Google GCS. Read the files comments to know how to configure each. Run the next commands to install a minio on admin cluster using the Helm package manager

4. In this step, execute the following commands to install the Minio chart archive:

5. Install eva-admin-rabbitmq-server chart:

6. Before executing, make sure that eva-rabbitmq-server pod is deployed successfully. Install eva-admin-rabbitmq-config chart:

7. Install eva-admin-config-server chart:

8. Before executing, make sure that eva-config-server pod is deployed successfully. Install eva-admin-config-server-post chart:

9. We'll need to setup clever-system user in our keycloak, so install the eva-admin-keycloak-realm-post chart:

10. Install eva-admin-server chart:

Admin Configurations

circle-info

Remember: before installing an instance, it is mandatory execute eva-instance-config-server-post chart into Admin cluster to apply configuration changes for an instance.

circle-info

Remember: once the eva-instance-config-server-post chart has been released into admin cluster and before launching the instance charts, the next task is to register a new instance.

Instance Cluster

Once you have installed the admin cluster, execute in order, the following commands to deploy an eva INSTANCE helm charts for an eva instance cluster:

1. Install eva-instance-base-resources chart:

Additionally, install the eva-admin-saas-resources chart if you're installing an eva-cloud solution. Once installed, the ingress spreading to GKE can be delayed for 5 to 10 minutes.

circle-exclamation

2. Install eva-admin-rabbitmq chart

Instance Configurations

Finally, execute the next commands to register and configure an organization and an environment for an instance:

Testing the charts

To debug templates, use the following options with the commands to have the server render the templates, and return the resulting manifest file:

To render chart templates locally and display the output, use the following command:

To examine the chart for issues, use the following command:

Supported Configurations

These charts are currently tested against 4.0.0 version from Syntphony CAI 4 application. The table below shows the dependencies versions that have been tested:

Dependency
Version

Kubernetes

1.22.11

Helm

3.5.0

Istio

1.12.7

GKE

1.22.11-gke.400

README.md

There are three README.md file into eva4-helm-repository which provide the guide to configure and deploy eva 4 helm charts.

Last updated

Was this helpful?