Enable Helm support

Enable Helm supportΒΆ


This feature is available starting from the MCP 2019.2.3 maintenance update. Before enabling the feature, follow the steps described in Apply maintenance updates.

Helm is a package manager for Kubernetes that allows you to configure, package, and deploy applications on a Kubernetes cluster.

The Helm packaging format is called charts. Charts are packages of the pre-configured Kubernetes resources.

To enable Helm support on a bare metal Kubernetes cluster:

  1. While generating a deployment metadata model for your new MCP Kubernetes cluster as described in Create a deployment metadata model, select the Kubernetes helm enabled option in the Infrastructure parameters section of the Model Designer UI.

  2. If you have already generated a deployment metadata model without the Helm parameter or to enable this feature on an existing Kubernetes cluster:

    1. Open your Git project repository with the Reclass model on the cluster level.

    2. In /kubernetes/common/init.yml, add the Helm parameters:

                enabled: true
  3. Select from the following options:

    • If you are performing an initial deployment of your cluster, proceed with further configuration as required. Helm will be installed during your Kubernetes cluster deployment.

    • If you are making changes to an existing cluster:

      1. Log in to the Salt Master node.

      2. Refresh your Reclass storage data:

        salt-call state.sls reclass.storage
      3. Apply the kube-addons state:

        salt -C 'I@kubernetes:master' state.sls kubernetes.master.kube-addons

To verify Helm after deployment:

  1. Log in to any Kubernetes Master node.

  2. Verify that the Tiller pod is created:

    kubectl get pods --namespace kube-system

    Example of system response:

    NAME                             READY     STATUS    RESTARTS   AGE
    tiller-deploy-79876bc7dd-7z2bh   1/1       Running   0          10h
  3. Once the Tiller pod is running, run the following command:

    helm version

    The output must contain both the Helm client and server versions:

    Example of system response:

    Client: &version.Version{SemVer:"v2.12.2", GitCommit:"7d2b0c73d734f6586ed222a567c5d103fed435be", GitTreeState:"clean"}
    Server: &version.Version{SemVer:"v2.12.2", GitCommit:"7d2b0c73d734f6586ed222a567c5d103fed435be", GitTreeState:"clean"}