Installing the Helm Chart

Beta Feature — For Test Environments Only

Download the Helm chart from the official GitHub Helm Charts Repository to create a Helm chart instance to deploy and manage Vertica on Kubernetes.

Prerequisites

Customize the Vertica Helm chart with environment-specific configurations by passing a YAML formatted file to the helm install command. The following steps use a file named overrides.yaml.

To update the Helm instance after installation, see Customizing the Helm Chart. For a comprehensive list of configurable parameters, see Helm Chart Parameters.

  1. Pull the Vertica-Kubernetes Helm chart:

    $ helm repo add vertica-charts https://vertica.github.io/charts
  2. Update your Helm repo:

    $ helm repo update
  3. Add your StorageClass to the db.storage.local section of the overrides.yaml file.

    db: 
      storage:
        local:
          storageClass:storage-class
    
  4. Optional. Add your Vertica license key. By default, the Helm chart uses the free Community Edition license. To use your license key, store it in a Secret and add the licenseSecret to the db section of the overrides.yaml.

    1. The following command creates a secret named vertica-license:

      $ kubectl create secret generic vertica-license --from-file=license.dat=/path/to/license.dat
    2. Append the secret name to db section of the overrides.yaml file:

      db:
        ...
        licenseSecret:
          name: vertica-license
        storage:
  5. Optional. Create the database superuser password and append it to overrides.yaml:

    1. Create a secret named su-passwd to store the superuser password:

      $ kubectl create secret generic su-passwd --from-literal=password=secret-password
    2. Append the secret to the db section of overrides.yaml:

      db:
        ...
        superuserSecretPassword:
          name: su-passwd
          key: password
  6. Optional. In many circumstances, external client applications need to connect to your Kubernetes cluster. This is controlled by the subclusters.defaultsubcluster.service.type setting. The Vertica Helm chart's default configuration sets this value to ClusterIP, which sets a stable IP and port that is accessible from within the Kubernetes cluster only. For external client access, set this to NodePort.

    Append the following to overrides.yaml to enable external access on a port. If you do not provide a port number, Kubernetes assigns a port in the 30000 - 32767 range automatically. As a best practice, let Kubernetes assign the port number to avoid potential port collisions:

    ...
    subclusters:
      defaultsubcluster:
        service:
          type: NodePort

    If you choose to use the NodePort service type, you must create a firewall rule that allows TCP connections on the assigned external port. To get the assigned port number, use the kubectl get svc command to view the PORT(S) column. In the following example, port 31978 is assigned to the NodePort service:

    $ kubectl get svc
    NAME                                   TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                         AGE
    cluster-vertica-defaultsubcluster      NodePort    10.20.30.40     <none>        5433:31978/TCP,5444:30612/TCP   12h
  7. Install the Helm chart. The following command creates an instance named my-release. Use the -f flag to pass the overrides.yaml file that contains your customizations:

    $ helm install my-release vertica-charts/vertica -f overrides.yaml

After you install the Helm chart, consider customizing your Helm chart.