Bump dependencies for OCP 4.20#1981
Conversation
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>
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: stuggi The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
OpenStackControlPlane CRD Size Report
Threshold reference
|
|
Build failed (check pipeline). Post ❌ openstack-k8s-operators-content-provider FAILURE in 7m 00s |
- 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)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Martin Schuppert <mschuppert@redhat.com>
|
Build failed (check pipeline). Post ❌ openstack-k8s-operators-content-provider FAILURE in 7m 13s |
|
@stuggi: The following tests failed, say
Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
Code changes required by the bump:
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 == oldSelfon 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.