feat(orchestrator-infra): add OLM v1 ClusterExtension install path (RHIDP-14789) - #543
Fortune-Ndlovu wants to merge 16 commits into
Conversation
Add olmVersion (v0|v1|auto) to select between classic Subscriptions and OLM v1 ClusterExtensions for Serverless and Serverless Logic operators. Includes installer ServiceAccount and ClusterRoleBinding for the v1 path, updates helm tests, docs, and schema. Scope limited to orchestrator-infra per RHIDP-14789 review feedback. RHIDP-14789 Signed-off-by: Fortune Ndlovu <fndlovu@redhat.com>
PR Summary by QodoAdd OLM v1 ClusterExtension path to orchestrator infrastructure
AI Description
Diagram
High-Level Assessment
Files changed (18)
|
Code Review by Qodo
1.
|
|
Important The |
- Target openshift-redhat-operators ClusterCatalog via selector - Install Knative CRDs only on the OLM v0 path to avoid bundle collisions - Skip OperatorGroups on the OLM v1 path - Add ClusterExtension install preflight and v1-aware post-install notes RHIDP-14789 Signed-off-by: Fortune Ndlovu <fndlovu@redhat.com>
Skip KnativeServing/KnativeEventing creation when olmVersion=v1 so Helm can install ClusterExtensions before operator CRDs exist. Default olmVersion to v0 until the v1 path is validated end-to-end on clean clusters. RHIDP-14789 Signed-off-by: Fortune Ndlovu <fndlovu@redhat.com>
Revert OLM v1 post-install NOTES.txt customizations and move OLM documentation into README.md.gotmpl so helm-docs keeps it in CI. Align values schema default with olmVersion: v0 and document olm.catalog. RHIDP-14789 Signed-off-by: Fortune Ndlovu <fndlovu@redhat.com>
RHIDP-14789 Signed-off-by: Fortune Ndlovu <fndlovu@redhat.com>
Remove upstream-olm-v1-values.yaml because chart-testing uses OLM v0 only. Require both release name and namespace when checking Helm ownership of ClusterExtensions. Skip rendering Subscriptions or ClusterExtensions when an unmanaged installer of the opposite kind already exists. RHIDP-14789 Signed-off-by: Fortune Ndlovu <fndlovu@redhat.com>
Install Knative CRDs with pre-install hooks only and skip applying them when they already exist. This avoids ct install --upgrade failures when upgrading from 0.6.1, which installed CRDs from the crds/ directory. RHIDP-14789 Signed-off-by: Fortune Ndlovu <fndlovu@redhat.com>
Revert the move to files/ and hook annotation changes. Helm installs CRDs from crds/ as before, which keeps chart-testing upgrades working without modifying the CRD manifests. RHIDP-14789 Signed-off-by: Fortune Ndlovu <fndlovu@redhat.com>
Use subscription.operators.coreos.com in the test pod so kubectl does not resolve to Knative messaging subscriptions on Serverless clusters. RHIDP-14789 Signed-off-by: Fortune Ndlovu <fndlovu@redhat.com>
|
Code review by qodo was updated up to the latest commit 5b84aec |
…t-developer#543) Gate Knative CRD install to the OLM v0 path, relax catalog selector schema validation, and provision Knative instances on v1 via a post-install hook after ClusterExtension install completes. RHIDP-14789 Signed-off-by: Fortune-Ndlovu <fndlovu@redhat.com> Co-authored-by: Cursor <cursoragent@cursor.com>
…t-developer#543) Gate Knative CRD install to the OLM v0 path, relax catalog selector schema validation, and provision Knative instances on v1 via a post-install hook after ClusterExtension install completes. RHIDP-14789 Signed-off-by: Fortune-Ndlovu <fndlovu@redhat.com>
cea6530 to
dbb6b4c
Compare
|
/agentic_review |
|
Code review by qodo was updated up to the latest commit dbb6b4c |
Skip Knative CRD hook rendering when CRDs already exist so chart-testing upgrade passes. Use pre-install-only hooks and regenerate README via helm-docs. RHIDP-14789 Signed-off-by: Fortune-Ndlovu <fndlovu@redhat.com>
|
/agentic_review |
|
Code review by qodo was updated up to the latest commit 098f5e3 |
|
/agentic_review |
|
Code review by qodo was updated up to the latest commit 098f5e3 |
Move KnativeServing and KnativeEventing out of the ordinary manifest so fresh v0 installs can apply CRD pre-install hooks first. Unify v0/v1 post-install and pre-delete lifecycle hooks, add a fresh-cluster CI scenario, and verify Knative instances in helm test. RHIDP-14789 Signed-off-by: Fortune-Ndlovu <fndlovu@redhat.com>
Add post-upgrade to the Knative lifecycle hooks so v0-to-v1 upgrades recreate instances after manifest changes, document the behavior, and add a conditional CI upgrade-path test. RHIDP-14789 Signed-off-by: Fortune-Ndlovu <fndlovu@redhat.com>
Address SonarCloud findings by enforcing CPU and memory requests and limits on the Knative post-install and pre-delete hook containers. RHIDP-14789 Signed-off-by: Fortune-Ndlovu <fndlovu@redhat.com>
Fix pre-commit helm-docs drift in the values table column order. RHIDP-14789 Signed-off-by: Fortune-Ndlovu <fndlovu@redhat.com>
|
/agentic_review |
|
Code review by qodo was updated up to the latest commit 60e6711 |
…n manifests only Remove the Knative CR post-install/post-upgrade/pre-delete automation (Jobs, RBAC, ConfigMap, ownership annotations) that had accumulated through review cycles. This exceeded the actual goal of preparing orchestrator-infra for OLM v1: providing ClusterExtension manifests for the Serverless and Serverless Logic operators. - Restore Knative CR creation (KnativeServing/KnativeEventing) as an inline, manifest-based, v0-only step, matching prior behavior with the corrected release-ownership check (name + namespace). - Drop the fresh-cluster-v0 and v0-to-v1 upgrade CI scenarios and the associated GitHub Action step introduced for testing the removed automation. - Document that Knative instances must be created manually after the Serverless ClusterExtension is Installed on the OLM v1 path. No changes to orchestrator-software-templates-infra. RHIDP-14789 Signed-off-by: Fortune-Ndlovu <fndlovu@redhat.com>
|



