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.
Setup prerequisites
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:
- Log into your RudderStack Open Source dashboard.
- Copy your workspace token from Settings > Company, as shown:
Clone the RudderStack Helm repository containing the RudderStack Helm chart by running the following command:
git clone git@github.com:rudderlabs/rudderstack-helm.gitNavigate to the folder containing the Helm chart, as shown:
cd rudderstack-helmTo 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
.
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:
- Google Cloud Storage as a destination for dumping jobs, or
- Google BigQuery as a warehouse destination
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:
Parameter | Description | Default value |
---|---|---|
rudderWorkspaceToken | Workspace token obtained from the dashboard. | - |
backend.image.repository | Container image repository for the backend | rudderlabs/rudder-server |
backend.image.version | Container image tag for the backend. Check the available versions | 0.1.9 |
backend.image.pullPolicy | Container image pull policy for the backend image | Always |
transformer.image.repository | Container image repository for the transformer | rudderlabs/transformer |
transformer.image.version | Container image tag for the transformer. Check the available versions | 0.1.4 |
transformer.image.imagePullPolicy | Container image pull policy for the transformer image | Always |
backend.extraEnvVars | Extra environments variables to be used by the backend in the deployments | Refer the values.yaml file |
backend.controlPlaneJSON | Set 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
andpostgresql.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.