Skip to content

test(orchestrator-infra): add chart-testing CI for olmVersion v1 (RHIDP-17168) - #548

Merged
openshift-merge-bot[bot] merged 8 commits into
redhat-developer:mainfrom
Fortune-Ndlovu:RHIDP-17168-add-orchestrator-infra-chart-testing-ci-for-olm-version-v-1
Sep 24, 2026
Merged

openshift-merge-bot[bot] merged 8 commits into
redhat-developer:mainfrom
Fortune-Ndlovu:RHIDP-17168-add-orchestrator-infra-chart-testing-ci-for-olm-version-v-1

Conversation

@Fortune-Ndlovu

@Fortune-Ndlovu Fortune-Ndlovu commented Sep 22, 2026 •

Copy link
Copy Markdown
Member

Summary

After RHIDP-14789 merged OLM v1 support into orchestrator-infra, chart-testing still only ran the v0 path via ci/upstream-olm-values.yaml. Because OLM v0 and v1 can coexist on the same cluster, we should exercise both template and install paths in CI. This change adds a dedicated v1 values file, installs the OLM v1 API CRDs needed for ClusterExtension resources on KinD, and extends the shared test-charts action so orchestrator-infra PRs validate v0 and v1.

Follow-up to rm3l’s review on #543. Jira: https://redhat.atlassian.net/browse/RHIDP-17168 (child of RHIDP-8668).

Test plan

  • pre-commit run on changed files (Helm Docs, jsonschema-dereference)
  • ct lint --charts charts/orchestrator-infra --target-branch main (both ci/upstream-olm-values.yaml and ci/upstream-olm-v1-values.yaml)
  • Local helm template for both CI values files
  • CI Test Charts job (ct install + helm test on KinD with upstream OLM)

…IDP-17168)

Chart-testing only exercised the OLM v0 path; add a v1 CI values file,
OLM v1 API CRD fixtures, and workflow hooks so both install paths are validated.
@Fortune-Ndlovu
Fortune-Ndlovu requested a review from a team as a code owner September 22, 2026 11:56
@openshift-ci
openshift-ci Bot requested review from gazarenkov and rm3l September 22, 2026 11:57
@rhdh-qodo-merge

Copy link
Copy Markdown

PR Summary by Qodo

Add OLM v1 chart-testing coverage for orchestrator infrastructure

🧪 Tests ⚙️ Configuration changes 🕐 20-40 Minutes

Grey Divider

AI Description

• Exercises both OLM v0 and v1 chart configurations in CI.
• Installs OLM v1 API CRDs before KinD chart installation.
• Adds deterministic template validation for every orchestrator-infra CI values file.
Diagram

graph TD
  A["Chart change"] --> B["Test Charts"] --> C["CI values"] --> D["OLM v0 path"] --> G["KinD install"]
  C --> E["OLM v1 path"] --> F["OLM v1 CRDs"] --> G
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Install the full OLM v1 controller
  • ➕ Exercises ClusterExtension reconciliation instead of API admission alone
  • ➕ More closely represents a production OLM v1 environment
  • ➖ Adds controllers, images, startup latency, and more CI failure modes
  • ➖ May complicate coexistence with the existing OLM v0 installation
  • ➖ Exceeds the chart test's need to validate generated resources
2. Download CRDs during each CI run
  • ➕ Avoids maintaining a large generated fixture in the repository
  • ➕ Can retrieve CRDs directly from a pinned upstream release
  • ➖ Introduces an external network dependency into test setup
  • ➖ Makes upstream artifact availability another source of CI failures
  • ➖ Requires extraction or URL handling during every run

Recommendation: Keep the proposed vendored, version-attributed CRD fixture. It provides deterministic API admission for OLM v1 resources while preserving the existing OLM v0 setup; installing a complete v1 controller is unnecessary unless reconciliation behavior becomes part of the test contract.

Files changed (3) +1218 / -0

Other (3) +1218 / -0
action.ymlExtend chart-testing setup for orchestrator OLM v1 +28/-0

Extend chart-testing setup for orchestrator OLM v1

