This is an automated email from the ASF dual-hosted git repository.
potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new b6c858d1e9d Helm release docs: add Breeze + KinD verification path
(#65817)
b6c858d1e9d is described below
commit b6c858d1e9da06b5cd721d6725b6cba4a281d07b
Author: Jarek Potiuk <[email protected]>
AuthorDate: Sun Apr 26 23:15:32 2026 +0200
Helm release docs: add Breeze + KinD verification path (#65817)
* Helm release docs: add Breeze + KinD verification path
The contributor verification section currently only shows
``helm install`` against an existing cluster. Add an end-to-end
recipe that uses the ``breeze k8s`` commands to create a fresh
KinD cluster, build a k8s-ready airflow image, and helm-install
the chart from the RC tag — useful when the verifier doesn't
already have a Kubernetes cluster handy. Document both the
``deploy-cluster`` aggregate (on main) and the constituent
``create-cluster`` / ``configure-cluster`` / ``build-k8s-image``
/ ``upload-k8s-image`` sequence (on older tags).
* Add ui compile-assets step to manual KinD verification flow
Without compiling the UI assets, the API server returns a "missing
index.html" error after `deploy-airflow`. The bundled
`breeze k8s deploy-cluster` already runs this step internally; surface
it explicitly in the manual setup-env path so reviewers using older
chart tags don't hit the error.
Suggested by @Miretpl in PR review.
---
dev/README_RELEASE_HELM_CHART.md | 90 +++++++++++++++++++++++++++++++++++++++-
1 file changed, 89 insertions(+), 1 deletion(-)
diff --git a/dev/README_RELEASE_HELM_CHART.md b/dev/README_RELEASE_HELM_CHART.md
index 33583969741..3ac3aea7112 100644
--- a/dev/README_RELEASE_HELM_CHART.md
+++ b/dev/README_RELEASE_HELM_CHART.md
@@ -39,6 +39,7 @@
- [Signature check](#signature-check)
- [SHA512 sum check](#sha512-sum-check)
- [Verify the release candidates by
Contributors](#verify-the-release-candidates-by-contributors)
+ - [End-to-end verification with Breeze and
KinD](#end-to-end-verification-with-breeze-and-kind)
- [Publish the final release](#publish-the-final-release)
- [Summarize the voting for the
release](#summarize-the-voting-for-the-release)
- [Publish release to SVN](#publish-release-to-svn)
@@ -760,7 +761,9 @@ Checking airflow-chart-1.0.0-source.tar.gz.sha512
# Verify the release candidates by Contributors
-Contributors can run below commands to test the Helm Chart
+Contributors can run below commands to test the Helm Chart against any
+Kubernetes cluster they already have configured. Replace the version
+with the one being voted on:
```shell
helm repo add apache-airflow-dev
https://dist.apache.org/repos/dist/dev/airflow/helm-chart/1.1.0rc1/
@@ -771,6 +774,91 @@ helm install airflow apache-airflow-dev/airflow
You can then perform any other verifications to check that it works as you
expected by
upgrading the Chart or installing by overriding default of `values.yaml`.
+## End-to-end verification with Breeze and KinD
+
+If you don't already have a Kubernetes cluster handy, the `breeze k8s`
+commands give you a clean room: a fresh KinD cluster plus the chart
+deployed from your local checkout. This runs the same chart files that
+were packaged into the RC tarball, so it doubles as a chart-content
+sanity check.
+
+1. Check out the RC tag so the local `chart/` directory is the candidate
+ under vote:
+
+ ```shell
+ git checkout helm-chart/${VERSION_RC}
+ ```
+
+2. Create the cluster, configure namespaces, build a k8s-ready airflow
+ image, and load it into KinD. On main these are bundled into a single
+ `breeze k8s deploy-cluster` (which also installs the shared k8s
+ tooling — kind, kubectl, helm — into Breeze's pinned virtualenv,
+ i.e. it includes the work `breeze k8s setup-env` would do); on older
+ tags, run `setup-env` plus the constituent commands in sequence:
+
+ ```shell
+ breeze k8s deploy-cluster --rebuild-base-image # main
+ # or, on older tags:
+ breeze k8s setup-env
+ breeze k8s create-cluster
+ breeze k8s configure-cluster
+ breeze ui compile-assets # ensures the UI is built so the API server can
serve index.html
+ breeze k8s build-k8s-image --rebuild-base-image
+ breeze k8s upload-k8s-image
+ ```
+
+3. Helm-install the chart into the cluster:
+
+ ```shell
+ breeze k8s deploy-airflow
+ ```
+
+ The command prints the forwarded `localhost:<port>` URL of the
+ airflow API server (default credentials `admin` / `admin`).
+
+4. Confirm the deployment is healthy:
+
+ ```shell
+ breeze k8s status # cluster + connection
+ curl -s http://localhost:<port>/api/v2/monitor/health
+ curl -s http://localhost:<port>/api/v2/version
+ ```
+
+ You want all four `metadatabase`, `scheduler`, `triggerer`,
+ `dag_processor` health entries to be `healthy`, and the version
+ endpoint to report the airflow version pinned by the chart's
+ `values.yaml`.
+
+5. Open the forwarded URL in your browser and poke around the UI —
+ automated health checks pass even when the UI assets fail to load
+ or auth is broken, so a human eyeball over the running deployment
+ is worth the 30 seconds. The URL `breeze k8s deploy-airflow`
+ printed in step 3 (`http://localhost:<port>`) lands on the login
+ page; sign in with `admin` / `admin`. Suggested manual sanity
+ checks:
+
+ - the login page renders (UI assets served correctly);
+ - after login, the Dags list loads and shows the example Dags
+ bundled with the image;
+ - open one example Dag, trigger a run, and watch a task instance
+ reach `success` (exercises scheduler → triggerer → executor and
+ log retrieval end-to-end);
+ - the `Admin → Connections` and `Admin → Variables` pages render
+ without backend errors.
+
+ If the forwarded port has been reclaimed (e.g. you re-ran the
+ deploy or your shell rotated), `breeze k8s status` re-prints the
+ current URL.
+
+6. Tear down the cluster when you're done:
+
+ ```shell
+ breeze k8s delete-cluster
+ ```
+
+Switch back to your working branch (`git checkout <branch>`) before
+running any other release-prep commands.
+
# Publish the final release
Re-establish your shell like when prepared