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
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 setup an external PostgreSQL (13+) database with appropriate backup policy
- To setup an external S3 Bucket
- Enough resources to run Conduktor with the recommended configuration
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:
# values.yaml
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)
# Ref: https://docs.conduktor.io/platform/configuration/env-variables/
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 into the config
section of the
values.yaml
file the configuration of Console you want to apply. You can
find available configuration 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:
# values.yaml
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)
# Ref: https://docs.conduktor.io/platform/configuration/env-variables/
Configure with an enterprise license
# values.yaml
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)
# Ref: https://docs.conduktor.io/platform/configuration/env-variables/
Snippets
Please refer to our helm chart README for config snippets.