Skip to content

Conversation

davidesalerno
Copy link
Contributor

This change bumps Kubernetes libraries to 1.33.4 and controller-runtime to 0.21.0.

Due to some breaking changes, additional modifications were required:

  • Fixed calls to events.NewKubeRecorder
  • Bumping Dockerfile images for Openshift 4.21
  • Updating .ci-operator.yaml
  • Regenerated some manifest after executing a build

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Sep 12, 2025
@openshift-ci-robot
Copy link
Contributor

openshift-ci-robot commented Sep 12, 2025

@davidesalerno: This pull request references NE-2138 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.21.0" version, but no target version was set.

In response to this:

This change bumps Kubernetes libraries to 1.33.4 and controller-runtime to 0.21.0.

Due to some breaking changes, additional modifications were required:

  • Fixed calls to events.NewKubeRecorder
  • Bumping Dockerfile images for Openshift 4.21
  • Updating .ci-operator.yaml
  • Regenerated some manifest after executing a build

Instructions 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 openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci openshift-ci bot requested review from alebedev87 and rikatz September 12, 2025 14:12
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- lastTransitionTime
Copy link
Member

Choose a reason for hiding this comment

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

this is a breaking change. Can we confirm that our intention was always to have these as "required" and that this won't cause any issue?

Copy link
Member

Choose a reason for hiding this comment

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

(or at least track where this change came from)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This change come from the update into the OpenShift APIs version and a similar change was applied to the CIO in this commit.

If we would like to be compliant to that API version we cannot avoid this change.

I checked that at the moment we are setting everytime there is a change this field and the Status too.

Copy link
Contributor

Choose a reason for hiding this comment

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

Can we confirm that our intention was always to have these as "required" and that this won't cause any issue?

(or at least track where this change came from)

The change was added in openshift/api#2037 then reverted by TRT openshift/api#2045 (for the reason of breaking some cluster operators, good catch!) and then re-added again in openshift/api#2048. Looking at the bug created by the TRT team seems like the apiserver and the authentication were impacted by the change. David Eads tried to make sure these gaps covered in his unrevert PR.

We did a similar change in CIO and it seemed to go unnoticed there (I don't see any comment about it in the PR).
OperatorCondition is used mostly by cluster operators to report Degraded, Progressing and Available statuses. Also, I know that we use this condition in some operands like IngressController whose status is also managed by a cluster operator (ingress).
Overall, I think it's unlikely the end user will face a compatibility issue for a cluster operator (or a cluster operand) statuses. But we can follow up with David Eads on 1) how we can make sure we don't break the compatibility (maybe Davide's check about setting newly required fields is enough), 2) how incompatible changes are managed in openshift/api module (taking into account that the module has no semver).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@deads2k Could you help us in verifying that these changes won't cause any issue to the impacted systems?

Copy link
Contributor

Choose a reason for hiding this comment

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

As discussed with David Eads, we (CDO as part of OCP payload) are consumers of the CRDs generated in openshift/api from the API types. The compatibility requirements are more relaxed for us (compared to clients). David suggested to keep in sync with latest openshift/api updates which includes code changes. I think that we can move on with this change in the Condition type taking into account the CI signal (status updates should go smooth without API server errors).

type: string
status:
description: status of the condition, one of True, False, Unknown.
enum:
Copy link
Member

Choose a reason for hiding this comment

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

We need to verify if we are trying to set something other than this enum as this apparently was added recently on some API change

github.com/openshift/client-go v0.0.0-20231024221206-506d798bc61c
github.com/go-logr/logr v1.4.2
github.com/google/go-cmp v0.7.0
github.com/openshift/api v0.0.0-20250710004639-926605d3338b
Copy link
Member

Choose a reason for hiding this comment

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

btw the breaking changes I am pointing below may be coming from this bump.

tbh I didn't tried to re-generate the manifests on openshift/cluster-ingress-operator#1279 and seeing the breaking changes below kind of concerns me we may be missing something.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

yes, these changes are coming from that bump after executing a make

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Changes are due to this update into OperatorCondition into the OpenShift API https://github.com/openshift/api/blob/master/operator/v1/types.go#L190

I think that if we would like to bump to that version the API we cannot avoid it even if it could be a breaking change.

@davidesalerno
Copy link
Contributor Author

/test okd-scos-e2e-aws-ovn

@davidesalerno
Copy link
Contributor Author

/test e2e-aws-ovn-serial

@rikatz
Copy link
Member

rikatz commented Sep 15, 2025

/approve

From my perspective, this looks fine, but I will leave final comments to Andrey and Miciah regarding this "breaking change" and if it already happened on past, we should be fine :)

/cc @alebedev87 @Miciah

@openshift-ci openshift-ci bot requested a review from Miciah September 15, 2025 12:42
Copy link
Contributor

openshift-ci bot commented Sep 15, 2025

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: rikatz

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

The pull request process is described here

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-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Sep 15, 2025
@alebedev87
Copy link
Contributor

/assign

Copy link
Contributor

@alebedev87 alebedev87 left a comment

Choose a reason for hiding this comment

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

I commented on the point about the breaking change. I don't think we are going to impact end users. The cluster dns operator's e2e checks the operator conditions which means that the operator is setting the status condition during the test. This should give us a signal if any required field is not set or if any unexpected value is used.

/lgtm
/hold

@davidesalerno: LGTM, just keeping a small hold in case you would like to follow up with David Eads.

@openshift-ci openshift-ci bot added do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. lgtm Indicates that a PR is ready to be merged. labels Sep 15, 2025
@davidesalerno
Copy link
Contributor Author

/test okd-scos-e2e-aws-ovn

@lihongan
Copy link
Contributor

/retest

@lihongan
Copy link
Contributor

/verified by @lihongan

@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label Sep 19, 2025
@openshift-ci-robot
Copy link
Contributor

@lihongan: This PR has been marked as verified by @lihongan.

In response to this:

/verified by @lihongan

Instructions 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 openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci-robot openshift-ci-robot removed the verified Signifies that the PR passed pre-merge verification criteria label Sep 24, 2025
@openshift-ci openshift-ci bot removed the lgtm Indicates that a PR is ready to be merged. label Sep 24, 2025
@davidesalerno
Copy link
Contributor Author

/retest-required

1 similar comment
@lihongan
Copy link
Contributor

/retest-required

@alebedev87
Copy link
Contributor

As discussed with David Eads, we should check the CI signal about the status updates. No status update errors should be seen in the CDO logs.
/lgtm

@davidesalerno : I let you unhold the PR once the CDO logs are checked ^.

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Sep 25, 2025
@davidesalerno
Copy link
Contributor Author

/retest

Copy link
Contributor

openshift-ci bot commented Sep 26, 2025

@davidesalerno: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/e2e-aws-ovn-single-node 84d742b link false /test e2e-aws-ovn-single-node
ci/prow/okd-scos-e2e-aws-ovn 84d742b link false /test okd-scos-e2e-aws-ovn
ci/prow/e2e-aws-ovn-techpreview 84d742b link false /test e2e-aws-ovn-techpreview

Full PR test history. Your PR dashboard.

Instructions 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants