Cognigy.AI in an Enterprise Conversational Automation Platform for building advanced, integrated Conversational Automation Solutions through the use of cognitive bots.
Cognigy.AI Marketplace leverages extensive suite of ready-to-use channel connectors, third-party integrations, and multimodal applications to get the most out of Cognigy.AI.
A variety of pre-built Extensions can be installed with a single-click from the Cognigy Extension Marketplace, if configured.
More information can be found at the official Cognigy.AI Marketplace page.
This Helm chart installs a Cognigy.AI Marketplace deployment on a Kubernetes cluster using the Helm package manager.
- Kubernetes Cluster
v1.19
-v1.29
running on either of the following platforms:- AWS EKS (Amazon Elastic Kubernetes Service)
- Azure AKS (Azure Kubernetes Service)
- "Generic" on-premises or Google Kubernetes Engine (GKE). Note: Running Cognigy.AI Marketplace on-premises will require additional manual steps; it is recommend to use public clouds (AWS or Azure) instead.
- kubectl utility connected to the target Kubernetes cluster. See install instructions here.
- Helm
v3.9.0
-v3.12.3
. See install instructions here. - (Optional) git binary to clone repository.
- A stable version of Cognigy.AI deployed in the target cluster. See Cognigy.AI Helm Chart for details.
To deploy a new Cognigy.AI Marketplace setup, create a separate file with Helm release values. Refer to values_prod.yaml
(see below) file as a baseline, as it is recommended to start with:
-
Clone the Cognigy.AI Marketplace git repository locally and browse to the repository directory.
git clone https://github.com/Cognigy/cognigy-marketplace-helm-chart.git cd cognigy-marketplace-helm-chart
-
Make a copy of
values_prod.yaml
into a new file and name it accordingly. This custom values file is referred to asYOUR_VALUES_FILE.yaml
later in this document. -
Do not make a copy of default
values.yaml
file as it contains hardcoded docker images references for required services, and thus they need to be changed manually during upgrades. However, some variables from defaultvalues.yaml
file can be added into theYOUR_VALUES_FILE.yaml
later on for customization. -
Create a dedicated namespace to deploy Cognigy.AI Marketplace using
kubectl
utility using below command (replace 'TARGET_NAMESPACE
' with your own, e.g. 'marketplace'):kubectl create namespace TARGET_NAMESPACE
- This namespace is referred to as
TARGET_NAMESPACE
later in this document.
- This namespace is referred to as
-
A secret named
cognigy-registry-token
is expected to be present inTARGET_NAMESPACE
containing credentials for connecting to Cognigy's image registry. If it is not already present, it can be created using the following command usingkubectl
utility:kubectl create secret docker-registry cognigy-registry-token \ --docker-server=cognigy.azurecr.io \ --docker-username=<your-username> \ --docker-password=<your-password> -n TARGET_NAMESPACE
- Note: Make sure to replace
<your-username>
and<your-password>
with your own credentials. - If
cognigy-registry-token
secret is not used, refer to existing secret by setting the secret's name inimage.imagePullSecret
key inYOUR_VALUES_FILE.yaml
file.
- Note: Make sure to replace
The following parameters needs to be set as a bare minimum in YOUR_VALUES_FILE.yaml
to get started:
replicaCount
: Set the number of pod replicas for Marketplace deployment. Recommended: at least3
.- Ingress:
-
By default, ingress is enabled (
.ingress.enabled: true
) andingressClassName: traefik
is set. -
Set the marketplace hostname (FQDN) in
.ingress.host
key. -
Custom CA Certificate and Private Key:
- Both
ingress.enabled
andingress.tls.enabled
must be enabled (set value totrue
) for this to work. - To use Custom CA certificate and private key, provide the contents of the certificate as plain text in
ingress.tls.crt
key and private key iningress.tls.key
key. Refer to notes invalues.yaml
file underingress.tls
key for example format. A 'secret' will be created based on these custom values inTARGET_NAMESPACE
. - Existing TLS certificate and private key can be re-used, which must exist in the cluster as a 'secret' of type TLS in the
TARGET_NAMESPACE
(see reference: TLS Secrets). Refer to keyingress.tls.existingSecret
invalues.yaml
file.
Note: Make sure to install a publicly trusted TLS certificate signed by a Certificate Authority. Although using of self-signed certificates is possible in test environments, Cognigy does not recommend usage of self-signed certificates, does not guarantee full compatibility with associated products and will not support such installations.
- Both
-
Follow the below instructions to install the chart:
-
Determine which version of helm chart (
HELM_CHART_VERSION
) to install as it will be used in next step. The chart version can be determined from the 'tags' in the git repository. -
Install Cognigy.AI Marketplace Helm release:
-
Login into Cognigy helm registry (provide your Cognigy Container Registry credentials):
helm registry login cognigy.azurecr.io \ --username <your-username> \ --password <your-password>
-
Install Helm Chart in the
TARGET_NAMESPACE
namespace:# installing helm chart helm upgrade --install marketplace \ --namespace TARGET_NAMESPACE --create-namespace \ --version HELM_CHART_VERSION \ --values YOUR_VALUES_FILE.yaml \ oci://cognigy.azurecr.io/helm/marketplace-server-backend
-
Alternatively, you can install it from the local chart (not recommended):
helm upgrade --install marketplace \ --namespace TARGET_NAMESPACE --create-namespace \ --version HELM_CHART_VERSION \ --values YOUR_VALUES_FILE.yaml .
-
-
Verify that all pods are in a ready state (wait for 2-5 minutes before executing this command):
kubectl get pods --namespace TARGET_NAMESPACE # Check ingress status, if enabled kubectl get ingress --namespace TARGET_NAMESPACE
It's expected that all pods managed by the marketplace deployment are in 'Running' state, along with one active service in the TARGET_NAMESPACE
.
To upgrade Cognigy.AI Marketplace release a newer version, upgrade the existing Helm release to a particular helm chart version (HELM_CHART_VERSION
). This can be achieved using the following command:
# upgrading helm chart to newer version
helm upgrade --install marketplace \
--namespace TARGET_NAMESPACE --create-namespace \
--version HELM_CHART_VERSION \
--values YOUR_VALUES_FILE.yaml \
oci://cognigy.azurecr.io/helm/marketplace-server-backend
The same can be achieved by downloading the new chart files, unzipping the files locally and running following command (not recommended) in the uncompressed files' directory:
helm upgrade --install marketplace \
--namespace TARGET_NAMESPACE --create-namespace \
--version HELM_CHART_VERSION \
--values YOUR_VALUES_FILE.yaml .
Default resources for Cognigy.AI Marketplace microservices specified in values.yaml
are tailored to provide consistent performance for typical production use-cases. However, to meet specific demands, users can modify Memory/CPU resources or number of replicas. For this, copy specific variables from default values.yaml
into YOUR_VALUES_FILE.yaml
for the microservice and adjust the Request/Limits
and replicaCount
values accordingly.
To uninstall a Cognigy.AI Marketplace helm release, execute the following:
helm uninstall --namespace TARGET_NAMESPACE marketplace
Note that Secrets are not removed when Helm release is deleted.
To fully remove secrets, run the following command:
kubectl delete --namespace cognigy-ai secrets --all