Skip to content

Commit ed7976f

Browse files
marcosmarxmxiaohansong
authored andcommitted
Docs: update k8s instructions for upgrade (#35108)
1 parent 4470423 commit ed7976f

File tree

1 file changed

+13
-82
lines changed

1 file changed

+13
-82
lines changed

docs/operator-guides/upgrading-airbyte.md

Lines changed: 13 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -84,91 +84,22 @@ This will completely reset your Airbyte deployment back to scratch and you will
8484

8585
:::
8686

87-
## Upgrading on K8s (0.27.0-alpha and above)
87+
## Upgrading on K8s using Helm
8888

89-
If you are upgrading from (i.e. your current version of Airbyte is) Airbyte version **0.27.0-alpha or above** on Kubernetes :
90-
91-
1. In a terminal, on the host where Airbyte is running, turn off Airbyte.
92-
93-
```bash
94-
kubectl delete deployments airbyte-db airbyte-worker airbyte-server airbyte-temporal airbyte-webapp --namespace=<yournamespace or default>
95-
```
96-
97-
2. Upgrade the kube deployment to new version.
98-
99-
i. If you are running Airbyte from a cloned version of the Airbyte GitHub repo and want to use the current most recent stable version, just `git pull`.
100-
101-
3. Bring Airbyte back online.
102-
103-
```bash
104-
kubectl apply -k kube/overlays/stable
105-
```
106-
107-
After 2-5 minutes, `kubectl get pods | grep airbyte` should show `Running` as the status for all the core Airbyte pods. This may take longer on Kubernetes clusters with slow internet connections.
108-
109-
Run `kubectl port-forward svc/airbyte-webapp-svc 8000:80` to allow access to the UI/API.
110-
111-
## Upgrading on K8s (0.26.4-alpha and below)
112-
113-
If you are upgrading from (i.e. your current version of Airbyte is) Airbyte version **before 0.27.0-alpha** on Kubernetes we **do not** support automatic migration. Please follow the following steps to upgrade your Airbyte Kubernetes deployment.
114-
115-
1. Switching over to your browser, navigate to the Admin page in the UI. Then go to the Configuration Tab. Click Export. This will download a compressed back-up archive \(gzipped tarball\) of all of your Airbyte configuration data and sync history locally.
116-
117-
_Note: Any secrets that you have entered into Airbyte will be in this archive, so you should treat it as a secret._
118-
119-
2. Back to the terminal, migrate the local archive to the new version using the Migration App (packaged in a docker container).
89+
The instructions below are for users using custom deployment and have a `values.yaml`. If you're not using a `values.yaml` to deploy Airbyte using Helm can jump directly to step `4.`.
12090

91+
1. Access [Airbyte ArtifactHub](https://artifacthub.io/packages/helm/airbyte/airbyte) and select the version you want to upgrade.
92+
2. You can click in `Default Values` and compare the value file between the new version and version you're running. You can run `helm list -n <NAMESPACE>` to check the CHART version you're using.
93+
3. Update your `values.yaml` file if necessary.
94+
4. Upgrade the Helm app running:
12195
```bash
122-
docker run --rm -v <path to directory containing downloaded airbyte_archive.tar.gz>:/config airbyte/migration:<version you are upgrading to> --\
123-
--input /config/airbyte_archive.tar.gz\
124-
--output <path to where migrated archive will be written (should end in .tar.gz)>\
125-
[ --target-version <version you are migrating to or empty for latest> ]
96+
helm upgrade --install <RELEASE-NAME> airbyte/airbyte --values <VALUE.YAML> --version <HELM-APP-VERSION>
12697
```
12798

128-
Here's an example of what it might look like with the values filled in. It assumes that the downloaded `airbyte_archive.tar.gz` is in `/tmp`.
129-
99+
After 2-5 minutes, Helm will print a message showing how to port-forward Airbyte. This may take longer on Kubernetes clusters with slow internet connections. In general the message is the following:
130100
```bash
131-
docker run --rm -v /tmp:/config airbyte/migration:0.50.50 --\
132-
--input /config/airbyte_archive.tar.gz\
133-
--output /config/airbyte_archive_migrated.tar.gz
134-
```
135-
136-
3. Turn off Airbyte fully and **(see warning)** delete the existing Airbyte Kubernetes volumes.
137-
138-
_WARNING: Make sure you have already exported your data \(step 1\). This command is going to delete your data in Kubernetes, you may lose your airbyte configurations!_
139-
140-
This is where all airbyte configurations are saved. Those configuration files need to be upgraded and restored with the proper version in the following steps.
141-
142-
```bash
143-
# Careful, this is deleting data!
144-
kubectl delete -k kube/overlays/stable
145-
```
146-
147-
4. Follow **Step 2** in the `Upgrading on Docker` section to check out the most recent version of Airbyte. Although it is possible to migrate by changing the `.env` file in the kube overlay directory, this is not recommended as it does not capture any changes to the Kubernetes manifests.
148-
5. Bring Airbyte back up.
149-
150-
```bash
151-
kubectl apply -k kube/overlays/stable
152-
```
153-
154-
6. Switching over to your browser, navigate to the Admin page in the UI. Then go to the Configuration Tab and click on Import. Upload your migrated archive.
155-
156-
If you prefer to import and export your data via API instead the UI, follow these instructions:
157-
158-
1. Instead of Step 3 above use the following curl command to export the archive:
159-
160-
```bash
161-
curl -H "Content-Type: application/json" -X POST localhost:8000/api/v1/deployment/export --output /tmp/airbyte_archive.tar.gz
162-
```
163-
164-
2. Instead of Step X above user the following curl command to import the migrated archive:
165-
166-
```bash
167-
curl -H "Content-Type: application/x-gzip" -X POST localhost:8000/api/v1/deployment/import --data-binary @<path to arhive>
168-
```
169-
170-
Here is an example of what this request might look like assuming that the migrated archive is called `airbyte_archive_migrated.tar.gz` and is in the `/tmp` directory.
171-
172-
```bash
173-
curl -H "Content-Type: application/x-gzip" -X POST localhost:8000/api/v1/deployment/import --data-binary @/tmp/airbyte_archive_migrated.tar.gz
174-
```
101+
export POD_NAME=$(kubectl get pods -l "app.kubernetes.io/name=webapp" -o jsonpath="{.items[0].metadata.name}")
102+
export CONTAINER_PORT=$(kubectl get pod $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
103+
echo "Visit http://127.0.0.1:8080 to use your application"
104+
kubectl port-forward $POD_NAME 8080:$CONTAINER_PORT
105+
```

0 commit comments

Comments
 (0)