Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bump AppWrapper version to 1.1.1 and Kueue to 0.11.0 #673

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

dgrove-oss
Copy link
Collaborator

This PR should not be merged until we are ready to upgrade Kueue to 0.11.x.

This PR bumps the AppWrapper version to 1.1.1, which is built to work with Kueue 0.11.

The key change is that in Kueue 0.11, AppWrapper is a built-in integration. This enables the removal of all Kueue-specific code from the AppWrapper controller, which eliminates the tight coupling between AppWrapper and Kueue versions.

Copy link

openshift-ci bot commented Mar 20, 2025

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign christianzaccaria for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found 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

sigs.k8s.io/yaml v1.4.0
)

replace k8s.io/client-go => k8s.io/client-go v0.31.4

replace k8s.io/api => k8s.io/api v0.31.4
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

There are more replace directives here than I'd like, but it was expedient in the short term. Someone who has a better understanding of how to coordinate Kubernetes/OpenShift API versions may be able to do something less heavy handed.

go.mod Outdated

replace sigs.k8s.io/controller-runtime v0.20.3 => sigs.k8s.io/controller-runtime v0.19.3

replace sigs.k8s.io/kueue v0.11.0 => sigs.k8s.io/kueue v0.10.1
Copy link
Contributor

@varshaprasad96 varshaprasad96 Mar 21, 2025

Choose a reason for hiding this comment

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

This seems weird. We usually have to maintain compatibility between k8s, Kueue, AppWrapper. Downstreaming can get difficult with version mismatches.
cc: @sutaakar

Copy link
Collaborator Author

@dgrove-oss dgrove-oss Mar 21, 2025

Choose a reason for hiding this comment

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

One thing to consider is that we use the KUEUE_VERSION in the Makefile for two things:

  1. Specifying which version of Kueue should be deployed in the CI testing.
  2. Specifying which version of Kueue's golang API the e2e test code depends on.

For this PR, it is important that the Kueue version for use case 1 is 0.11 (because AppWrapper 1.1 won't work with Kueue 0.10). However, for use case 2 it would have been fine to leave Kueue at 0.10.1. AppWrapper no longer imports Kueue at all, so the only reason we have a go dependency is for the APIs used in the e2e test code. And those are much less sensitive to exact Kueue version.

WDYT about have two variables for the two use cases and allowing them to diverge? I think it would make your downstreaming simpler.

Copy link
Contributor

Choose a reason for hiding this comment

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

It is fine for me to separate the Kueue versions.
If I get it right it should be enough to remove

go get sigs.k8s.io/kueue@$(KUEUE_VERSION)
.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I pushed a change that removes line 163 as suggested. I think this is the right thing to do.

Copy link
Contributor

Choose a reason for hiding this comment

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

Looks good

Decouple the Kueue version deployed on the cluster for CI testing from
the golang dependency on Kueue APIs used in the e2e go test code.
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.

3 participants