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 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
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 5.10.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
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 for instructions on 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 5.10.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 default 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 respectivepersistentVolume.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 therbac.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
blobStorage:
baseUri: s3://vvp
s3:
endpoint: http://minio.vvp.svc:9000
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 5.10.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.
helm template --debug ververica/ververica-platform \
--namespace my-namespace \
--values values.yaml \
--version 5.10.0