### Install Conduktor Console with Basic SSO Configuration Source: https://github.com/conduktor/conduktor-public-charts/blob/main/charts/console/README.md Configure Single Sign-On (SSO) using OAuth2. Ensure the callback URI matches your application's setup. ```yaml config: organization: name: "my-org" admin: email: "" password: "" database: hosts: - host: "" port: 5432 name: "" username: "" password: "" sso: oauth2: - name: "" default: true client-id: "" client-secret: "" callback-uri: "http://localhost/auth/oauth/callback/" openid: issuer: "https://idp-host.com/" license: "" ``` -------------------------------- ### Install Conduktor Provisioner Chart Source: https://github.com/conduktor/conduktor-public-charts/blob/main/_autodocs/README.md Installs the Conduktor Provisioner chart. Enable and configure Console integration. ```bash helm install provisioner conduktor/provisioner \ --namespace conduktor \ --create-namespace \ --set console.enabled=true \ --set console.url="https://console.example.com" \ --set console.username="admin@example.com" \ --set console.password="AdminPassword!" ``` -------------------------------- ### Install Python Dependencies and Setup Cluster Source: https://github.com/conduktor/conduktor-public-charts/blob/main/test/README.md Installs necessary Python dependencies and sets up a local k3d Kubernetes cluster. Ensure you have Python 3.10+ and Docker installed. ```bash pip install -r test/requirements.txt ``` ```bash make k3d-up ``` -------------------------------- ### Install Conduktor Gateway Chart Source: https://github.com/conduktor/conduktor-public-charts/blob/main/_autodocs/README.md Installs the Conduktor Gateway chart. Configure license key and listener security protocols. ```bash helm install gateway conduktor/conduktor-gateway \ --namespace conduktor \ --create-namespace \ --set gateway.licenseKey="your-key" \ --set gateway.listeners.internal.securityProtocol="PLAINTEXT" \ --set gateway.listeners.external.securityProtocol="PLAINTEXT" ``` -------------------------------- ### Install Development Dependencies Source: https://github.com/conduktor/conduktor-public-charts/blob/main/README.md Installs necessary development dependencies such as PostgreSQL, Minio, Monitoring stack, and Kafka. ```shell # Install dependencies like a Postgresql, Minio, Monitoring stack, and Kafka. make install-dev-deps ``` -------------------------------- ### Setup Git Hooks Source: https://github.com/conduktor/conduktor-public-charts/blob/main/README.md Installs pre-commit git hooks. If 'readme-generator' is not installed globally via npm, the hook will attempt to install it. ```shell make setup-hooks ``` -------------------------------- ### Install Conduktor Gateway Chart Source: https://github.com/conduktor/conduktor-public-charts/blob/main/CONTRIBUTING.md Installs the Conduktor Gateway chart in the 'conduktor' namespace, enabling Kafka. ```shell # Install Conduktor Gateway chart helm install gateway charts/gateway --namespace conduktor --set kafka.enabled=true ``` -------------------------------- ### Install Conduktor Gateway Helm Chart Source: https://github.com/conduktor/conduktor-public-charts/blob/main/charts/gateway/README.md Add the Conduktor Helm repository, update it, and then install the gateway. ```sh helm repo add conduktor https://helm.conduktor.io helm repo update helm install my-gateway conduktor/conduktor-gateway ``` -------------------------------- ### Local Development with CLI Source: https://github.com/conduktor/conduktor-public-charts/blob/main/test/README.md Install a scenario for debugging without automatic cleanup, and uninstall to clean up resources when finished. ```bash python -m test.runner install --chart console --scenario 01-basic ``` ```bash python -m test.runner uninstall --chart console --scenario 01-basic ``` -------------------------------- ### Install Git Hooks Source: https://github.com/conduktor/conduktor-public-charts/blob/main/CONTRIBUTING.md Installs pre-commit git hooks to ensure code quality before commits. ```shell make install-githooks ``` -------------------------------- ### Install a Scenario Without Cleanup Source: https://github.com/conduktor/conduktor-public-charts/blob/main/README.md Installs a specific test scenario without automatically cleaning up afterwards, useful for debugging. ```shell # Install a scenario without cleanup (for debugging) make test-install CHART=console SCENARIO=01-basic ``` -------------------------------- ### Install Conduktor Console with Helm and Values File Source: https://github.com/conduktor/conduktor-public-charts/blob/main/_autodocs/deployment-guide.md Install the Conduktor Console using Helm, specifying a values file and overriding sensitive configurations with --set-string. ```bash helm install console conduktor/console \ --namespace conduktor \ --create-namespace \ -f values.yaml \ --set-string config.admin.password="${ADMIN_PASSWORD}" \ --set-string config.license="${LICENSE_KEY}" ``` -------------------------------- ### Install Conduktor Console Chart Source: https://github.com/conduktor/conduktor-public-charts/blob/main/_autodocs/README.md Installs the Conduktor Console chart using Helm. Ensure you have a PostgreSQL database configured. ```bash helm repo add conduktor https://helm.conduktor.io helm install console conduktor/console \ --namespace conduktor \ --create-namespace \ --set config.organization.name="Org" \ --set config.admin.email="admin@example.com" \ --set config.admin.password="Password123!" \ --set config.database.hosts[0].host="postgres.local" \ --set config.database.name="conduktor" \ --set config.database.username="postgres" \ --set config.database.password="pgpass" ``` -------------------------------- ### Basic Installation with Plaintext Source: https://github.com/conduktor/conduktor-public-charts/blob/main/_autodocs/conduktor-gateway-chart.md Configure basic gateway settings with plaintext listeners for internal and external traffic. Specify the number of replicas and license key. ```yaml gateway: replicas: 2 licenseKey: "your-license-key" listeners: internal: securityProtocol: PLAINTEXT routing: port ports: - "9092-9098" external: securityProtocol: PLAINTEXT routing: port ports: - "9092" ``` -------------------------------- ### Provision Conduktor Console using Provisioner Chart Source: https://github.com/conduktor/conduktor-public-charts/blob/main/charts/provisioner/README.md Installs and configures the Conduktor Provisioner chart to provision Conduktor Console. This command assumes the Conduktor Console and its setup manifests ConfigMap are already in place. ```shell # Use Provisioner chart to provision Console helm upgrade --install setup conduktor/provisioner \ -n conduktor \ --set console.enabled=true \ --set console.url="http://console.conduktor" \ --set console.username="admin@conduktor.io" \ --set console.password="admin123!" \ --set console.extraManifestsConfigMapRef[0].name="setup-manifests" \ --set console.extraManifestsConfigMapRef[0].key="console-setup.yaml" ``` -------------------------------- ### Typical Single Listener `values.yaml` Source: https://github.com/conduktor/conduktor-public-charts/blob/main/charts/gateway/README.md This is an example of a typical `values.yaml` file when using the single listener configuration with `gateway.portRange` and environment variables. ```yaml gateway: portRange: start: 9092 count: 4 env: KAFKA_BOOTSTRAP_SERVERS: "kafka:9092" GATEWAY_SECURITY_PROTOCOL: "SASL_SSL" GATEWAY_ROUTING_MECHANISM: "host" # "host" = SNI routing in the new API GATEWAY_ADVERTISED_HOST: "kafka.example.com" GATEWAY_SSL_KEY_STORE_PATH: "/etc/gateway/tls/keystore.jks" GATEWAY_SSL_KEY_STORE_PASSWORD: "changeit" tls: enable: true secretRef: my-jks-secret service: external: enable: true type: LoadBalancer ``` -------------------------------- ### Install Gateway Helm Chart Source: https://github.com/conduktor/conduktor-public-charts/blob/main/charts/gateway/README.md Install the Conduktor Gateway using Helm, pointing to your private chart registry. Ensure registry authentication is configured. ```sh helm install my-gateway oci:///conduktor-gateway --version ``` -------------------------------- ### Install Conduktor Gateway Chart Source: https://github.com/conduktor/conduktor-public-charts/blob/main/README.md Installs the Conduktor Gateway chart into a Kubernetes cluster. Ensure you replace '' with your actual license key. ```shell # Install Conduktor Gateway chart helm install gateway charts/gateway \ --namespace conduktor \ --dependency-update \ --set gateway.licenseKey="" \ --set gateway.env.KAFKA_BOOTSTRAP_SERVERS="kafka-local-dev.conduktor.svc.cluster.local:9092" ``` -------------------------------- ### Add Helm Repository and Install Conduktor Console Source: https://github.com/conduktor/conduktor-public-charts/blob/main/charts/provisioner/README.md Adds the Conduktor Helm repository and installs Conduktor Console using Helm. Ensure you have the necessary prerequisites like Kubernetes and Helm installed. ```shell # Add the Conduktor Helm repository helm repo add conduktor https://helm.conduktor.io # Install Conduktor Console helm upgrade --install platform conduktor/console \ --create-namespace -n conduktor \ --set config.admin.email="admin@conduktor.io" \ --set config.admin.password="admin123!" \ --set config.database.password="postgres" \ --set config.database.username="postgres" \ --set config.database.host="postgresql" \ --set config.database.name="postgres" \ --set config.license="${LICENSE}" ``` -------------------------------- ### Install Conduktor Console Chart Source: https://github.com/conduktor/conduktor-public-charts/blob/main/CONTRIBUTING.md Installs the Conduktor Console chart with specific configuration values for organization, admin, and database settings. ```shell # Install Conduktor Console chart helm install console charts/console \ --namespace conduktor \ --set config.organization.name=test \ --set config.admin.email=test@test.io \ --set config.admin.password=testP4ss! \ --set config.database.password=conduktor \ --set config.database.username=postgres \ --set config.database.host=postgresql.conduktor.svc.cluster.local \ --set config.database.name=conduktor ``` -------------------------------- ### Install Chart Without Cleanup Source: https://github.com/conduktor/conduktor-public-charts/blob/main/test/README.md Installs a chart for a specific scenario without performing automatic cleanup, useful for manual inspection. Specify the chart and scenario. ```bash make test-install CHART=console SCENARIO=01-basic ``` -------------------------------- ### Install Test Dependencies Source: https://github.com/conduktor/conduktor-public-charts/blob/main/README.md Installs Python dependencies required for running chart tests. ```shell # Install test dependencies pip install -r test/requirements.txt ``` -------------------------------- ### Local Development with Makefile Source: https://github.com/conduktor/conduktor-public-charts/blob/main/test/README.md Install a chart scenario for debugging or uninstall to clean up resources using Makefile targets. ```makefile make test-install CHART=x SCENARIO=y ``` ```makefile make test-uninstall CHART=x SCENARIO=y ``` -------------------------------- ### Install Conduktor Console with Helm Source: https://github.com/conduktor/conduktor-public-charts/blob/main/charts/console/README.md Install Conduktor Console using Helm, setting essential configuration parameters like organization name, admin credentials, database URL, and license. ```console $ helm repo add conduktor https://helm.conduktor.io $ helm install my-platform conduktor/console \ --create-namespace -n conduktor \ --set config.organization.name="my-org" \ --set config.admin.email="admin@conduktor.io" \ --set config.admin.password="Admin123!" \ --set config.database.url="jdbc:postgresql://postgres:password@postgresql:5432/postgres" \ --set config.license="${LICENSE}" ``` -------------------------------- ### Setup K3D Development Cluster Source: https://github.com/conduktor/conduktor-public-charts/blob/main/CONTRIBUTING.md Commands to update Helm dependencies and create a local K3D cluster for development and testing. Requires k3d, helm, and kubectl. ```shell # Update helm dependencies make helm-deps ``` ```shell # Create local K3D cluster for test and local dev (require k3d, helm and kubectl) make k3d-up ``` ```shell # Install dependencies like a Postgresql, Minio, Monitoring stack, etc. make install-dev-deps ``` -------------------------------- ### Create ConfigMap for Console Setup Manifests Source: https://github.com/conduktor/conduktor-public-charts/blob/main/charts/provisioner/README.md Creates a Kubernetes ConfigMap to store Conduktor CLI compatible YAML manifests for Console setup. This is a prerequisite for using the Provisioner chart. ```shell # Push Conduktor CLI compatible YAML manifests files into a ConfigMap. See https://github.com/conduktor/ctl kubectl create configmap setup-manifests --from-file=./manifests/console-setup.yaml -n conduktor ``` -------------------------------- ### Install Gateway with Cert-Manager Source: https://github.com/conduktor/conduktor-public-charts/blob/main/_autodocs/deployment-guide.md Deploys Conduktor Gateway using cert-manager for automatic TLS certificate provisioning. Ensure cert-manager is installed and configured with a ClusterIssuer. ```bash helm install gateway conduktor/conduktor-gateway \ --namespace conduktor \ --create-namespace \ --set gateway.licenseKey="your-license-key" \ --set tls.enable=true \ --set tls.certManager.enabled=true \ --set tls.certManager.issuerRef.name="letsencrypt-prod" \ --set tls.certManager.issuerRef.kind="ClusterIssuer" \ --set tls.certManager.truststore.enabled=true \ --set gateway.listeners.internal.securityProtocol="SASL_SSL" \ --set gateway.listeners.external.securityProtocol="SASL_SSL" ``` -------------------------------- ### Enable Gateway Provisioning Source: https://github.com/conduktor/conduktor-public-charts/blob/main/_autodocs/conduktor-provisioner-chart.md Configure the chart to provision the Conduktor Gateway. Requires gateway URL, username, and password. Example shows provisioning a Topic resource. ```yaml gateway: enabled: true url: "https://gateway.example.com:8888" username: "admin" password: "AdminPassword123!" manifests: - apiVersion: gateway.conduktor.io/v1 kind: Topic metadata: name: my-topic spec: cluster: "prod" numPartitions: 3 replicationFactor: 2 ``` -------------------------------- ### Basic Conduktor Console Installation Source: https://github.com/conduktor/conduktor-public-charts/blob/main/_autodocs/conduktor-console-chart.md Provides the essential configuration for a basic installation of Conduktor Console, including organization details, admin credentials, and database connection parameters. ```yaml config: organization: name: "My Organization" admin: email: "admin@example.com" password: "SecurePassword123!" database: hosts: - host: postgresql.example.com port: 5432 name: conduktor username: postgres password: postgres_password ``` -------------------------------- ### Helm Chart Linting and Installation Source: https://github.com/conduktor/conduktor-public-charts/blob/main/_autodocs/deployment-guide.md Lint Helm charts to check for potential issues and perform a dry-run installation to validate configurations. ```bash # Lint a chart helm lint charts/console # Lint with values helm lint charts/console -f values.yaml # Dry-run installation helm install console conduktor/console --dry-run --debug ``` -------------------------------- ### Install Conduktor Console with Enterprise License Source: https://github.com/conduktor/conduktor-public-charts/blob/main/charts/console/README.md Provides the basic configuration for installing Conduktor Console, including organization details, admin credentials, database connection, and the enterprise license. The license can also be provided via environment variables from a secret. ```yaml config: organization: name: "my-org" admin: email: "" password: "" database: hosts: - host: "" port: 5432 name: "" username: "" password: "" # or you can provide a full database URL # url: "jdbc:postgresql://:@:/" license: "" ``` -------------------------------- ### Create Local K3D Cluster Source: https://github.com/conduktor/conduktor-public-charts/blob/main/README.md Starts a local Kubernetes cluster using k3d, including Nginx and PostgreSQL. Requires k3d, helm, and kubectl. ```shell # Create local K3D cluster for test and local dev (require k3d, helm and kubectl) make k3d-up ``` -------------------------------- ### Install Conduktor Provisioner (One-Time Job) Source: https://github.com/conduktor/conduktor-public-charts/blob/main/_autodocs/deployment-guide.md Deploys the Conduktor Provisioner as a one-time job to apply manifests to Conduktor Console. Requires Console URL, credentials, and manifest details. ```bash helm install provisioner conduktor/provisioner \ --namespace conduktor \ --create-namespace \ --set console.enabled=true \ --set console.url="https://console.example.com" \ --set console.username="admin@example.com" \ --set console.password="AdminPassword123!" \ --set console.manifests[0]='apiVersion: v1 kind: Cluster metadata: name: prod spec: bootstrapServers: "kafka-prod.example.com:9092"' ``` -------------------------------- ### Remote State Backend Configuration (S3) Source: https://github.com/conduktor/conduktor-public-charts/blob/main/_autodocs/conduktor-provisioner-chart.md Enable and configure a remote state backend, using S3 as an example. Specify the backend type and its URI. ```yaml state: enabled: true backend: remote remote: uri: "s3://my-bucket/conduktor-state" console: enabled: true # ... console config ``` -------------------------------- ### Install Conduktor Gateway with Plaintext Source: https://github.com/conduktor/conduktor-public-charts/blob/main/_autodocs/deployment-guide.md Basic Conduktor Gateway deployment with a plaintext internal listener. Suitable for internal testing or development environments. ```bash helm install gateway conduktor/conduktor-gateway \ --namespace conduktor \ --create-namespace \ --set gateway.licenseKey="your-license-key" \ --set gateway.listeners.internal.securityProtocol="PLAINTEXT" \ --set gateway.listeners.external.securityProtocol="PLAINTEXT" ``` -------------------------------- ### Setup Scheduled Provisioning Source: https://github.com/conduktor/conduktor-public-charts/blob/main/_autodocs/README.md Configure scheduled provisioning for the Conduktor Console. This includes enabling the cron job, setting the schedule, timezone, and console details. ```yaml cronJob: enabled: true schedule: "0 2 * * *" # Run daily at 2am UTC timezone: "UTC" console: enabled: true url: "https://console.example.com" manifestsConfigMap: "console-manifests" ``` -------------------------------- ### Install Conduktor Console with a Kafka Cluster Source: https://github.com/conduktor/conduktor-public-charts/blob/main/charts/console/README.md Configure a local Kafka cluster connection. Specify bootstrap servers and schema registry details. ```yaml config: organization: name: "my-org" admin: email: "" password: "" database: hosts: - host: "" port: 5432 name: "" username: "" password: "" clusters: - id: my-local-kafka-cluster name: My Local Kafka Cluster color: "#0013E7" bootstrapServers: "my-bootstrap-server:9092" schemaRegistry: id: my-schema-registry url: "http://my-schema-registry:8081" ``` -------------------------------- ### Install Conduktor Console Chart Source: https://github.com/conduktor/conduktor-public-charts/blob/main/README.md Installs the Conduktor Console chart into a Kubernetes cluster. Ensure you replace placeholder values for organization name, admin credentials, and database connection. ```shell # Install Conduktor Console chart helm install console charts/console \ --namespace conduktor \ --dependency-update \ --set config.organization.name=test \ --set config.admin.email=test@test.io \ --set config.admin.password=testP4ss! \ --set config.database.password=conduktor \ --set config.database.username=postgres \ --set 'config.database.hosts[0].host=postgresql.conduktor.svc.cluster.local' \ --set config.database.name=conduktor ``` -------------------------------- ### Install Conduktor Console with PostgreSQL Source: https://github.com/conduktor/conduktor-public-charts/blob/main/_autodocs/deployment-guide.md Minimal Conduktor Console deployment using an existing PostgreSQL database. Requires Kubernetes 1.19+ and Helm 3.6.0+. ```bash helm install console conduktor/console \ --namespace conduktor \ --create-namespace \ --set config.organization.name="My Organization" \ --set config.admin.email="admin@example.com" \ --set config.admin.password="SecurePassword123!" \ --set config.database.hosts[0].host="postgres.default.svc.cluster.local" \ --set config.database.hosts[0].port=5432 \ --set config.database.name="conduktor" \ --set config.database.username="postgres" \ --set config.database.password="postgres_password" ``` -------------------------------- ### Conduktor Console Installation with License Source: https://github.com/conduktor/conduktor-public-charts/blob/main/_autodocs/conduktor-console-chart.md Includes the license key for enabling Conduktor Console features. Other configuration options can be appended as needed. ```yaml config: license: "your-license-key-here" # ... other config ``` -------------------------------- ### Deploy Extra Kubernetes Resources Source: https://github.com/conduktor/conduktor-public-charts/blob/main/charts/gateway/README.md Deploy additional Kubernetes resources alongside the Gateway deployment. This example shows how to deploy a ConfigMap. ```yaml extraDeploy: - apiVersion: v1 kind: ConfigMap metadata: name: extra-configmap data: some-key: some-value ``` -------------------------------- ### Provision Conduktor Console Source: https://github.com/conduktor/conduktor-public-charts/blob/main/charts/provisioner/README.md Enable Conduktor Console provisioning by setting `console.enabled` to `true`. You can configure its URL, credentials, and embed manifests for initial setup. ```yaml console: enabled: true url: "http://console" username: "" password: "" # OR apiToken: "" insecure: true # Embedded manifests to apply on the Console manifests: - apiVersion: iam/v2 kind: User metadata: name: john.doe@company.org spec: firstName: "John" lastName: "Doe" - apiVersion: iam/v2 kind: User metadata: name: bob@company.org spec: firstName: "Bob" lastName: "Smith" - apiVersion: iam/v2 kind: Group metadata: name: developers-a spec: displayName: "Developers Team A" description: "Members of the Team A - Developers" externalGroups: - "LDAP-GRP-A-DEV" members: - john.doe@company.org - bob@company.org ``` -------------------------------- ### Install Conduktor Provisioner (Scheduled CronJob) Source: https://github.com/conduktor/conduktor-public-charts/blob/main/_autodocs/deployment-guide.md Deploys the Conduktor Provisioner as a scheduled CronJob for daily reconciliation. Configure the schedule, timezone, and Console connection details. ```bash helm install provisioner conduktor/provisioner \ --namespace conduktor \ --create-namespace \ --set cronJob.enabled=true \ --set cronJob.schedule="0 2 * * *" \ --set cronJob.timezone="UTC" \ --set console.enabled=true \ --set console.url="https://console.example.com" \ --set console.username="provisioner@example.com" \ --set console.password="ProvisionerPassword123!" \ --set console.manifestsConfigMap="console-resources" ``` -------------------------------- ### Provision Conduktor Gateway Source: https://github.com/conduktor/conduktor-public-charts/blob/main/charts/provisioner/README.md Enable Conduktor Gateway provisioning by setting `gateway.enabled` to `true`. Configure its URL, credentials, and embed manifests for initial setup. ```yaml gateway: enabled: true url: "http://gateway" username: "" password: "" manifests: - apiVersion: gateway/v2 kind: GatewayServiceAccount metadata: vCluster: passthrough name: user-sa spec: type: LOCAL - apiVersion: gateway/v2 kind: VirtualCluster metadata: name: "my-app-A" spec: aclEnabled: false superUsers: - admin ``` -------------------------------- ### Add Init Container to Gateway Source: https://github.com/conduktor/conduktor-public-charts/blob/main/charts/gateway/README.md Use an init container to perform actions before the Gateway starts. Mounts a volume for shared data. ```yaml gateway: volumes: - name: init-volume emptyDir: {} initContainers: - name: init-container image: busybox command: ["sh", "-c", "echo 'Init container running'"] volumeMounts: - name: init-volume mountPath: /mnt/init ``` -------------------------------- ### Install Console with a Custom Service Account Source: https://github.com/conduktor/conduktor-public-charts/blob/main/charts/console/README.md Configure Console to use a specific service account instead of the one automatically created by Helm. Ensure the service account exists in your cluster. ```yaml config: organization: name: "my-org" admin: email: "admin@my-org.com" password: "admin" database: host: "" port: 5432 name: "postgres" username: "" password: "" serviceAccount: create: false name: "my-service-account" ``` -------------------------------- ### Install Conduktor Console with a Confluent Cloud Cluster Source: https://github.com/conduktor/conduktor-public-charts/blob/main/charts/console/README.md Configure a Confluent Cloud cluster connection. Includes SASL configuration and schema registry properties. ```yaml config: organization: name: "my-org" admin: email: "" password: "" database: hosts: - host: "" port: 5432 name: "" username: "" password: "" clusters: - id: confluent-cloud-cluster name: Confluent Cloud Cluster color: "#0013E7" bootstrapServers: pkc-xxxxx.region.provider.confluent.cloud:9092 properties: | sasl.mechanism=PLAIN security.protocol=SASL_SSL sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="YOUR_API_KEY" password="YOUR_API_SECRET"; schemaRegistry: id: confluent-cloud-sr url: https://psrc-xxxxx.region.provider.confluent.cloud properties: | basic.auth.credentials.source=USER_INFO basic.auth.user.info=SR_API_KEY:SR_API_SECRET ``` -------------------------------- ### Scenario Values File Example Source: https://github.com/conduktor/conduktor-public-charts/blob/main/test/README.md Configure isolated resources using the scenario number in your values file. The scenario number is used as `scenario_id` for isolation. ```yaml # 01-basic-values.yaml config: database: name: db_01 # Matches init.database template with scenario_id=01 host: postgresql.ct-console-deps.svc.cluster.local username: postgres password: conduktor123 ``` -------------------------------- ### Install Network Debugging Sidecar Source: https://github.com/conduktor/conduktor-public-charts/blob/main/charts/console/README.md Add a network debugging sidecar container to your pods for network troubleshooting. This example uses the netshoot image and configures it to run indefinitely. ```yaml platform: podSecurityContext: runAsNonRoot: false sidecars: - name: netshoot image: nicolaka/netshoot:latest command: - /bin/bash - -c - "sleep infinity" securityContext: runAsUser: 0 capabilities: add: - NET_RAW - NET_ADMIN ``` -------------------------------- ### Install Conduktor Gateway with SNI Routing Source: https://github.com/conduktor/conduktor-public-charts/blob/main/_autodocs/deployment-guide.md Configures Conduktor Gateway for SNI routing with TLS for external clients. Requires careful configuration of advertised and bootstrap host patterns. ```bash helm install gateway conduktor/conduktor-gateway \ --namespace conduktor \ --create-namespace \ --set gateway.licenseKey="your-license-key" \ --set gateway.securityMode="GATEWAY_MANAGED" \ --set gateway.kafka.brokerIds[0]="0" \ --set gateway.kafka.brokerIds[1]="1" \ --set gateway.kafka.brokerIds[2]="2" \ --set gateway.listeners.internal.routing="sni" \ --set gateway.listeners.external.routing="sni" \ --set gateway.listeners.external.securityProtocol="SASL_SSL" \ --set gateway.listeners.external.advertisedHostPattern="broker-{{nodeId}}.example.com" \ --set gateway.listeners.external.bootstrapHostPattern="bootstrap.example.com" ``` -------------------------------- ### Replicate Container Startup Scripts Source: https://github.com/conduktor/conduktor-public-charts/blob/main/charts/console/templates/NOTES.txt This command can be used to replicate the container startup scripts when in diagnostic mode. ```bash /opt/conduktor/scripts/run.sh ``` -------------------------------- ### Enable Console Provisioning Source: https://github.com/conduktor/conduktor-public-charts/blob/main/_autodocs/conduktor-provisioner-chart.md Configure the chart to provision the Conduktor Console. Requires console URL, username, and password. Manifests can be defined inline. ```yaml console: enabled: true url: "https://console.example.com" username: "admin@example.com" password: "AdminPassword123!" manifests: - apiVersion: v1 kind: Organization metadata: name: default spec: displayName: "My Organization" ``` -------------------------------- ### Configure Provisioner as CronJob Source: https://github.com/conduktor/conduktor-public-charts/blob/main/charts/provisioner/README.md Enable and configure the provisioner to run as a Kubernetes CronJob by specifying `cronJob.enabled` and `cronJob.schedule`. ```yaml cronJob: enabled: true schedule: "0 0 * * *" # Run daily at midnight timezone: "UTC" # Optional, set the timezone for the cron job console: enabled: true url: "http://console" username: "" password: "" # Embedded manifests to apply on the Console manifests: [] ``` -------------------------------- ### Verify Configuration with kubectl Source: https://github.com/conduktor/conduktor-public-charts/blob/main/_autodocs/deployment-guide.md Check for the existence of ConfigMaps and Secrets in the conduktor namespace using 'kubectl get cm' and 'kubectl get secrets'. Verify environment variables within a pod using 'kubectl exec'. ```bash # Check if ConfigMaps were created kubectl get cm -n conduktor ``` ```bash # Check if Secrets were created kubectl get secrets -n conduktor ``` ```bash # Verify environment variables in pod kubectl exec -n conduktor -- env ``` -------------------------------- ### View Pod Status with kubectl Source: https://github.com/conduktor/conduktor-public-charts/blob/main/_autodocs/deployment-guide.md Use 'kubectl get pods' to list pods in the conduktor namespace. Use 'kubectl describe pod' to get detailed information and events for a specific pod. Use 'kubectl logs' to view container logs. ```bash # View pods kubectl get pods -n conduktor ``` ```bash # Describe pod for events kubectl describe pod -n conduktor ``` ```bash # Check logs kubectl logs -n conduktor ``` ```bash kubectl logs -c -n conduktor ``` -------------------------------- ### Console Provisioning with TLS and Resource Limits Source: https://github.com/conduktor/conduktor-public-charts/blob/main/_autodocs/conduktor-provisioner-chart.md Configure console provisioning with TLS enabled by providing a CA certificate. Also specifies resource requests and limits for the console pod. ```yaml console: enabled: true url: "https://console.example.com" username: "admin@example.com" password: "AdminPassword123!" caCert: | -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE----- resources: requests: cpu: 200m memory: 100Mi limits: cpu: 1000m memory: 256Mi gateway: enabled: false # Optional ``` -------------------------------- ### ServiceMonitor Warning for Missing Operator Source: https://github.com/conduktor/conduktor-public-charts/blob/main/charts/console/templates/NOTES.txt This warning is displayed if the Prometheus Operator is not installed, meaning ServiceMonitors will not be created. ```helm {{- if not (.Capabilities.APIVersions.Has "monitoring.coreos.com/v1/ServiceMonitor") }} WARNING: Prometheus Operator is not installed in the cluster. ServiceMonitor will not be created. {{- end }} ``` -------------------------------- ### Get Pods in Diagnostic Mode Source: https://github.com/conduktor/conduktor-public-charts/blob/main/charts/console/templates/NOTES.txt Execute this command to list pods when the chart is deployed in diagnostic mode. ```bash kubectl get pods --namespace {{ include "common.names.namespace" . | quote }} -l app.kubernetes.io/instance={{ .Release.Name }} ``` -------------------------------- ### Other Makefile Targets Source: https://github.com/conduktor/conduktor-public-charts/blob/main/test/README.md Install Python dependencies, validate manifests, or list changed charts using Makefile targets. ```makefile make test-deps ``` ```makefile make lint-manifests ``` ```makefile make detect-changed ``` -------------------------------- ### Generate Chart README Source: https://github.com/conduktor/conduktor-public-charts/blob/main/CONTRIBUTING.md Updates chart README files using the readme-generator-for-helm tool. Ensure the tool is installed. ```shell make generate-readme ``` -------------------------------- ### Install Conduktor Console Without Monitoring Source: https://github.com/conduktor/conduktor-public-charts/blob/main/charts/console/README.md Disable Conduktor's built-in monitoring features by setting platformCortex.enabled to false. ```yaml config: organization: name: "my-org" admin: email: "" password: "" database: hosts: - host: "" port: 5432 name: "" username: "" password: "" platformCortex: enabled: false ``` -------------------------------- ### GrafanaDashboard Warning for Missing Operator Source: https://github.com/conduktor/conduktor-public-charts/blob/main/charts/console/templates/NOTES.txt This warning is shown if the Grafana Operator (v4 or v5) is not installed, preventing GrafanaDashboards from being created. ```helm {{- if not (or (.Capabilities.APIVersions.Has "grafana.integreatly.org/v1beta1/GrafanaDashboard") (.Capabilities.APIVersions.Has "integreatly.org/v1alpha1/GrafanaDashboard")) }} WARNING: Grafana Operator in v4 ot v5 is not installed in the cluster. GrafanaDashboard will not be created. {{- end }} ``` -------------------------------- ### Provide Console Configuration via ConfigMap Source: https://github.com/conduktor/conduktor-public-charts/blob/main/charts/console/README.md Manage Console configuration by providing a Kubernetes ConfigMap. The ConfigMap should contain a `platform-config.yaml` key with the configuration in YAML format. It's recommended to use this in conjunction with a Secret for credentials. ```yaml # values.yaml config: # We highly recommend you to be using both the secret and the ConfigMap # check our snippet 'Provide credentials configuration as a Kubernetes Secret' existingSecret: "" platform: existingConfigmap: "" ``` ```yaml # platform-config.yaml apiVersion: v1 kind: ConfigMap metadata: name: "" data: platform-config.yaml: | database: host: '' port: 5432 name: '' ``` -------------------------------- ### Migrating to Multi-Listeners Mode `values.yaml` Source: https://github.com/conduktor/conduktor-public-charts/blob/main/charts/gateway/README.md This example shows the updated `values.yaml` for multi-listeners mode. It disables the legacy single-listener mode and configures internal and external listeners separately. Existing single-listener environment variables are kept during migration for compatibility. ```yaml gateway: portRange: enable: false # opt out of the legacy single-listener mode (default since 3.20.0) securityMode: "GATEWAY_MANAGED" kafka: brokerIds: - "0-2" # match your Kafka broker IDs listeners: internal: securityProtocol: SASL_SSL routing: sni ports: - "19092" external: securityProtocol: SASL_SSL routing: sni ports: - "9092" advertisedHost: "kafka.example.com" advertisedHostPattern: "broker-{{nodeId}}.kafka.example.com" env: KAFKA_BOOTSTRAP_SERVERS: "kafka:9092" # Keep during migration, remove in Step 3: # GATEWAY_SECURITY_PROTOCOL, GATEWAY_ROUTING_MECHANISM, # GATEWAY_ADVERTISED_HOST, GATEWAY_SSL_KEY_STORE_PATH, GATEWAY_SSL_KEY_STORE_PASSWORD tls: enable: true secretRef: my-jks-secret service: external: enable: true type: LoadBalancer ``` -------------------------------- ### Install Conduktor Console with HTTPS Source: https://github.com/conduktor/conduktor-public-charts/blob/main/_autodocs/deployment-guide.md Deploys Conduktor Console with self-signed HTTPS and an external URL. Ensure your external URL is correctly configured. ```bash helm install console conduktor/console \ --namespace conduktor \ --create-namespace \ --set config.organization.name="My Organization" \ --set config.admin.email="admin@example.com" \ --set config.admin.password="SecurePassword123!" \ --set config.database.hosts[0].host="postgres.default.svc.cluster.local" \ --set config.database.name="conduktor" \ --set config.database.username="postgres" \ --set config.database.password="postgres_password" \ --set config.platform.external.url="https://console.example.com" \ --set config.platform.https.selfSigned=true ``` -------------------------------- ### RBAC Configuration for Conduktor Console Source: https://github.com/conduktor/conduktor-public-charts/blob/main/_autodocs/deployment-guide.md Example RBAC configuration including a ClusterRole and ClusterRoleBinding for the Conduktor Console, granting access to ConfigMaps and Secrets. ```yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: console-role rules: - apiGroups: [""] resources: ["configmaps", "secrets"] verbs: ["get", "list"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: console-rolebinding roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: console-role subjects: - kind: ServiceAccount name: console namespace: conduktor ``` -------------------------------- ### Enable Prometheus Metrics Scraping Source: https://github.com/conduktor/conduktor-public-charts/blob/main/charts/gateway/README.md Enable Prometheus to scrape metrics from the Conduktor Gateway. This configuration installs the ServiceMonitor CRD if Prometheus Operator is available. ```yaml metrics: prometheus: enable: true jobLabel: app.kubernetes.io/instance ``` -------------------------------- ### Provisioning Configuration Source: https://github.com/conduktor/conduktor-public-charts/blob/main/_autodocs/helm-values-types.md Detailed configuration for the Provisioner service, including connection details, authentication, and manifest handling. ```yaml provisioning: enabled: boolean # Enable provisioning url: string # Service URL username: string # Username password: string # Password apiToken: string # API token (alternative to password) caCert: string # CA certificate content cert: string # Client certificate content key: string # Client certificate key insecure: boolean # Skip TLS verification debug: boolean # Debug logging trace: boolean # Trace logging manifests: []object # Inline YAML manifests manifestsConfigMap: string # ConfigMap with manifests manifestsConfigMapKey: string # Key in ConfigMap extraManifestsConfigMapRef: []object # Additional ConfigMap refs command: []string # Container command args: []string # Container args extraEnvVars: []object # Extra environment variables extraEnvVarsCM: string # ConfigMap with extra env vars extraEnvVarsSecret: string # Secret with extra env vars extraVolumes: []object # Additional volumes extraVolumeMounts: []object # Additional volume mounts resources: object # Resource requests/limits containerSecurityContext: object # Security context ``` -------------------------------- ### Test Database Connectivity from Pod Source: https://github.com/conduktor/conduktor-public-charts/blob/main/_autodocs/deployment-guide.md Use 'kubectl exec' to run a PostgreSQL client command from within a pod to test connectivity to the database service. ```bash # Test database connection from pod kubectl exec -n conduktor -- \ psql -h postgresql.prod.svc.cluster.local -U postgres -d conduktor -c "SELECT 1" ``` -------------------------------- ### Verify Helm Chart Configuration Source: https://github.com/conduktor/conduktor-public-charts/blob/main/_autodocs/README.md Retrieve the values and manifest of a deployed Helm chart for verification. ```bash helm get values console -n conduktor helm get manifest console -n conduktor ```