You can deploy the RudderStack data plane on your Kubernetes cluster using the Helm package manager.

You can find the Helm chart in the RudderStack GitHub repository.

If you are planning to use RudderStack in production, it is strongly recommended to use the Kubernetes Helm charts.

Setup prerequisites

  • Kubectl installed and connected to your Kubernetes cluster
  • Helm installed

RudderStack-hosted control plane

If you're using the RudderStack-hosted control plane, follow these steps to set up the data plane on your Kubernetes cluster:

  1. Log into your RudderStack Open Source dashboard.
  2. Copy your workspace token from Settings > Company, as shown:
Workspace Token
The workspace token is required for setting up the data plane.
  1. Clone the RudderStack Helm repository containing the RudderStack Helm chart by running the following command:

    git clone git@github.com:rudderlabs/rudderstack-helm.git
  2. Navigate to the folder containing the Helm chart, as shown:

    cd rudderstack-helm
  3. To install the chart with the release name my-release, run the following command after replacing <your_workspace_token> with the workspace token copied above.

helm install my-release ./ --set rudderWorkspaceToken="<your_workspace_token>"

The above command deploys RudderStack on your default Kubernetes cluster configured with kubectl.

Refer to the Configuration section below for more information on the parameters that you can configure during the deployment.

Self-hosted control plane

If you have self-hosted the control plane using the open-source Control Plane Lite utility, follow Kubernetes instructions to set up the data plane.

Sending test events

Once you have successfully performed the steps above, follow the Sending Test Events guide to verify the installation.

Upgrading the Helm chart

The following sections contain detailed steps for upgrading your Helm chart depending on your RudderStack control plane setup.

RudderStack-hosted control plane

Update the configuration or version of the images and run the following command:

helm upgrade my-release ./ --set rudderWorkspaceToken="<your_workspace_token>"

Self-hosted control plane

Update the configuration or version of the images and run the following command:

helm upgrade my-release ./ --set backend.controlPlaneJSON=true

Uninstalling the chart

To uninstall or delete the my-release deployment, run the following command:

helm uninstall my-release

This removes all the components created by the chart.

Instructions for Google Cloud Platform

If you are using Google Cloud Storage or Google BigQuery for the following cases:

Make sure you replace the contents of the file rudder-google-application-credentials.json in the repository with the details of your Google service account.

Configuration

The following table lists the configurable parameters of the RudderStack chart and their default values:

ParameterDescriptionDefault value
rudderWorkspaceTokenWorkspace token obtained from the dashboard.-
backend.image.repositoryContainer image repository for the backendrudderlabs/rudder-server
backend.image.versionContainer image tag for the backend. Check the available versions0.1.9
backend.image.pullPolicyContainer image pull policy for the backend imageAlways
transformer.image.repositoryContainer image repository for the transformerrudderlabs/transformer
transformer.image.versionContainer image tag for the transformer. Check the available versions0.1.4
transformer.image.imagePullPolicyContainer image pull policy for the transformer imageAlways
backend.extraEnvVarsExtra environments variables to be used by the backend in the deploymentsRefer the values.yaml file
backend.controlPlaneJSONSet this to true for the data plane to read the configuration from the workspaceConfig.json file if you have a self-hosted control plane.false

Each of these parameters can be changed in values.yaml. You can also specify each parameter using the --set key=value[,key=value] argument while running the helm install command, as shown:

helm install --name my-release \
--set backend.image.version=v0.1.6 \
./
  • The data plane-specific configuration can be edited in the config.yaml file.
  • The PostgreSQL-specific configuration can be configured in pg_hba.conf and postgresql.conf.

Components

Installing this Helm chart will deploy the following pods and containers in the configured cluster:

POD - {Release name}-rudderstack-0 :

  • rudderstack-backend
  • rudderstack-telegraf-sidecar

POD - {Release name}-rudderstack-postgresql-0 :

  • {Release name}-rudderstack-postgresql

POD - {Release name}-rudderstack-transformer-xxxxxxxxxx-xxxxx:

  • transformer

Contact us

If you come across any issues while setting up RudderStack on your Kubernetes cluster, contact us or start a conversation in our Slack community.