# 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
- 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
- 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.
- 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."
- 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