Skip to content

fix(e2e): wire PRODUCT_VERSION into chainsaw values - #377

Open
whg517 wants to merge 4 commits into
zncdatadev:mainfrom
whg517:fix/e2e-product-version
Open

whg517 wants to merge 4 commits into
zncdatadev:mainfrom
whg517:fix/e2e-product-version

Conversation

@whg517

@whg517 whg517 commented Jul 15, 2026

Copy link
Copy Markdown
Member

Problem

The chainsaw e2e product-version matrix is dead. CI (test.yml / release.yml) sets a PRODUCT_VERSION env var per matrix leg, and the chainsaw tests reference ($values.product_version) in CR manifests (e.g. spec.image.productVersion). But chainsaw only populates $values from --values files, and the chainsaw-e2e Makefile target never passed one. As a result ($values.product_version) always resolved to null, productVersion serialized unset, and every matrix leg silently tested the operator's DefaultProductVersion from api/v1alpha1/image.go.

Fix

  • Add a chainsaw-values target that generates test/e2e/.values.yaml from $PRODUCT_VERSION. When the variable is unset it writes product_version: null, which preserves the previous fallback to the operator default for local runs.
  • Pass --values test/e2e/.values.yaml in chainsaw-e2e (and in chart-e2e where present, so both chainsaw invocations resolve values consistently).
  • Gitignore the generated file.

Verification

Verified locally on zookeeper-operator against a kind cluster: generated the values file via make chainsaw-values with PRODUCT_VERSION=3.9.3 and ran the smoke/cluster-operation chainsaw case with --values test/e2e/.values.yaml (the exact flags the patched target uses). The case passed (1 passed / 0 failed / 0 skipped), and the applied ZookeeperCluster CR carried spec.image.productVersion: "3.9.3" explicitly — the field has no CRD default, so its presence proves the values wiring.

🤖 Generated with Claude Code

whg517 and others added 4 commits July 12, 2026 22:43
CI sets PRODUCT_VERSION per matrix leg, but chainsaw only resolves
($values.*) bindings from files passed via --values, so
($values.product_version) was always null and every matrix leg
silently tested the operator's default product version.

Generate test/e2e/.values.yaml from PRODUCT_VERSION before running
chainsaw and pass it via --values. When PRODUCT_VERSION is unset the
file contains null, which preserves the previous fallback to the
operator default.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant