-
Bug
-
Resolution: Unresolved
-
Minor
-
None
-
4.20
-
Quality / Stability / Reliability
-
False
-
-
None
-
None
-
None
-
None
-
None
-
Rejected
-
None
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Description of problem:
OLM v1 ClusterExtension upgrade from RHDH operator 1.6.3 to 1.7.0 fails due to CRD upgrade safety validation blocking "unhandled changes" for additive schema modifications. The validation incorrectly treats the addition of optional fields and description text changes as breaking changes, preventing legitimate upgrades.
Version-Release number of selected component (if applicable):
- OpenShift Container Platform: 4.20.0-0.nightly-2025-08-18-192426 - OLM v1: olm.operatorframework.io/v1 (GA) - RHDH Operator: 1.6.3 → 1.7.0 upgrade path - Kubernetes: v1.33.3
How reproducible:
Always - 100% reproducible with RHDH operator upgrade from 1.6.3 to 1.7.0
Steps to Reproduce:
1. Install RHDH operator 1.6.3 using OLM v1 ClusterExtension: ``` oc apply -f - <<EOF apiVersion: olm.operatorframework.io/v1 kind: ClusterExtension metadata: name: rhdh-upgrade-test spec: namespace: rhdh-upgrade-test serviceAccount: name: rhdh-installer source: sourceType: Catalog catalog: packageName: rhdh version: "1.6.3" channels: [fast-1.6] EOF ```2. Wait for installation to complete: ``` oc wait --for=condition=Installed=True clusterextension/rhdh-upgrade-test --timeout=600s ```3. Attempt upgrade to 1.7.0: ``` oc patch clusterextension rhdh-upgrade-test --type='merge' -p='{ "spec": { "source": { "catalog": { "version": "1.7.0", "channels": ["fast-1.7"] } } } }' ```4. Check upgrade status: ``` oc get clusterextension rhdh-upgrade-test -o jsonpath='{.status.conditions[?(@.type=="Progressing")].message}' ```
Actual results
Upgrade fails with CRD validation error::
error for resolved bundle "rhdh-operator.v1.7.0" with version "1.7.0": validating upgrade for CRD "backstages.rhdh.redhat.com": v1alpha1 <-> v1alpha3: ^.spec.application.extraFiles.secrets: unhandled: unhandled changes found : &v1.JSONSchemaProps{ ... // 21 identical fields MinProperties: nil, Required: nil, Items: &v1.JSONSchemaPropsOrArray{ Schema: &v1.JSONSchemaProps{ ... // 26 identical fields AnyOf: nil, Not: nil, Properties: map[string]v1.JSONSchemaProps{ "key": {Description: "Key in the object", Type: "string"}, + "mountPath": { + Description: "Path to mount the Object. If not specified default-path/Name will be used", + Type: "string", + }, "name": { ID: "", Schema: "", Ref: nil, Description: strings.Join({ "Name of the object\n", - "We support only", + "Supported", " ConfigMaps and Secrets", - ".", }, ""), Type: "string", Format: "", ... // 38 identical fields }, }, AdditionalProperties: nil, PatternProperties: nil, ... // 13 identical fields }, JSONSchemas: nil, }, AllOf: nil, OneOf: nil, ... // 18 identical fields } v1alpha1 <-> v1alpha3: ^.spec.application.extraFiles.configMaps: unhandled: unhandled changes found : &v1.JSONSchemaProps{ ... // 21 identical fields MinProperties: nil, Required: nil, Items: &v1.JSONSchemaPropsOrArray{ Schema: &v1.JSONSchemaProps{
ClusterExtension remains stuck with:
- INSTALLED BUNDLE: rhdh-operator.v1.6.3
- VERSION: 1.6.3
- PROGRESSING: True (but stuck in retry loop)
Expected results:
Upgrade should succeed since the CRD changes are additive and backward compatible: - New `mountPath` field is optional (not required) - Description text changes are non-breaking - No existing fields were removed or had types changed
ClusterExtension should show:
- INSTALLED BUNDLE: rhdh-operator.v1.7.0 - VERSION: 1.7.0 - INSTALLED: True
Additional info:
A Workaround exists by disabling CRD upgrade safety checks:https://docs.redhat.com/en/documentation/openshift_container_platform/4.19/html/extensions/cluster-extensions#prohibited-crd-up[…]crd-upgrade-safety,
oc patch clusterextension rhdh-upgrade-test --type='merge' -p='{ "spec": { "source": { "catalog": { "version": "1.7.0", "channels": ["fast-1.7"] } }, "install": { "preflight": { "crdUpgradeSafety": { "enforcement": "None" } } } } }' clusterextension.olm.operatorframework.io/rhdh-upgrade-test patched
- is Informed by
-
RHIDP-8389 [Spike] Verify the rhdh operator with OLM V1
-
- Closed
-
- is related to
-
OCPBUGS-59730 The CRD field type changes prevent operator updates in OLMv1
-
- Verified
-