# Slim Operator installation

# Pre-requisites

WARNING

For non OpenShift deployments: ingress controller needs to be deployed before install Intel® Tiber™ AI Studio platform

Note

Ask the delivery engineer for the updated/relevant tags for the app to conduct the installation.

# Install instructions

  1. Add the Helm repository and perform an update to get the latest chart.
helm repo add cnvrg https://charts.slim.cnvrg.io/cnvrg;
helm repo update;
helm search repo cnvrg/mlops -l 
  1. Install AI Studio using Helm.

Note

this chart will be deployed to the cnvrg namespace, and it hosts the rest of the AI Studio control plane.

  1. Set the variable for latest application image. This can be provided by Ai Studio support: support_AIStudio@intel.com.
CNVRG_APP_IMAGE="cnvrg/app:v x.x.x."
  1. Deploy AI Studio using the default deployment.

Please provide your clusterDomain, This domain must have wildcard DNS entry for *.<your_domain>. You will need to create a CNAME/A record to point external ip or hostname of the ingress-controller.

NOTE

The AI Studio docker images are in a private docker registry. Please contact AI Studio support: support_AIStudio@intel.com for a registry username and password.

helm install cnvrg cnvrg/mlops --create-namespace -n cnvrg --timeout 1500s \
  --set clusterDomain=<YOUR_DOMAIN> \
  --set controlPlane.image=${CNVRG_APP_IMAGE} \
  --set registry.user=<docker-registry-username> \
  --set registry.password=<docker-registry-password> 

# Advanced Helm Options

There are numerous ways to customize the installation to best fit your own infrastructure and requirement, including disk sizes, memory information, versions and so on. For the full list of customizable flags, click here.

# Completing the installation

The helm install command can take up to 10 minutes. When the deployment completes, you can go to the url of your newly deployed cnvrg or add the new cluster as a resource inside your organization. The helm command will inform you of the correct url:

🚀 Thank you for installing cnvrg.io!

Wait until all the pods in the cnvrg namespace are running and healthy.
Once all pods are running, get the app url by running:
kubectl get cap cnvrg-app -ncnvrg -ojson | grep clusterDomain | awk '{print "app."$2}' | tr -d '"|,'
If something goes wrong (how come? 🙀), check app init container logs:
kubectl logs -ncnvrg --tail 10 -lapp=app -c ingresscheck

Join our community at https://community.cnvrg.io
Talk to our team via email at support_AIStudio@intel.com

# Monitoring the deployment

kubectl -n cnvrg get pods

When the status of all the containers is running or completed, AI Studio will have been successfully deployed. It should look similar to the below output example:

NAME                              READY   STATUS    RESTARTS      AGE
app-5c848c84d5-p9ls9              1/1     Running   0             2m14s
cnvrg-operator-5fbbc7694d-vcs4l   1/1     Running   0             2m18s
elastalert-57b44bf588-qfgxt       2/2     Running   1 (86s ago)   2m15s
elasticsearch-0                   1/1     Running   0             2m16s
grafana-8664567db4-2bx9g          1/1     Running   0             2m15s
hyper-66cc68cbfc-g2pn5            1/1     Running   0             2m14s
kibana-56dccffc4b-jmbg5           1/1     Running   0             2m16s
minio-6c7ff6879b-9pk9l            1/1     Running   0             2m16s
nomex-78756f6764-z42c2            1/1     Running   0             2m18s
postgres-8df69d765-mcc9p          1/1     Running   0             2m16s
prometheus-6d8f6fffd-2zn5d        1/1     Running   0             2m15s
redis-68957b59f6-kht6n            1/1     Running   0             2m15s
searchkiq-77dd4d6767-422kz        1/1     Running   0             2m14s
sidekiq-7ddbc76b77-vt95g          1/1     Running   0             2m14s
sidekiq-7ddbc76b77-vtxkf          1/1     Running   0             2m
systemkiq-6f9bcf75f8-vkt5m        1/1     Running   0             2m14s

NOTE

The exact list of pods may be different, as it depends on the flags that you used with the helm install command. As long as the statuses are running or completed, the deployment will have been successful.

# Monitoring your cluster using Kibana and Grafana

Now that AI Studio has been deployed, you can access the Kibana and Grafana dashboards of your cluster.

They are great tools for monitoring the health of your cluster and analyzing the logs of your cluster.

To access Kibana, go to: kibana.<your_domain>.com

