Upgrading Airbyte
Upgrades require temporarily turning off Airbyte. During upgrades, Airbyte will attempt to upgrade some connector versions. The following rules determine which connectors may be automatically upgraded:
-
If you're not using a connector, Airbyte upgrades it to the latest version.
-
If you're using a connector, Airbyte does not upgrade it, to avoid disrupting your work. If you want to upgrade a specific connector, do so from the settings page.
Refer to Managing Connector Updates for more details about keeping connectors updated.
Upgrading Airbyte deployed on Kubernetes with Helm
Airbyte versions before 2.3: MinIO image override required
The minio/minio image that Airbyte versions before 2.3 use for internal storage is no longer available on Docker Hub. If you deploy or upgrade an Airbyte version earlier than 2.3 without overriding the MinIO image, MinIO fails to pull its image and the deployment stalls. Airbyte 2.3 and later use the airbyte/minio image and don't need this override.
Set minio.image.repository to airbyte/minio. Keep the image tag unchanged.
New installs: Add --set minio.image.repository=airbyte/minio to your install command. For example:
helm install airbyte airbyte-v2/airbyte \
--namespace airbyte --create-namespace --version 2.2.0 \
--set minio.image.repository=airbyte/minio
Existing installs: Run these steps in order. Don't run helm upgrade first. It fails while MinIO is down.
These commands assume your namespace and Helm release are both named airbyte. If yours differ, substitute your own names.
-
Point the MinIO StatefulSet at the new image.
kubectl -n airbyte set image statefulset/airbyte-minio \airbyte-minio=airbyte/minio:RELEASE.2023-11-20T22-40-07Z -
Delete the stuck pods. This is required because the StatefulSet rollout stalls on a stuck pod.
kubectl -n airbyte delete pod airbyte-minio-0kubectl -n airbyte delete pod airbyte-minio-create-bucket --ignore-not-found -
Upgrade the Helm release so the override persists. Replace
<repo>with the name of your Helm repository, for exampleairbyte-v2. Replace<chart-version>with the chart version you currently run (helm list -n airbyteshows it) so the upgrade doesn't move you to a newer chart.helm upgrade airbyte <repo>/airbyte \--namespace airbyte --reuse-values \--version <chart-version> \--set minio.image.repository=airbyte/minioIf this step fails on a
miniohook, run it again.
Upgrade by updating your values.yaml file and redeploying Airbyte. If you're not using a values.yaml to deploy Airbyte using Helm, you can jump directly to step 4.
-
If you're not sure which chart versions you're running, run
helm list -n <NAMESPACE>. -
Check the release notes to see what versions are available and review any requirements to upgrade. You can also see which Helm chart versions are available in the Airbyte ArtifactHub.
-
Update your
values.yamlfile if necessary. In most cases, you only need to do this if you want to implement a new feature from the new version. -
Run the following command to upgrade.
helm upgrade airbyte airbyte/airbyte \--namespace airbyte \ # Target Kubernetes namespace--values ./values.yaml \ # Custom configuration values--version 2.x.x # Helm chart version to useAfter 5 minutes, Helm prints a message showing how to port-forward Airbyte. This may take longer on Kubernetes clusters with slow internet connections. In general the message is as follows:
Get the application URL by running these commands:echo "Visit http://127.0.0.1:8080 to use your application"kubectl -n airbyte port-forward deployment/airbyte-server 8080:8001
Upgrading Airbyte deployed with abctl
Airbyte versions before 2.3: MinIO image override required
The minio/minio image that Airbyte versions before 2.3 use for internal storage is no longer available on Docker Hub. If you deploy or upgrade an Airbyte version earlier than 2.3 without overriding the MinIO image, MinIO fails to pull its image and the deployment stalls. Airbyte 2.3 and later use the airbyte/minio image and don't need this override.
Keep the image tag unchanged.
New installs: Add the override to a values.yaml file and pass it to abctl:
minio:
image:
repository: airbyte/minio
abctl local install --chart-version <chart-version> --values ./values.yaml
Here, <chart-version> is the pre-2.3 chart version you want to install.
Existing installs: Run these steps in order. Don't run abctl local install first. It fails while MinIO is down.
-
Point the MinIO StatefulSet at the new image:
kubectl --kubeconfig ~/.airbyte/abctl/abctl.kubeconfig -n airbyte-abctl set image statefulset/airbyte-minio \airbyte-minio=airbyte/minio:RELEASE.2023-11-20T22-40-07Z -
Delete the stuck pods (StatefulSet rollout stalls on a stuck pod):
kubectl --kubeconfig ~/.airbyte/abctl/abctl.kubeconfig -n airbyte-abctl delete pod airbyte-minio-0kubectl --kubeconfig ~/.airbyte/abctl/abctl.kubeconfig -n airbyte-abctl delete pod airbyte-minio-create-bucket --ignore-not-found -
Add the override to your
values.yamland re-runabctl local install --chart-version <chart-version> --values ./values.yamlwith your current chart version so the override persists.minio:image:repository: airbyte/minioabctl local install --chart-version <chart-version> --values ./values.yamlIf this step fails on a
miniohook, run it again.
abctl streamlines the way you manage a local installation of Airbyte Core.
Run abctl local install to upgrade to the latest version of Airbyte. If you'd like to ensure you're running the latest version of Airbyte, you can check the value of the Helm Chart's app version by running abctl local status.
Upgrade abctl
Occasionally, you need to update abctl to the latest version. This is separate from upgrading Airbyte. It only upgrades the command line tool.
- curl
- Go
- Homebrew
- GitHub - Linux
- GitHub - Windows
Run the following command to upgrade abctl.
curl -LsfS https://get.airbyte.com | bash -
Verify the upgrade.
abctl version
Run the following command to upgrade abctl.
go install github.com/airbytehq/abctl@latest
Verify the upgrade.
abctl version
Run the following command to upgrade abctl.
brew upgrade abctl
Verify the upgrade.
abctl version
-
Verify your processor architecture.
uname -mIf the output is
x86_64, download the linux-amd64 release. If the output isaarch64or similar, download the linux-arm64 release. -
Download the latest release from the abctl releases page.
-
Extract the archive. This creates a directory named
abctl, which contains the executable and other needed files.tar -xvzf {name-of-file-downloaded.linux-*.tar.gz} -
Replace the existing executable with the new version.
chmod +x abctl/abctlsudo mv abctl /usr/local/bin -
Verify the upgrade.
abctl version
-
Download the latest release from the abctl releases page. Download the windows-amd64 or windows-arm64 release depending on your processor architecture.
-
Extract the zip file to the same location where you previously installed abctl, replacing the existing files.
-
Verify the upgrade.
abctl version