kodanda ramudu
07/01/2026, 9:02 PMkapa.ai
07/01/2026, 9:02 PMhelm repo add airbyte https://airbytehq.github.io/charts
helm repo update
[Installation Guide]
2. Create the Kubernetes Namespace kubectl create namespace airbyte
3. Create Kubernetes Secrets You need two secrets: one for Azure Blob Storage and one for Azure Key Vault.
airbyte-config-secrets.yaml
apiVersion: v1
kind: Secret
metadata:
name: airbyte-config-secrets
type: Opaque
stringData:
# Azure Blob Storage connection string
azure-blob-store-connection-string: "DefaultEndpointsProtocol=https;AccountName=mystorageaccount;AccountKey=<YOUR_ACCOUNT_KEY>;EndpointSuffix=core.windows.net"
# Azure Key Vault service principal credentials
azure-key-vault-client-id: "<your-client-id>" # e.g. 3fc863e9-4740-4871-bdd4-456903a04d4e
azure-key-vault-client-secret: "<your-client-secret>" # e.g. KWP6egqixiQeQoKqFZuZq2weRbYoVxMH
Apply it:
kubectl apply -f airbyte-config-secrets.yaml -n airbyte
[Storage Secrets; Secret Management]
4. Create values.yaml global:
edition: community
airbyteUrl: "https://airbyte.your-domain.example" # Replace with your actual URL
# External Azure Blob Storage for logs and state
storage:
type: "Azure"
secretName: airbyte-config-secrets
bucket:
log: airbyte-container # Name of your Azure Blob container
state: airbyte-container
workloadOutput: airbyte-container
activityPayload: airbyte-container
azure:
connectionStringSecretKey: azure-blob-store-connection-string # Key in your Kubernetes secret
# Azure Key Vault for connector secret management
secretsManager:
type: AZURE_KEY_VAULT
secretsManagerSecretName: "airbyte-config-secrets"
azureKeyVault:
vaultUrl: "https://my-vault.vault.azure.net/" # Replace with your Key Vault URL
tenantId: "your-tenant-id" # Replace with your Azure Tenant ID
clientId: "" # Inline value (optional if using secretKey)
clientIdSecretKey: "azure-key-vault-client-id" # Key in your Kubernetes secret
clientSecret: "" # Inline value (optional if using secretKey)
clientSecretSecretKey: "azure-key-vault-client-secret" # Key in your Kubernetes secret
# External PostgreSQL database (recommended for production)
database:
secretName: "airbyte-config-secrets"
host: "your-postgres-host"
port: 5432
name: "airbyte"
userSecretKey: "database-user"
passwordSecretKey: "database-password"
postgresql:
enabled: false # Disable internal Postgres since we use external
# Minio is disabled because we use Azure Blob Storage
minio:
enabled: false
> Note: The database section is recommended for production AKS deployments. If you are testing without an external database, remove the database block and set postgresql.enabled: true. Also add database-user and database-password keys to your Kubernetes secret if using an external DB.
[Storage Values; Secret Management Values; Chart V2 values.yaml]
5. Install Airbyte helm install airbyte airbyte/airbyte \
--namespace airbyte \
--values ./values.yaml \
--version 2.0.18
[Installing Airbyte]
Key Notes • Adding external Azure Blob Storage in values.yaml automatically disables the default internal Minio instance. [Storage Secrets]
• Airbyte recommends using a single blob container across all three bucket values (log, state, workloadOutput). [Storage Values]
• Modifying the connector secret storage configuration will cause existing connectors to fail — you will need to recreate them. [Secret Management Values]
• For production AKS, Airbyte recommends deploying to Azure Kubernetes Service running in 2 or more availability zones. [Infrastructure Prerequisites] 👍 0 button 👎 0 button ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.kapa.ai
07/01/2026, 9:07 PMvalues.yaml based on the knowledge sources, but I must be upfront that some observations go beyond what the knowledge sources explicitly cover.
Issues Found 1. global.airbyteUrl — Malformed URL Your current value uses a Slack-formatted hyperlink:
airbyteUrl: <https://airbyte-v2-test.com|airbyte-v2-test.com>
It should be a plain URL string:
airbyteUrl: "https://airbyte-v2-test.com"
[Chart V2 values.yaml]
2. global.database.host — Malformed URL Same Slack hyperlink formatting issue:
host: "<http://postgres.database.azure.com|postgres.database.azure.com>"
Should be:
host: "postgres.database.azure.com"
Also note: the host should not include http:// — it should be a plain hostname. [Chart V2 values.yaml]
3. global.database.port — Should Be an Integer, Not a String port: "5432" # ❌ string
Should be:
port: 5432 # ✅ integer
[Chart V2 values.yaml]
4. global.database — Missing secretName, userSecretKey, passwordSecretKey Your database block is missing credentials configuration entirely. You need either inline credentials or secret references:
global:
database:
host: "postgres.database.azure.com"
port: 5432
name: "airbyte-v2-dv"
secretName: "airbyte-config-secrets"
userSecretKey: "database-user"
passwordSecretKey: "database-password"
[Chart V2 values.yaml]
5. ingress.hosts — Malformed Host URLs Same Slack hyperlink formatting issue on the ingress hosts:
host: <http://airbyte-v2-test.com|airbyte-v2-test.com> # ❌
Should be:
host: airbyte-v2-test.com # ✅ plain hostname, no protocol
Also, TLS hosts should not include http://. [Ingress]
6. ingress — Missing className The ingress block is missing the className field, which is required to specify your ingress controller (e.g., nginx, alb):
ingress:
enabled: true
className: "nginx" # ← Add this
[Ingress]
7. global.airbyteUrl Must Match Ingress Host The docs explicitly require these to match:
global:
airbyteUrl: "https://airbyte-v2-test.com"
ingress:
hosts:
- host: airbyte-v2-test.com
[Ingress URL Match]
Items I Cannot Confirm from Knowledge Sources The knowledge sources do not explicitly document the following fields you are using, so I cannot confirm their correctness:
• global.dataplaneGroups.defaultDataplaneGroupName
• WORKLOAD_LAUNCHER_ENABLED_NAMESPACES
• global.logging.level
These may be valid, but I'd recommend verifying them against the Values.yaml reference directly.
Summary of Fixes 👍 0 button 👎 0 button ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help., with interactive elementskapa.ai
07/01/2026, 9:07 PMvalues.yaml. Here are my observations, organized by category:
✅ Things That Look Correct • global.jobs.kube.namespace — Correctly scoped to your namespace.
• global.airbyteUrl — Present and set.
• workloadLauncher / worker / workloadApiServer auth alignment — Sharing the same bearer token via secretKeyRef is the right approach to fix the 401 auth issue described in GitHub issue #70451. [Auth Issue]
• ingress.enabled: true with backend: server and backend: connector-builder-server paths — Correct per Helm chart V2 ingress requirements. [Ingress Config]
⚠️ Issues and Recommendations 1. global.airbyteUrl format looks malformed Your value appears as:
airbyteUrl: <https://airbyte-v2-test.com|airbyte-v2-test.com>
This looks like a Slack-formatted hyperlink that was pasted in. It should be a plain URL:
airbyteUrl: "https://airbyte-v2-test.com"
2. global.database.host format looks malformed Similarly:
host: "<http://postgres.database.azure.com|postgres.database.azure.com>"
Should be:
host: "postgres.database.azure.com"
Also note: Azure PostgreSQL Flexible Server hostnames use HTTPS under the hood, but the host value should be the plain hostname only, not a URL with a scheme. [Database Config]
3. global.database.port should be an integer, not a string # ❌ Current
port: "5432"
# ✅ Correct
port: 5432
[Database Config]
4. Missing global.database credentials Your database block has host, name, and port, but no credentials:
global:
database:
host: "postgres.database.azure.com"
name: "airbyte-v2-dv"
port: 5432
secretName: "airbyte-config-secrets" # ← ADD
userSecretKey: "database-user" # ← ADD
passwordSecretKey: "database-password" # ← ADD
Without credentials, the bootloader and server will fail to connect to the database. [Database Config]
5. postgresql.enabled is not explicitly set to false Since you're using an external database, you should explicitly disable the bundled PostgreSQL:
postgresql:
enabled: false
[External DB]
6. Ingress host format looks malformed # ❌ Current (Slack-formatted)
host: <http://airbyte-v2-test.com|airbyte-v2-test.com>
# ✅ Correct
host: airbyte-v2-test.com
Also, TLS hosts should use the plain hostname (not a URL with scheme). [Ingress Config]
7. global.airbyteUrl must match the ingress host exactly Per Airbyte's requirement:
global:
airbyteUrl: "https://airbyte-v2-test.com" # Must match ingress host
[Ingress URL Match]
8. Missing ingress.className The ingress block is missing a className, which is required for most Kubernetes ingress controllers (e.g., NGINX on AKS):
ingress:
enabled: true
className: "nginx" # ← ADD, or "azure/application-gateway" etc.
[Ingress Config]
ℹ️ Items I Cannot Fully Validate The knowledge sources do not contain explicit documentation on the following keys you've used, so I cannot confirm their exact correctness:
• global.dataplaneGroups.defaultDataplaneGroupName
• WORKLOAD_LAUNCHER_ENABLED_NAMESPACES
These may be valid internal environment variables, but they are not documented in the available Airbyte Helm chart V2 reference material I have access to. I'd recommend verifying these against the official values.yaml reference. 👍 0 button 👎 0 button ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.kapa.ai
07/01/2026, 9:17 PMpostgresql.enabled: false and minio.enabled: false — Correctly disabled since you're using external DB and Azure Blob Storage. [Chart V2]
• global.database.type: "external" — Correct key for external DB. [External DB]
• global.database.port: 5432 — Correctly an integer (unlike the env overlay which had it as a string).
• global.storage.type: azure with connectionStringSecretKey — Correct pattern for Azure Blob Storage. [Storage Values]
• global.auth.security.secretName and jwtSignatureSecretKey — Correct structure for JWT secret reference.
• keycloak.enabled: false and keycloakSetup.enabled: false — Correct for community edition without SSO.
• ingress.className: "nginx-internal" — Good, this was missing in the env overlay.
• global.jobs.kube.mainContainerImagePullSecret — Correct key per Helm V2 spec. [Chart V2]
⚠️ Issues and Recommendations 1. global.airbyteUrl is Empty in Global Config airbyteUrl: "" # Set in environment-specific overlay
The env overlay also has a malformed Slack-formatted URL. Make sure the overlay correctly sets this to a plain URL:
airbyteUrl: "https://airbyte-v2-test.com"
This must match the ingress host exactly. [Chart V2]
2. global.database.host and global.database.name Are Empty host: "" # Set in environment-specific overlay
name: "" # Set in environment-specific overlay
The env overlay sets host with a malformed Slack URL and is missing secretName, userSecretKey, and passwordSecretKey. The global config does define these correctly:
secretName: "airbyte-auth-secrets"
userSecretKey: "DATABASE_USER"
passwordSecretKey: "DATABASE_PASSWORD"
However, verify that the keys DATABASE_USER and DATABASE_PASSWORD exactly match the keys in your airbyte-auth-secrets Kubernetes secret. The Airbyte docs use lowercase keys like database-user and database-password as examples — your uppercase naming is fine as long as it matches what's in the secret. [External DB]
3. global.logging.level Conflict Between Files • Global config sets: level: "INFO"
• Env overlay sets: level: "DEBUG"
The env overlay will win if it's applied as a Helm values override. This is likely intentional for the test environment, but worth being explicit about. [Chart V2]
4. global.storage.bucket.auditLogging Key You have:
bucket:
auditLogging: airbyte-v2-logs
Per the Helm V2 reference, the correct key mapping is:
global.storage.bucket.auditLogging → STORAGE_BUCKET_AUDIT_LOGGING
This looks correct. [Chart V2]
5. global.auth.instanceAdmin — Missing secretName and passwordSecretKey You have the secretName commented out:
#secretName: "airbyte-auth-secrets"
#passwordSecretKey: "instance-admin-password"
firstName: "dfad"
lastName: "adfd"
email: novaplatformteam@gmail.com
The admin password must be provided either inline or via a secret reference. If you're relying on ExternalSecrets to inject instance-admin-password into airbyte-auth-secrets, you should uncomment these lines to ensure the chart can read the password:
instanceAdmin:
secretName: "airbyte-auth-secrets"
passwordSecretKey: "instance-admin-password"
firstName: "dfad"
lastName: "adfd"
email: "novaplatformteam@gmail.com"
[Chart V2]
6. global.edition Is Missing The global config does not set global.edition. This is a required field in Helm chart V2:
global:
edition: community
[Chart V2]
7. workloadApiServer.service.port: 8001 The knowledge sources do not explicitly document this field. The default Airbyte server port is 8001, but I cannot confirm whether workloadApiServer.service.port is a valid chart key — please verify against the values.yaml reference.
8. Env Overlay Still Missing Key Fixes When combined with the env overlay reviewed earlier, these issues from the overlay are not resolved by the global config:
Summary The global config is well-structured overall, but has these critical gaps:
1. ❌ global.edition: community is missing from both files
2. ❌ instanceAdmin.secretName and passwordSecretKey are commented out
3. ⚠️ Env overlay URL formatting issues must be fixed before deployment
4. ⚠️ Verify DATABASE_USER / DATABASE_PASSWORD secret key casing matches your actual Kubernetes secret 👍 0 button 👎 0 button ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help., with interactive elements