Summary
olmVersion(v0|v1|auto, defaultv0) toorchestrator-infraClusterExtensionresources (with installer ServiceAccount + ClusterRoleBinding) for OpenShift Serverless and Serverless Logic operatorsSubscriptionpath whenolmVersion=v0or whenautoselects v0files/on the v0 path only; skip Knative CRs on the v1 pathScope
Per review discussion on RHIDP-14789, this PR is scoped to
orchestrator-infraonly. OLM v1 work fororchestrator-software-templates-infrais deferred.Related
How to test
Prerequisites
clusterextensions.olm.operatorframework.ioCRD present)cluster-adminaccesshelm3 andocCLI installedoc login <api-url> -u <user>0. Get the chart branch
git clone https://github.com/Fortune-Ndlovu/rhdh-chart.git cd rhdh-chart git checkout feat/RHIDP-14789-orchestrator-infra-olm-v1Optional local render check:
Expected:
v0:Subscription,OperatorGroup,CustomResourceDefinition,KnativeServing,KnativeEventingv1:ClusterExtension, installerServiceAccount,ClusterRoleBinding(noSubscription, noOperatorGroup, no Knative CRs)Verify OLM v1 is available on the cluster:
1. Test OLM v0 path (default, production path)
Verify rendered resources (no ClusterExtensions):
Approve InstallPlans (chart default is
installPlanApproval: Manual):Wait for operator CSVs:
Wait for Knative instances (created by the chart on v0):
Run helm test:
helm test my-orchestrator-infra --namespace default2. Clean up before OLM v1 test
A prior v0 install leaves helm-managed Knative CRDs that block OLM v1 bundle install. Remove everything before testing v1:
3. Test OLM v1 path
Verify rendered resources (ClusterExtensions, no Subscriptions):
Monitor ClusterExtension install:
If install fails, inspect conditions:
Run helm test (checks ClusterExtension resources exist):
helm test my-orchestrator-infra-v1 --namespace defaultAfter both ClusterExtensions report
Installed=True, create Knative instances manually (not created by the chart on v1):4. Test
olmVersion=auto(optional)On a cluster with the OLM v1 CRD,
autoshould render ClusterExtensions:5. Final cleanup