Kubernetes
The below guide will help you to deploy a production-ready instance of Conduktor on Kubernetes.
We welcome contributions and feedback, if you have issues, you can either open an issue on our GitHub repository or contact our support.
Helm chart installation
Conduktor provides a Helm repository containing a chart that will deploy Conduktor Console on your Kubernetes cluster.
TL;DR
We do not provide any relational database dependency, you will have to provide your own database. Check our production requirements section for more information.
Check our Snippets section for more examples.
# Setup Helm repository
helm repo add conduktor https://helm.conduktor.io
helm repo update
export ADMIN_EMAIL="<your_admin_email>"
export ADMIN_PASSWORD="<your_admin_password>"
export ORG_NAME="<your_org_name>"
export NAMESPACE="<your_kubernetes_namespace>"
# Deploy helm chart
helm install console conduktor/console \
--create-namespace -n ${NAMESPACE} \
--set config.organization.name="${ORG_NAME}" \
--set config.admin.email="${ADMIN_EMAIL}" \
--set config.admin.password="${ADMIN_PASSWORD}" \
--set config.database.password="<your_postgres_password>" \
--set config.database.username="<your_postgres_user>" \
--set config.database.host="<your_postgres_host>" \
--set config.database.port="5432" \
--set config.license="${LICENSE}" # can be omitted if deploying the free tier
# Port forward to access Conduktor
kubectl port-forward deployment/console -n ${NAMESPACE} 8080:8080
open http://localhost:8080
Compatibility Matrix
This compatibility matrix is a resource to help you find which versions of Conduktor Console work on which version of our Conduktor Console Helm Chart.
In general we recommend you use the version of Console that comes preconfigured with the Helm chart. If needed you can adjust the version in your values property according to the supported Console version.
Breaking changes column will only list breaking change in the helmchart! You must review the Conduktor changelog to determine whether there are breaking changes within the artefacts.
Helm Chart Compatibility
Breaking Changes:
🟡 - Breaks additional services (e.g. Grafana dashboard changes)
🔴 - Breaks overall deployment of the product (e.g. renaming variables in .values, major product releases)
Chart version | Supported Console version | Breaking changes |
---|---|---|
console-1.15.0 | 1.30.0, 1.29.2, 1.29.1, 1.29.0, 1.28.0, 1.27.1, 1.27.0, 1.26.0, 1.25.1, 1.25.0, 1.24.1, 1.24.0 | |
console-1.14.2 | 1.29.2, 1.29.1, 1.29.0, 1.28.0, 1.27.1, 1.27.0, 1.26.0, 1.25.1, 1.25.0, 1.24.1, 1.24.0 | |
console-1.14.1 | 1.29.1, 1.29.0, 1.28.0, 1.27.1, 1.27.0, 1.26.0, 1.25.1, 1.25.0, 1.24.1, 1.24.0 | |
console-1.14.0 | 1.29.0, 1.28.0, 1.27.1, 1.27.0, 1.26.0, 1.25.1, 1.25.0, 1.24.1, 1.24.0 | |
console-1.13.0 | 1.28.0, 1.27.1, 1.27.0, 1.26.0, 1.25.1, 1.25.0, 1.24.1, 1.24.0 | |
console-1.12.1 | 1.27.1, 1.27.0, 1.26.0, 1.25.1, 1.25.0, 1.24.1, 1.24.0 | |
console-1.12.0 | 1.27.0, 1.26.0, 1.25.1, 1.25.0, 1.24.1, 1.24.0 | |
console-1.11.0 | 1.26.0, 1.25.1, 1.25.0, 1.24.1, 1.24.0 | |
console-1.10.0 | 1.25.1, 1.25.0, 1.24.1, 1.24.0 | |
console-1.9.1 | 1.24.1, 1.24.0 | |
console-1.9.0 | 1.24.0 | 🔴 Changed liveness and readiness probe path see here |
console-1.8.1 | 1.23.0, 1.22.1, 1.22.0 | |
console-1.8.0 | 1.23.0, 1.22.1, 1.22.0 | |
console-1.7.2 | 1.22.1, 1.22.0 | 🔴 Service Monitor endpoint changes, Grafana template changes see here |
console-1.6.2 | 1.21.3, 1.21.2, 1.21.1, 1.21.0 | |
console-1.6.1 | 1.21.1, 1.21.0 | |
console-1.6.0 | 1.21.0 | 🔴 Paths and folder changed see here |
console-1.5.5 | 1.20.0, 1.19.2, 1.19.1, 1.19.0, 1.18.4, 1.18.2, 1.18.1, 1.18.0, 1.17.3 | |
console-1.5.4 | 1.20.0, 1.19.2, 1.19.1, 1.19.0, 1.18.4, 1.18.2, 1.18.1, 1.18.0, 1.17.3 | 🟡 Updated Grafana template see here |
console-1.5.3 | 1.20.0, 1.19.2, 1.19.1, 1.19.0, 1.18.4, 1.18.2, 1.18.1, 1.18.0, 1.17.3 | 🟡 Updated Grafana template see here |
console-1.5.2 | 1.20.0, 1.19.2, 1.19.1, 1.19.0, 1.18.4, 1.18.2, 1.18.1, 1.18.0, 1.17.3 | 🟡 Updated Grafana template see here |
console-1.5.1 | 1.20.0, 1.19.2, 1.19.1, 1.19.0, 1.18.4, 1.18.2, 1.18.1, 1.18.0, 1.17.3 | |
console-1.5.0 | 1.20.0, 1.19.2, 1.19.1, 1.19.0, 1.18.4, 1.18.2, 1.18.1, 1.18.0, 1.17.3 | |
console-1.4.2 | 1.19.2, 1.19.1, 1.19.0, 1.18.4, 1.18.2, 1.18.1, 1.18.0, 1.17.3 | |
console-1.4.1 | 1.19.1, 1.19.0, 1.18.4, 1.18.2, 1.18.1, 1.18.0, 1.17.3 | |
console-1.4.0 | 1.19.0, 1.18.4, 1.18.2, 1.18.1, 1.18.0, 1.17.3 | |
console-1.3.9 | 1.18.4, 1.18.2, 1.18.1, 1.18.0, 1.17.3 | |
console-1.3.8 | 1.18.4, 1.18.2, 1.18.1, 1.18.0, 1.17.3 | |
console-1.3.7 | 1.18.3, 1.18.2, 1.18.1, 1.18.0, 1.17.3 | |
console-1.3.6 | 1.18.2, 1.18.1, 1.18.0, 1.17.3 | |
console-1.3.5 | 1.18.1, 1.18.0, 1.17.3 | |
console-1.3.4 | 1.18.1, 1.18.0, 1.17.3 | |
console-1.3.3 | 1.18.1, 1.18.0, 1.17.3 | |
console-1.3.2 | 1.18.0, 1.17.3 | |
console-1.3.1 | 1.18.0, 1.17.3 | |
console-1.3.0 | 1.18.0, 1.17.3 | |
console-1.2.4 | 1.17.3 | |
console-1.2.3 | 1.17.3 | |
console-1.2.2 | 1.17.3 | |
console-1.2.1 | 1.17.3 | |
console-1.2.0 | 1.17.3 | |
console-1.1.4 | 1.17.3 | 🔴 Fixed issue with license checksum see here |
console-1.1.3 | 1.17.3, 1.17.2 | |
console-1.1.2 | 1.17.3, 1.17.2 | |
console-1.1.1 | 1.17.3, 1.17.2 | |
console-1.1.0 | 1.17.3, 1.17.2 | |
console-1.0.3 | 1.17.3, 1.17.2 | |
console-1.0.2 | 1.17.3, 1.17.2 | |
console-1.0.1 | 1.17.3, 1.17.2 | |
console-1.0.0 | 1.17.2 |
General requirements
- Kubernetes Cluster 1.19+ (setup a local cluster)[^1]
- Kubectl (install) with proper kube context configured
- Helm 3.1.0+ (install)
- Basic knowledge of Kubernetes
Production requirements
For production environments, this is mandatory:
- To set up an external PostgreSQL (13+) database with an appropriate backup policy
- To set up an external S3 Bucket
- Enough resources to run Conduktor with the recommended configuration
A note on TLS, and URL forwarding
For production environments it is recommened to run with TLS enabled and specifically with TLS enabled from your ingress controller and terminating on Console. This creates a more secure connection, while also telling Console that it should use TLS when forwarding on any URL requests, for example, requests to SSO providers.
Without TLS terminating on Console itself, requests between the ingress controller and Console will be in plain text as will URL forwarding to your SSO provider, which can lead to rejection of the request for not being secure.
Getting started
Setup Helm repository
helm repo add conduktor https://helm.conduktor.io
helm repo update
Install the Console Chart
Configure the Console with the following values:
config:
organization:
name: "<your_org_name>"
admin:
email: "<your_admin_email>"
password: "<your_admin_password>"
database:
host: '<postgres_host>'
port: 5432
name: '<postgres_database>'
username: '<postgres_username>'
password: '<postgres_password>'
# HERE you can paste the console configuration (under the config key)
Install the chart on your cluster:
helm install console conduktor/console \
--create-namespace -n conduktor \
--values values.yaml \
--set config.license="${LICENSE}" # can be omitted if deploying the free tier
Once deployed, you will be able to access Conduktor on localhost:8080 by using a port-forward. You can also configure an ingress to make the console available externally, check out our snippets.
kubectl port-forward deployment/console -n ${NAMESPACE} 8080:8080
Configure the Console
Fresh install
You can configure the Console by inserting it into the config
section of the
values.yaml
file the configuration of Console you want to apply. You can
find available configurations in the configuration section
Based on a docker configuration
If you already have a configuration file that you were using within docker, you can use it by giving it to the helm chart with the following command:
config:
organization:
name: "<your_org_name>"
admin:
email: "<your_admin_email>"
password: "<your_admin_password>"
database:
host: '<postgres_host>'
port: 5432
name: '<postgres_database>'
username: '<postgres_username>'
password: '<postgres_password>'
# HERE you can paste the console configuration (under the config key)
Configure with an enterprise license
config:
organization:
name: "<your_org_name>"
admin:
email: "<your_admin_email>"
password: "<your_admin_password>"
database:
host: '<postgres_host>'
port: 5432
name: '<postgres_database>'
username: '<postgres_username>'
password: '<postgres_password>'
license: "<your_license>"
# HERE you can paste the console configuration (under the config key)
Snippets
Please refer to our helm chart README for config snippets.