Skip to content

Bump dependencies for OCP 4.20#1981

Merged
openshift-merge-bot[bot] merged 2 commits into
openstack-k8s-operators:mainfrom
stuggi:ocp-4.20-bump
Jul 18, 2026
Merged

Bump dependencies for OCP 4.20#1981
openshift-merge-bot[bot] merged 2 commits into
openstack-k8s-operators:mainfrom
stuggi:ocp-4.20-bump

Conversation

@stuggi

@stuggi stuggi commented Jul 16, 2026

Copy link
Copy Markdown
Contributor
  • k8s.io/*: v0.31.14 -> v0.33.13
  • controller-runtime: v0.19.7 -> v0.21.0
  • openshift/api: release-4.18 -> release-4.20
  • cert-manager: v1.16.5 -> v1.18.6
  • cmctl: v2.1.2 -> v2.3.0
  • ENVTEST_K8S_VERSION: 1.31 -> 1.33
  • OC_VERSION: 4.16.0 -> 4.20.0
  • CRD_SCHEMA_CHECKER_VERSION: release-4.16 -> release-4.18

Code changes required by the bump:

  • Remove webhook.Defaulter/webhook.Validator interface assertions from api/client and api/dataplane webhook files (removed in controller-runtime v0.21)
  • Remove old-style SetupWebhookWithManager methods (superseded by internal/webhook CustomDefaulter/CustomValidator pattern)
  • Remove duplicate kubebuilder webhook annotations from api/ files (already present in internal/webhook/ files)
  • Update test suites to use new webhook setup functions
  • Update test expectations for ServicesOverride from nil to []string{} (k8s 1.33 serialization normalizes omitted slice fields to empty slices instead of nil)

Also fixes Normalize ServicesOverride to avoid CEL immutability check failure

On k8s 1.33 (OCP 4.20), the API server normalizes nil and empty slices differently during admission, causing the CEL validation rule self == oldSelf on OpenStackDataPlaneDeployment Spec to fail when updating a deployment (even just adding an annotation).
Move the immutability check from CEL to the webhook ValidateUpdate where both old and new specs are normalized via Default() before comparison, making nil vs empty slice differences transparent.
Also default ServicesOverride to []string{} in the webhook defaulter for consistent serialization across k8s versions.
This is a backportable fix — affects any operator version running on OCP 4.20 regardless of the operator's build-time dependencies.

On k8s 1.33 (OCP 4.20), the API server normalizes nil and empty
slices differently during admission, causing the CEL validation
rule `self == oldSelf` on OpenStackDataPlaneDeployment Spec to fail
when updating a deployment (even just adding an annotation).

Move the immutability check from CEL to the webhook ValidateUpdate
where both old and new specs are normalized via Default() before
comparison, making nil vs empty slice differences transparent.

Also default ServicesOverride to []string{} in the webhook defaulter
for consistent serialization across k8s versions.

This is a backportable fix — affects any operator version running on
OCP 4.20 regardless of the operator's build-time dependencies.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Martin Schuppert <mschuppert@redhat.com>
@github-actions

Copy link
Copy Markdown

OpenStackControlPlane CRD Size Report

Metric Value
CRD JSON size 350002 bytes (342KB)
Base branch size 350002 bytes
Change +0.00%
Status yellow — growing
Threshold reference
Color Range Meaning
🟢 green < 300KB Comfortable
🟡 yellow 300–400KB Growing
🟠 orange 400–750KB Concerning
🔴 red > 750KB Approaching 1.5MB etcd limit (cut in half to allow space for update)

@centosinfra-prod-github-app

Copy link
Copy Markdown

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/buildset/b36deab000e942c6966c02255adf1a81

openstack-k8s-operators-content-provider FAILURE in 7m 00s
⚠️ podified-multinode-edpm-deployment-crc SKIPPED Skipped due to failed job openstack-k8s-operators-content-provider
⚠️ cifmw-crc-podified-edpm-baremetal SKIPPED Skipped due to failed job openstack-k8s-operators-content-provider
⚠️ adoption-standalone-to-crc-ceph-provider SKIPPED Skipped due to failed job openstack-k8s-operators-content-provider
⚠️ openstack-operator-tempest-multinode SKIPPED Skipped due to failed job openstack-k8s-operators-content-provider
⚠️ openstack-operator-edpm-baremetal-minor-update SKIPPED Skipped due to failed job openstack-k8s-operators-content-provider

@centosinfra-prod-github-app

Copy link
Copy Markdown

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/buildset/e9512f74fe6e463a9bed90d68c3813ae

openstack-k8s-operators-content-provider FAILURE in 7m 13s
⚠️ podified-multinode-edpm-deployment-crc SKIPPED Skipped due to failed job openstack-k8s-operators-content-provider
⚠️ cifmw-crc-podified-edpm-baremetal SKIPPED Skipped due to failed job openstack-k8s-operators-content-provider
⚠️ adoption-standalone-to-crc-ceph-provider SKIPPED Skipped due to failed job openstack-k8s-operators-content-provider
⚠️ openstack-operator-tempest-multinode SKIPPED Skipped due to failed job openstack-k8s-operators-content-provider
⚠️ openstack-operator-edpm-baremetal-minor-update SKIPPED Skipped due to failed job openstack-k8s-operators-content-provider

- k8s.io/*: v0.31.14 -> v0.33.13
- controller-runtime: v0.19.7 -> v0.21.0
- openshift/api: release-4.18 -> release-4.20
- cert-manager: v1.16.5 -> v1.18.6
- cmctl: v2.1.2 -> v2.3.0
- ENVTEST_K8S_VERSION: 1.31 -> 1.33
- OC_VERSION: 4.16.0 -> 4.20.0
- CRD_SCHEMA_CHECKER_VERSION: release-4.16 -> release-4.18

Code changes required by the bump:
- Remove webhook.Defaulter/webhook.Validator interface assertions from
  api/client and api/dataplane webhook files (removed in
  controller-runtime v0.21)
- Remove old-style SetupWebhookWithManager methods (superseded by
  internal/webhook CustomDefaulter/CustomValidator pattern)
- Remove duplicate kubebuilder webhook annotations from api/ files
  (already present in internal/webhook/ files)
- Update test suites to use new webhook setup functions
- Update test expectations for ServicesOverride from nil to []string{}
  (k8s 1.33 serialization normalizes omitted slice fields to empty
  slices instead of nil)

Jira: OSPRH-32989

Depends-On: openstack-k8s-operators/lib-common#717

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Martin Schuppert <mschuppert@redhat.com>
@centosinfra-prod-github-app

Copy link
Copy Markdown

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/buildset/86268e5d52c143e5a3a5e5917f25694b

✔️ openstack-k8s-operators-content-provider SUCCESS in 1h 22m 51s
podified-multinode-edpm-deployment-crc NODE_FAILURE Node(set) request 099-0000145869 failed in 0s
cifmw-crc-podified-edpm-baremetal FAILURE in 40m 23s
adoption-standalone-to-crc-ceph-provider RETRY_LIMIT in 50m 09s
openstack-operator-tempest-multinode FAILURE in 36m 38s
openstack-operator-edpm-baremetal-minor-update FAILURE in 47m 34s

@stuggi

stuggi commented Jul 17, 2026

Copy link
Copy Markdown
Contributor Author

/retest

@stuggi

stuggi commented Jul 17, 2026

Copy link
Copy Markdown
Contributor Author

recheck

@stuggi

stuggi commented Jul 17, 2026

Copy link
Copy Markdown
Contributor Author

/retest

@centosinfra-prod-github-app

Copy link
Copy Markdown

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/buildset/9311212d05954fc39a0f709cc0cd8e73

✔️ openstack-k8s-operators-content-provider SUCCESS in 3h 35m 51s
✔️ podified-multinode-edpm-deployment-crc SUCCESS in 1h 38m 14s
cifmw-crc-podified-edpm-baremetal RETRY_LIMIT Host unreachable in 1h 19m 08s
✔️ adoption-standalone-to-crc-ceph-provider SUCCESS in 3h 17m 22s
✔️ openstack-operator-tempest-multinode SUCCESS in 1h 56m 31s
openstack-operator-edpm-baremetal-minor-update RETRY_LIMIT in 43m 34s

@stuggi

stuggi commented Jul 17, 2026

Copy link
Copy Markdown
Contributor Author

recheck

@centosinfra-prod-github-app

Copy link
Copy Markdown

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/buildset/9120b361425e4056aaa48686fd9be787

✔️ openstack-k8s-operators-content-provider SUCCESS in 3h 43m 28s
✔️ podified-multinode-edpm-deployment-crc SUCCESS in 1h 34m 47s
✔️ cifmw-crc-podified-edpm-baremetal SUCCESS in 1h 37m 59s
✔️ adoption-standalone-to-crc-ceph-provider SUCCESS in 3h 17m 53s
✔️ openstack-operator-tempest-multinode SUCCESS in 1h 52m 34s
openstack-operator-edpm-baremetal-minor-update NODE_FAILURE Node(set) request 099-0000146141 failed in 0s

@stuggi

stuggi commented Jul 17, 2026

Copy link
Copy Markdown
Contributor Author

/retest

@stuggi

stuggi commented Jul 17, 2026

Copy link
Copy Markdown
Contributor Author

recheck

@centosinfra-prod-github-app

Copy link
Copy Markdown

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/buildset/2928ca2d54b9457ea3dd4978a0b81738

✔️ openstack-k8s-operators-content-provider SUCCESS in 3h 29m 14s
✔️ podified-multinode-edpm-deployment-crc SUCCESS in 1h 32m 32s
cifmw-crc-podified-edpm-baremetal RETRY_LIMIT in 43m 51s
✔️ adoption-standalone-to-crc-ceph-provider SUCCESS in 3h 13m 50s
✔️ openstack-operator-tempest-multinode SUCCESS in 1h 56m 13s
✔️ openstack-operator-edpm-baremetal-minor-update SUCCESS in 2h 25m 13s

@stuggi

stuggi commented Jul 18, 2026

Copy link
Copy Markdown
Contributor Author

recheck

@stuggi
stuggi requested a review from abays July 18, 2026 08:38

@abays abays left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm

@openshift-ci

openshift-ci Bot commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: abays, stuggi

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-merge-bot
openshift-merge-bot Bot merged commit bd2b5f5 into openstack-k8s-operators:main Jul 18, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants