mallesh-bot opened a new pull request, #73415: URL: https://github.com/apache/airflow/pull/73415
## Summary `dags.gitSync.ref` is documented as the v4 way to pin the git-sync sidecar to a branch, tag, or hash. In git-sync v4 the deprecated `GIT_SYNC_BRANCH` and `GIT_SYNC_REV` env vars take precedence over `GITSYNC_REF` ([v3→v4 migration guide](https://github.com/kubernetes/git-sync/blob/v4.1.0/v3-to-v4.md#sync-target---branch-and---rev-----ref)), but the chart's `git_sync_container` helper always emitted all three, so setting `ref: v1.2.3` had no effect and the sidecar kept following the branch at rev. This PR makes the emission conditional: - `dags.gitSync.ref` set → emit only `GITSYNC_REF`; drop the deprecated `GIT_SYNC_BRANCH` / `GIT_SYNC_REV` (so v4 honors `ref`). - `dags.gitSync.ref` unset → emit only the deprecated pair (so v3 images and v4-with-fallback keep working). The default of `dags.gitSync.ref` is changed from `v2-2-stable` to `~`, and the JSON schema is updated to allow `null`. Because the fallback branch continues to emit the deprecated vars, the default render is byte-equivalent for existing users — only users who explicitly set `ref` see behaviour change, and that behaviour now matches what the option documents. ## Test plan - [x] Rendered `templates/scheduler/scheduler-deployment.yaml` via `helm template` and confirmed: - default (`ref: ~`): only `GIT_SYNC_REV` and `GIT_SYNC_BRANCH` are emitted (no `GITSYNC_REF`). - `ref: v1.2.3`: only `GITSYNC_REF` is emitted (no `GIT_SYNC_REV`/`GIT_SYNC_BRANCH`). - [x] `helm lint chart` passes with both value sets. - [x] Two new unit tests in `chart/tests/helm_tests/other/test_git_sync_scheduler.py`: - `test_ref_takes_precedence_over_deprecated_branch_and_rev` - `test_deprecated_branch_and_rev_are_emitted_when_ref_is_unset` - [x] Updated existing tests in `test_git_sync_scheduler.py` and `test_pod_template_file.py` that hardcoded the old three-var emission when `ref` was set. - [ ] CI: full `breeze testing helm-tests` — Windows pytest tempfile locking (`NamedTemporaryFile` + `helm --values`) prevents me running the full suite locally; verified via direct `helm template` invocations instead. closes: #42918 --- ##### Was generative AI tooling used to co-author this PR? - [X] Yes — Claude Code (Opus 4.7). I reviewed and understand every change; the design (conditional emission, defaulting `ref` to null to preserve the default render) is mine, and I validated the fix by inspecting the rendered templates and helm-lint output. Generated per [the guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#gen-ai-assisted-contributions). 🤖 Generated with [Claude Code](https://claude.com/claude-code) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