To access Grafana, go to: grafana.<your_domain>.com

# Delete the AI Studio installation

If you would like to delete the cnvrg deployment using Helm, run the following command:

helm delete cnvrg -n cnvrg

# Upgrade a AI Studio Installation

If you would like to upgrade an existing Helm installation, run the following command with the other settings as required for your install:

helm upgrade cnvrg cnvrg/mlops --reuse-values \
--set controlPlane.image=${CNVRG_APP_IMAGE}

# Additional Helm Install Examples

Openshift installation example:

helm install cnvrg cnvrg/mlops \
  -n cnvrg --create-namespace \
  --set clusterDomain=<your_domain> \
  --set controlPlane.image=$CNVRG_APP_IMAGE \
  --set controlPlane.baseConfig.agentCustomTag=agnostic-logs \
  --set registry.user=<docker-registry-username> \
  --set registry.password=<docker-registry-password> \
  --set networking.https.enabled="true" \
  --set networking.ingress.type=openshift \
  --set controlPlane.baseConfig.featureFlags.OCP_ENABLED="true" \
  --debug

Istio ingress controller installation example:

helm install cnvrg cnvrg/mlops \
  -n cnvrg --create-namespace \
  --set clusterDomain=<your domain> \
  --set controlPlane.image=$CNVRG_APP_IMAGE \
  --set controlPlane.baseConfig.agentCustomTag=agnostic-logs \
  --set registry.user=<docker-registry-username> \
  --set registry.password=<docker-registry-password> \
  --set networking.ingress.istioIngressSelectorValue=ingress \
  --debug

Nginx ingress controller installation example with HTTPS enabled:

helm install cnvrg cnvrg/mlops \
  -n cnvrg --create-namespace \
  --set clusterDomain=<your-domain>\
  --set controlPlane.image=$CNVRG_APP_IMAGE \
  --set controlPlane.baseConfig.agentCustomTag=agnostic-logs \
  --set registry.user=<docker-registry-username> \
  --set registry.password=<docker-registry-password> \
  --set networking.https.enabled="true" \
  --set networking.https.certSecret=dns-domain-tls-secret \
  --set networking.ingress.type=ingress \
  --debug

TIP

If using nginx as your ingress controller, that must be deployed seperatley. Here is a link to install the Nginx ingress controller: NGINX ingress

# Single Sign on Examples:

OIDC (Keycloak)

  helm install cnvrg cnvrg/mlops \
  -n cnvrg --create-namespace \
  --set clusterDomain=<your domain> \
  --set controlPlane.image=$CNVRG_APP_IMAGE \
  --set registry.user=<docker-registry-username> \
  --set registry.password=<docker-registry-password> \
  --set sso.enabled=true \
  --set sso.jwks.enabled=true \
  --set sso.proxy.enabled=true \
  --set sso.pki.enabled=true \
  --set sso.central.enabled=true \
  --set sso.central.adminUser=$OIDC_ADMIN_USER \
  --set sso.central.provider=oidc \
  --set sso.central.clientId=$OIDC_CLIENT_ID \
  --set sso.central.clientSecret=$OIDC_CLIENT_SECRET \
  --set sso.central.oidcIssuerUrl=http://realms/$KEYCLOAK_REALM

Azure AD

  helm install cnvrg cnvrg/mlops \
  -n cnvrg --create-namespace \
  --set clusterDomain=<your domain> \
  --set controlPlane.image=$CNVRG_APP_IMAGE \
  --set registry.user=<docker-registry-username> \
  --set registry.password=<docker-registry-password> \
  --set sso.enabled=true \
  --set sso.central.clientId=$AZURE_CLIENT_ID \
  --set sso.central.provider=azure \
  --set sso.central.adminUser= $AZURE_ADMIN_USER \
  --set sso.central.clientSecret=$AZURE_CLIENT_SECRET \
  --set sso.central.oidcIssuerUrl=https://login.microsoftonline.com/$AZURE_TENANT_ID/v2.0

NOTE

You need to restart the AI Studio control plane pods after changing the Single Sign on configurations

kubectl -n cnvrg delete cm proxy-config;
kubectl -n cnvrg delete secret cp-base-secret;
kubectl -n cnvrg rollout restart deploy app sidekiq searchkiq systemkiq cnvrg-jwks cnvrg-proxy-central sso-central
Last Updated: 9/10/2024, 2:05:07 PM