Skip to content

fix(e2e): wire PRODUCT_VERSION into chainsaw values#267

Merged
whg517 merged 3 commits into
zncdatadev:mainfrom
whg517:fix/e2e-product-version
Jul 19, 2026
Merged

fix(e2e): wire PRODUCT_VERSION into chainsaw values#267
whg517 merged 3 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 3 commits July 15, 2026 00:01
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>
@whg517
whg517 merged commit 125b918 into zncdatadev:main Jul 19, 2026
10 checks passed
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