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

Reply via email to