Installation using Helm

Helm is a package manager for Kubernetes, and is the preferred way to install and deploy Ververica Platform. In Helm a package is called a Chart, and it contains all of the resource definitions necessary to run an application, tool, or service inside of a Kubernetes cluster. Charts are essentially just a collection of Templates and some input Values, which Helm refers to as Manifests that are then rendered into Kubernetes resources.

If you’re unfamiliar with Helm and would like to know more about Charts, we recommend checking out the Helm charts documentation

Before continuing, please read the documentation about the Ververica Platform Docker images and take any necessary action.

Prerequisites

This installation guide assumes you already installed helm. Ververica Platform supports both Helm 2 as well as Helm 3 for installation. Setting up Helm is not covered by this guide, so please refer to the Helm documentation for further information.

To verify that your environment is prepared, the following commands should complete without error

$ kubectl get pods
$ helm list

Attention

Support for Helm 2 will be dropped in the next Ververica Platform release following Helm 2’s official end of life (Nov 2020).

Chart Repository

We host a Helm Chart repository at https://charts.ververica.com that you can use to install Ververica Platform.

Please add the repository via:

$ helm repo add ververica https://charts.ververica.com

The name of the Chart is ververica-platform. You can download it via:

$ helm fetch --version 4.3.0 ververica/ververica-platform

If you omit the version argument, you will get the latest Chart version.

You can search for available versions via:

$ helm search repo -l ververica/ververica-platform
$ helm search -l ververica/ververica-platform

Chart Configuration

Helm provides several options for setting and overriding values in a chart. For Ververica Platform we recommend to customize the chart by passing a values file via --values <your values file>.

Chart Required Values

The required settings for installing Ververica Platform using the Helm chart are a license and the persistence type.

Ververica Platform supports persistence using JDBC, either in a remote RDBMS or locally using SQLite.

See Persistence Configuration for a list of supported remote RDBMSs.

  • To use a local volume, specify vvp.persistence.type: local
  • To use a remote RDBMS, specify vvp.persistence.type: jdbc and see Persistence Configuration how to configure the connection

Chart Default Values

You use helm to show the default values.yaml file for Ververica Platform.

$ helm inspect values --version 4.3.0 ververica/ververica-platform > values.yaml

The resulting values.yaml file is also a good starting point for your custom values.yaml configuration file as it contains comments and explanations for most common configurations.

Ververica Platform ships with a few defaults values worth pointing out.

  • By default, the chart uses the Docker registry hosted by Ververica. To specify your own registry, override the appropriate registry/repository values for the respective chart components (see Ververica Platform Docker Images).
  • By default, the chart will create and manage persistent volumes for the components that require them. For this to work, your Kubernetes installation must have a default StorageClass configured. You can use an existing PersistentVolumeClaim by using the respective persistentVolume.existingClaim: "" options for each of the components.
  • If your Kubernetes installation uses role-based access control (RBAC), you must specify either rbac.create: true (default) or reference an existing ServiceAccount that you manage using the rbac.serviceAccountName option.
  • In addition, if you are using multiple Kubernetes namespaces as Deployment Targets (recommended), you can specify rbac.additionalNamespaces to create proper roles and role bindings in all target Kubernetes namespaces.

Completing the Installation using Helm

A Minimal values.yaml

As outlined in Chart Required Values, you at least need to configure a license as well as the persistence type.

As a customer of Ververica you received your license key from your account manager, or alternatively, you can request a free trial license from the Ververica website.

# Minimal values.yaml file
vvp:

  persistence:
    type: local

  license:
    data: {
      "kind": "License",
      "apiVersion": "v1",
      "metadata": {
        "id": "53b8cf22-1af2-44bd-a7ba-7420418f6572",
        "createdAt": "2020-02-21T12:56:52.407899Z",
        "annotations": {
          "signature": "<omitted>",
          "licenseSpec": "ewogICJsaWNlbnNlSWQiIDogIjUzYjhjZjIyLTFhZjItNDRiZC1hN2JhLTc0MjA0MThmNjU3MiIsCiAgImxpY2Vuc2VkVG8iIDogInRlc3QiLAogICJleHBpcmVzIiA6ICIyMDIwLTAzLTIyVDEyOjU2OjUxLjg3MzU1M1oiLAogICJwYXJhbXMiIDogewogICAgInF1b3RhLnR5cGUiIDogIlVOTElNSVRFRCIsCiAgICAidHJpYWwiIDogInRydWUiCiAgfQp9"
        }
      },
      "spec": {
        "licenseId": "53b8cf22-1af2-44bd-a7ba-7420418f6572",
        "licensedTo": "My Company Inc.",
        "expires": "2020-03-22T12:56:51.873553Z",
        "params": {
          "quota.type": "UNLIMITED",
          "trial": "true"
        }
      }
    }

During installation, you can specify this values file using the --values values.yaml argument.

Installation

To install a release named vvp into the Kubernetes namespace my-namespace using your values.yaml configuration run:

$ helm install vvp ververica/ververica-platform \
    --namespace my-namespace \
    --values values.yaml \
    --version 4.3.0
$ helm install ververica/ververica-platform \
    --name vvp \
    --namespace my-namespace \
    --values values.yaml \
    --version 4.3.0

This example assumes that you have already added the Chart repository as outlined.

Debugging Chart Configuration

Helm has an offline templating option that is useful for debugging charts, and as a kind of dry-run/preview mode. With this you can render a Helm chart without applying the values and see the resources it would create in your Kubernetes cluster.

With Helm 3 you can directly use helm template pointing to our Helm charts repository.

$ helm template --debug ververica/ververica-platform \
    --namespace my-namespace \
    --values values.yaml \
    --version 4.3.0

When using Helm 2, you first need to download the chart archive from the Helm chart repository.

$ helm fetch --version 4.3.0 ververica/ververica-platform

Afterwards, you can use helm template pointing to the archive.

$ helm template --debug ververica-platform-4.3.0.tgz \
    --namespace my-namespace \
    --values values.yaml