# Deploy cnvrg CORE using Helm

Helm is the easiest way to quickly deploy cnvrg CORE using any cluster, on-premise, Minikube or on any cloud cluster (AKS, EKS, GKE).

In this guide, you will learn how to:

  • Use Helm to deploy cnvrg CORE

# Requirements

Before you can complete the installation you must install and prepare the following dependencies on your local machine:

  • kubectl
  • Helm 3.X
  • Kubernetes cluster (1.15+) with 8 CPU, 8GB of memory and 30GB of storage*.

NOTE

Haven't created a cluster yet? Check our guides for setting up an AWS EKS, GCP GKE, Azure EKS or Minikube cluster.

* If the recommended minimum resources are not available, you can install a lighter weight version with the minimum requirements being 4 CPU and 3GB of memory. You can also control the storage requirements.

# Install and Update the Helm repo

Run the following command to download the most updated cnvrg helm charts:

helm repo add cnvrg https://charts.cnvrg.io
helm repo update

# Run the Helm Chart

Now all you need to do is run the helm install command and all of the services and systems will be automatically installed on your cluster. The process can take up to 15 minutes.

# Deploy cnvrg

The simplest way to install cnvrg is to use the default helm install commands as indicated below. Alternatively you can modify the command using the available helm options.

    # Helm Options

    There are numerous ways to customize the installation to best fit your own infrastructure and requirements. The options you can alter are as follows:

    Option Flag
    Enable SMTP support for email features. --set smtp.server, --set smtp.port, --set smtp.domain, --set smtp.username, --set smtp.password
    Change the disk size allocated for the installed services. --set object_storage.disk_size, --set postgres.disk_size, --set elasticsearch.disk_size, --set elastalert.disk_size, --set prometheus.disk_size
    Use a custom domain for the cluster. --set global.domain
    Use the ip address of the cluster instead of a custom domain. This is only relevant for on-premise. --set global.external_ip
    Specify which node to install cnvrg on. --set global.node
    Use Istio for ingress. This is only relevant on-premise, and the alternative is NodePort. --set use_istio_ingress
    Install a lighter version of cnvrg with lower CPU and memory requirements --set global.high_availability=false
    Set the cloud provider for the cluster. This is only relevant for cloud clusters. --set global.provider

    # Completing the Setup

    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!
    
    Your installation of cnvrg.io is now available, and can be reached via:
    http://app.mydomain.com
    
    Talk to our team via email at hi@cnvrg.io
    

    # Monitoring the deployment

    You can monitor and validate the deployment process by running the following command:

    kubectl -n cnvrg get pods
    

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

    NAME                                    READY   STATUS      RESTARTS   AGE
    cnvrg-app-69fbb9df98-6xrgf              1/1     Running     0          2m
    cnvrg-sidekiq-b9d54d889-5x4fc           1/1     Running     0          2m
    controller-65895b47d4-s96v6             1/1     Running     0          2m
    init-app-vs-config-wv9c4                0/1     Completed   0          9m
    init-gateway-vs-config-2zbpp            0/1     Completed   0          9m
    init-minio-vs-config-cd2rg              0/1     Completed   0          9m
    istio-citadel-c58d68844-bcwv7           1/1     Running     0          2m
    istio-galley-67dfcd65c5-vb2jf           1/1     Running     0          2m
    istio-ingressgateway-6d48767f5b-mw4q8   1/1     Running     0          2m
    istio-pilot-7bb78bbfb9-dpq6q            2/2     Running     0          2m
    minio-0                                 1/1     Running     0          2m
    postgres-0                              1/1     Running     0          2m
    redis-695c49c986-kcbt9                  1/1     Running     0          2m
    seeder-wh655                            0/1     Completed   0          2m
    speaker-5sghr                           1/1     Running     0          2m
    

    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 you cluster using Kibana and Grafana

    Now that cnvrg 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 cnvrg CORE

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

    helm delete cnvrg 
    kubectl delete namespace cnvrg
    

    # Replace a cnvrg Installation

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

    helm upgrade cnvrg cnvrg/cnvrg
    

    This is useful for replacing a partial or faulty installation.

    Last Updated: 3/10/2021, 1:20:24 PM