• Marks OLM v1 CRDs as required whenever orchestrator-infra is selected or changed. It renders every orchestrator CI values file before cluster setup and installs the v1 API fixture into KinD before chart installation.

.github/actions/test-charts/action.yml

olm-v1-api-crds.yamlVendor OLM v1 API CRDs for KinD tests +1172/-0

Vendor OLM v1 API CRDs for KinD tests

• Adds pinned upstream ClusterCatalog and ClusterExtension CRD definitions from operator-controller v1.11.0. These APIs allow the chart's OLM v1 resources to be accepted without installing the controller.

.github/fixtures/olm-v1-api-crds.yaml

upstream-olm-v1-values.yamlAdd OLM v1 chart-testing scenario +18/-0

Add OLM v1 chart-testing scenario

• Adds a CI values file selecting 'olmVersion: v1' while retaining the upstream OLM namespace overrides used by the existing v0 scenario. Chart-testing automatically discovers it for template and installation validation.

charts/orchestrator-infra/ci/upstream-olm-v1-values.yaml

Patch bump required by chart-testing when the chart directory changes.
@rhdh-qodo-merge

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)

Grey Divider

Great, no issues found!

Qodo reviewed your code and found no material issues that require review

Grey Divider

Tip of the day
💡 Did you know, you can route each action level your way: inline, summary, both, or drop

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

@rhdh-qodo-merge rhdh-qodo-merge Bot added enhancement New feature or request Tests labels Sep 22, 2026
@rhdh-qodo-merge

Copy link
Copy Markdown

Important

The /generate_labels command by Qodo is sunsetting on the 1st of October 2026 and will no longer be available. We recommend switching to the latest Qodo review capabilities. Learn more

Comment thread .github/fixtures/olm-v1-api-crds.yaml Outdated
…IDP-17168)

Document how to refresh the KinD CRD fixture and add a fetch script with
--check so updates stay aligned with operator-controller releases.

Signed-off-by: Fortune Ndlovu <fndlovu@redhat.com>
@Fortune-Ndlovu
Fortune-Ndlovu force-pushed the RHIDP-17168-add-orchestrator-infra-chart-testing-ci-for-olm-version-v-1 branch from cf00686 to 2ee1cff Compare September 24, 2026 09:26
…t (#RHIDP-17168)

Assign function positional args to locals and drop redundant yq on --check.

Signed-off-by: Fortune Ndlovu <fndlovu@redhat.com>
…cs (#RHIDP-17168)

Document OLM v1 KinD CRDs in the chart README like Knative CRDs, drop
.github/fixtures/README.md, remove redundant helm template CI step, and
simplify the fetch script now that ct lint/install cover validation.

Signed-off-by: Fortune Ndlovu <fndlovu@redhat.com>
@Fortune-Ndlovu
Fortune-Ndlovu requested a review from a team as a code owner September 24, 2026 09:42
Apply Armel's suggestion: pin OPERATOR_CONTROLLER_VERSION in test-charts,
download operator-controller release CRDs at KinD setup, and drop the vendored
fixture and fetch script.

Signed-off-by: Fortune Ndlovu <fndlovu@redhat.com>
@Fortune-Ndlovu
Fortune-Ndlovu requested a review from rm3l September 24, 2026 09:54
…DP-17168)

Explain chart-testing vs OpenShift, KinD fetch behavior, and where to
bump OPERATOR_CONTROLLER_VERSION for maintainers.

Signed-off-by: Fortune Ndlovu <fndlovu@redhat.com>
@sonarqubecloud

Copy link
Copy Markdown

@openshift-ci openshift-ci Bot added the lgtm label Sep 24, 2026
@openshift-merge-bot
openshift-merge-bot Bot merged commit c67c26c into redhat-developer:main Sep 24, 2026
10 checks passed
@Fortune-Ndlovu
Fortune-Ndlovu deleted the RHIDP-17168-add-orchestrator-infra-chart-testing-ci-for-olm-version-v-1 branch September 24, 2026 13:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request lgtm Tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants