Iasonas Tragakis
05/12/2026, 10:54 AMkapa.ai
05/12/2026, 10:54 AM# Find your database pod
kubectl get pods --all-namespaces | grep db
# Run pg_dump inside the pod
kubectl exec -n airbyte -it airbyte-db-0 -- bash -c "pg_dump -U airbyte db-airbyte > /tmp/airbyte_backup.sql"
# Copy the backup locally
kubectl cp airbyte/airbyte-db-0:/tmp/airbyte_backup.sql ./airbyte_backup.sql
[Helm chart V2 upgrade]
2. Ensure You're on Helm Chart V2 Helm chart V1 is not supported in Airbyte 2.1.0. Since you're on 2.0.1, you should already be on Helm chart V2. If not, follow the Helm chart V2 migration guide first. [Airbyte 2.1 Release]
3. Update the Helm Repo helm repo update
This pulls the latest Helm chart versions. [Enterprise Implementation Guide]
4. Run the Helm Upgrade helm upgrade airbyte airbyte/airbyte \
--namespace airbyte \
--values ./values.yaml \
--version 2.1.x # Replace with the exact Helm chart version for 2.1.0
Check the Airbyte ArtifactHub or release notes for the exact Helm chart version corresponding to Airbyte 2.1.0. [Upgrading Airbyte]
5. Review Notable Changes in 2.1.0 Be aware of these changes that may require action: [Airbyte 2.1 Release]
• Authentication enabled by default for new deployments. If you need unauthenticated access, explicitly disable it in values.yaml.
• Management endpoints moved to port 8085: If you have custom health checks or monitoring targeting the application port, update them to use port 8085.
• AIRBYTE_ROLE environment variable removed: Remove any references to this in custom configs or scripts.
• Redis image updated to bitnamilegacy/redis — no action needed if using default chart values.
6. Manage Connector Updates Post-Upgrade After upgrading, Airbyte will automatically upgrade connectors that are not in use. Connectors in use will not be automatically upgraded to avoid disruption. You can manually update connectors from the Workspace settings > Sources/Destinations page. [Managing Connector Updates]
Your existing connections will be preserved through the upgrade as long as the database is intact. The upgrade process does not require recreating connections. 👍 0 button 👎 0 button ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.Iasonas Tragakis
05/12/2026, 10:55 AMkapa.ai
05/12/2026, 10:55 AM# Check your current version
abctl version
# Upgrade abctl (e.g., via curl)
curl -LsfS https://get.airbyte.com | bash -
[Upgrading abctl]
Using an External Database Using an external database is actually the safer scenario for upgrades. Since your data lives outside the cluster, you don't need to worry about losing connection data during the upgrade. Your values.yaml should already have the external DB configured like this:
postgresql:
enabled: false
global:
database:
secretName: "airbyte-config-secrets"
host: "your-db-hostname"
port: "5432"
name: "your_db_name"
userSecretKey: "database-user"
passwordSecretKey: "database-password"
Upgrade Command Once abctl is up to date, simply run:
abctl local install --values values.yaml
This will upgrade your existing installation to the latest version. [Upgrading with abctl]
In summary, as long as your abctl is on version 0.30.2 or later and your values.yaml correctly points to your external database, you should not encounter problems upgrading from 2.0.1 to 2.1.0. It's still good practice to take a database backup before any upgrade. 👍 0 button 👎 0 button ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.Iasonas Tragakis
05/12/2026, 10:56 AMIasonas Tragakis
05/12/2026, 10:56 AMkapa.ai
05/12/2026, 10:56 AMabctl local install --values values.yaml
Since you're using an external database, your connection data is safe and will persist through the upgrade. [Upgrading with abctl]
Just make sure to review the notable changes in 2.1.0 mentioned earlier (auth enabled by default, port 8085 for management endpoints, AIRBYTE_ROLE removed) to see if any apply to your setup. 👍 0 button 👎 0 button ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.Iasonas Tragakis
05/12/2026, 11:09 AMkapa.ai
05/12/2026, 11:09 AMabctl local install --values values.yaml
Some users have reported success just by running the install command a second time. [install stuck issue]
2. Check if Pods Are Actually Running The timeout may be a false failure — the cluster could still be healthy. Check pod status:
kubectl get pods -n airbyte-abctl
Look for pods in ImagePullBackOff, CrashLoopBackOff, or Pending state, which would indicate a real problem. [abctl reliability issues]
3. Check for Resource Constraints abctl has no preflight resource checks, so the timeout can happen silently if your machine is under-resourced. Airbyte recommends at minimum:
• 8GB RAM
• 20GB disk
Verify your available resources before retrying. [abctl reliability issues]
4. Check for Network/Image Pull Issues If you're behind a corporate proxy or experiencing Docker Hub rate limiting, image pulls can silently fail and cause timeouts. You can exec into the Kind container to investigate:
docker exec -it airbyte-abctl-control-plane bash
curl https://ifconfig.io # verify outbound connectivity
If rate-limited, retry with Docker credentials:
abctl local install --values values.yaml \
--docker-username YOUR_USERNAME \
--docker-password YOUR_PASSWORD
[install stuck issue]
5. Try a Specific Chart Version If the latest chart version is causing issues, try pinning to a known-good version:
abctl local install --values values.yaml --chart-version 1.9.1
[Helm chart broken issue]
I'm sorry, but the knowledge sources don't mention a way to increase the ingress timeout directly via an abctl flag in the current version (v0.30.3) — this has been raised as a feature request but appears unresolved. [abctl reliability issues] 👍 0 button 👎 0 button ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.Iasonas Tragakis
05/12/2026, 11:10 AMkapa.ai
05/12/2026, 11:10 AMkubectl is not pointing to the correct kubeconfig for your abctl-managed cluster. By default, kubectl tries to connect to localhost:8080, but abctl uses its own kubeconfig file. [abctl FAQ]
Fix: Use the abctl Kubeconfig You need to specify the abctl kubeconfig explicitly:
kubectl --kubeconfig ~/.airbyte/abctl/abctl.kubeconfig \
--namespace airbyte-abctl \
get pods
Optional: Set it Permanently for Your Session To avoid typing --kubeconfig every time, export it as an environment variable:
export KUBECONFIG=~/.airbyte/abctl/abctl.kubeconfig
Then you can run kubectl commands normally:
kubectl get pods -n airbyte-abctl
Once you can see the pods, share the output here and we can diagnose the ingress timeout issue further. Look out for pods in ImagePullBackOff, CrashLoopBackOff, or Pending state. [abctl FAQ] 👍 0 button 👎 0 button ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.Iasonas Tragakis
05/12/2026, 11:11 AMIasonas Tragakis
05/12/2026, 11:11 AMkapa.ai
05/12/2026, 11:11 AMCompleted pods are just finished jobs (sync/discovery), which is also normal.
The Ingress Timeout is Likely a False Failure Your cluster is healthy. The ERROR: Timed out waiting for ingress is most likely the 1-minute ingress verification timeout in abctl being too short for your Azure VM. [abctl reliability issues]
Try These Steps 1. Check if Airbyte is actually accessible:
curl -I http://localhost:8000
2. Check the ingress status:
kubectl get ingress -n airbyte-abctl \
--kubeconfig ~/.airbyte/abctl/abctl.kubeconfig
3. Check ingress controller pods:
kubectl get pods -n ingress-nginx \
--kubeconfig ~/.airbyte/abctl/abctl.kubeconfig
If curl http://localhost:8000 returns a response, your upgrade was actually successful despite the timeout error. The ingress timeout is a known false-negative on cloud VMs like Azure. [abctl reliability issues] 👍 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 elementsIasonas Tragakis
05/12/2026, 11:13 AMkapa.ai
05/12/2026, 11:13 AMlocalhost:80/8000. This is why both the installation timeout and abctl local credentials are failing with context deadline exceeded.
1. Check the Ingress Controller kubectl get pods -n ingress-nginx \
--kubeconfig ~/.airbyte/abctl/abctl.kubeconfig
If the ingress-nginx pods are missing or not running, that's your problem.
2. Check the Ingress Resource kubectl get ingress -n airbyte-abctl \
--kubeconfig ~/.airbyte/abctl/abctl.kubeconfig
3. Check if Port 80/8000 is Reachable curl -v http://localhost:8000
curl -v http://localhost:80
4. Check for Port Conflicts on Your Azure VM On Azure VMs, port 80 is often blocked by the OS firewall or already in use:
# Check what's using port 80
sudo ss -tlnp | grep ':80'
sudo ss -tlnp | grep ':8000'
5. Try Reinstalling As reported by other users, a clean reinstall sometimes resolves ingress issues: [install stuck issue]
abctl local uninstall
abctl local install --values values.yaml
I'm sorry, but the knowledge sources don't contain enough detail about this specific Azure VM ingress failure scenario to give a definitive fix. The root cause is most likely either:
• The ingress-nginx pods failed to start (check step 1 above)
• A port conflict or firewall rule on your Azure VM blocking port 80 [abctl reliability issues]
Please share the output of steps 1 and 3 so we can narrow it down further. 👍 0 button 👎 0 button ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.Iasonas Tragakis
05/12/2026, 11:14 AMkapa.ai
05/12/2026, 11:14 AM--host flag expects a fully qualified domain name only, not a URL with a protocol prefix. [EC2 with abctl]
2. Port 80 + --insecure-cookies Since you're running over HTTP (port 80), --insecure-cookies is correct to include. [abctl reference]
Corrected Command sudo abctl local install \
--values ./values.yaml \
--no-browser \
--insecure-cookies \
--host airbyte.welcomd.com \
--port 80
Additional Things to Verify 1. Make sure port 80 is open on your Azure VM's Network Security Group (NSG) — inbound traffic on port 80 must be allowed.
2. Make sure port 80 is not already in use on the VM:
sudo ss -tlnp | grep ':80'
3. Ensure your DNS record for airbyte.welcomd.com points to your Azure VM's public IP.
> ⚠️ Running Airbyte over plain HTTP exposes your password in clear text. Airbyte strongly recommends securing your instance with TLS. [EC2 with abctl] 👍 0 button 👎 0 button ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.Iasonas Tragakis
05/12/2026, 11:18 AMkapa.ai
05/12/2026, 11:19 AMlocalhost:80 may still fail because:
• The ingress verification checks localhost directly, not your domain
• Cloudflare sits between the public domain and your VM
This could explain why you're seeing:
ERROR Timed out waiting for ingress
ERROR browser liveness check failed: context deadline exceeded
What to Try 1. Verify local ingress is working directly on the VM:
curl -v http://localhost:80
2. Check if the ingress-nginx pods are running:
kubectl get pods -n ingress-nginx \
--kubeconfig ~/.airbyte/abctl/abctl.kubeconfig
3. Use --no-browser to skip the browser check (which you're already doing ✅)
> ⚠️ I'm sorry, but the knowledge sources don't explicitly cover Cloudflare proxy configurations with abctl. For this specific setup, I'd recommend reaching out on the Airbyte Community Slack where others may have configured the same Cloudflare + abctl combination. [abctl reliability issues] 👍 0 button 👎 0 button ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.Iasonas Tragakis
05/12/2026, 11:19 AMkapa.ai
05/12/2026, 11:19 AMcurl output confirms that nothing is listening on port 80 on your VM. This is why abctl's liveness check is failing. The ingress-nginx controller is either not running or not bound to port 80.
Step 1: Check Ingress-Nginx Pods kubectl get pods -n ingress-nginx \
--kubeconfig ~/.airbyte/abctl/abctl.kubeconfig
Share the output — if pods are in CrashLoopBackOff, Pending, or ImagePullBackOff, that's your root cause. [install stuck issue]
Step 2: Check Ingress-Nginx Logs kubectl logs -n ingress-nginx \
--kubeconfig ~/.airbyte/abctl/abctl.kubeconfig \
-l app.kubernetes.io/name=ingress-nginx
Step 3: Check the Ingress Resource kubectl describe ingress -n airbyte-abctl \
--kubeconfig ~/.airbyte/abctl/abctl.kubeconfig
Look for any errors like service not found or misconfigured backends. [ingress misconfiguration issue]
Step 4: Try a Clean Reinstall If the ingress-nginx pods are broken, a clean reinstall may fix it: [install stuck issue]
abctl local uninstall
sudo abctl local install \
--values ./values.yaml \
--no-browser \
--insecure-cookies \
--host airbyte.welcomd.com \
--port 80
Please share the output of Step 1 first — the pod status of ingress-nginx will tell us exactly what's going wrong. 👍 0 button 👎 0 button ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.Iasonas Tragakis
05/12/2026, 11:20 AMkapa.ai
05/12/2026, 11:20 AMkind clusters (which abctl uses) on cloud VMs — the kind cluster runs inside Docker and port mapping may not be configured correctly.
Step 1: Check What Ports Kind Has Mapped docker ps | grep airbyte-abctl-control-plane
Look for port mappings like 0.0.0.0:80->80/tcp. If port 80 is not listed, that's your problem.
Step 2: Check the Ingress-Nginx Service kubectl get svc -n ingress-nginx \
--kubeconfig ~/.airbyte/abctl/abctl.kubeconfig
Look at the EXTERNAL-IP and PORT(S) columns. If the service shows <pending> for EXTERNAL-IP, the load balancer is not getting an IP assigned.
Step 3: Check the Ingress Resource kubectl describe ingress -n airbyte-abctl \
--kubeconfig ~/.airbyte/abctl/abctl.kubeconfig
This will show if the ingress is pointing to the correct backend service. A known bug in abctl v0.30.1 caused ingress to incorrectly point to airbyte-abctl-airbyte-webapp-svc instead of airbyte-abctl-airbyte-server-svc. [ingress misconfiguration issue]
Please share the output of Steps 1 and 2 — the Docker port mapping is most likely the root cause here. 👍 0 button 👎 0 button ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.Iasonas Tragakis
05/12/2026, 11:21 AMkapa.ai
05/12/2026, 11:21 AMairbyte-abctl-airbyte-connector-builder-server-svc which doesn't exist. This is a known issue caused by running abctl in --low-resource-mode. If you're not using low-resource mode, this may resolve itself. [connector builder service missing]
Issue 2: Ingress-Nginx Running as NodePort (Root Cause ✅) This is your main problem. The ingress-nginx service is running as NodePort instead of being bound directly to the host port:
ingress-nginx-controller NodePort 10.96.20.184 <none> 80:30253/TCP
Even though Docker maps 0.0.0.0:80->80/tcp, the ingress controller is listening on NodePort 30253 inside the cluster, not on port 80. So traffic hitting port 80 on the host never reaches nginx.
Fix: Check if You're Using --low-resource-mode First, verify your install command doesn't include `--low-resource-mode`:
sudo abctl local install \
--values ./values.yaml \
--no-browser \
--insecure-cookies \
--host airbyte.welcomd.com \
--port 80
Try a Clean Reinstall A clean reinstall should correctly configure the ingress-nginx service: [install stuck issue]
# Uninstall first
abctl local uninstall
# Reinstall
sudo abctl local install \
--values ./values.yaml \
--no-browser \
--insecure-cookies \
--host airbyte.welcomd.com \
--port 80
Verify After Reinstall After reinstalling, confirm nginx is correctly bound:
# Should show LoadBalancer or correct port binding, not NodePort
kubectl get svc -n ingress-nginx \
--kubeconfig ~/.airbyte/abctl/abctl.kubeconfig
# Confirm port 80 is responding
curl -v http://localhost:80
> ⚠️ I'm sorry, but the knowledge sources don't explicitly explain why abctl is deploying ingress-nginx as NodePort on your Azure VM. If the clean reinstall doesn't fix it, I'd recommend raising this on the Airbyte Community Slack as it may be an Azure-specific abctl issue. [abctl reliability issues] 👍 0 button 👎 0 button ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.