Skip to content

e2e: the opensearch suite reads HelmRelease history with a literal jsonpath the upstream pin does not cover #4550

Description

The opensearch e2e suite reads HelmRelease history with its own copy of the jsonpath, so the upstream pin on that read does not cover it. In hack/e2e-chainsaw/opensearch/chainsaw-test.yaml:524-525 on main the step sources hack/e2e-chainsaw/_lib/remediation-guard.sh and then runs:

statuses=$(kubectl -n "$NAMESPACE" get helmrelease opensearch-test \
  -o jsonpath='{range .status.history[*]}{.status}{"\n"}{end}')

The library exports HELMRELEASE_HISTORY_JSONPATH for exactly this read, and internal/fluxcontract pins that variable against the upstream Flux type. docs/agents/e2e-testing.md section 6 says a copied literal is not covered by that pin. If Flux renames the field, this read goes empty without the Go test noticing. The suite's own "empty history on a Ready HR" check would still fail the run, so the impact is low.

Fix: use -o "jsonpath=${HELMRELEASE_HISTORY_JSONPATH}" here. It may also be worth letting the fluxcontract caller check see chainsaw suites, so the next copy is caught.

Activity

  1. added
    kind/cleanupCategorizes issue or PR as related to cleanup of code, process, or technical debt
    area/testingIssues or PRs related to testing (e2e, bats, unit tests)
    on Sep 28, 2026
  2. added a commit that references this issue on Oct 5, 2026
    f209c47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

area/testingIssues or PRs related to testing (e2e, bats, unit tests)kind/cleanupCategorizes issue or PR as related to cleanup of code, process, or technical debttriage/needs-triageIndicates an issue needs triage by a maintainer

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions