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 kubernetes-client-bom from 5.12.2 to 6.1.1 #26107
Conversation
Thanks for your pull request! The title of your pull request does not follow our editorial rules. Could you have a look?
|
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
a799ea1
to
b4761ce
Compare
This comment has been minimized.
This comment has been minimized.
How about marking it as a draft to prevent accidental merging? The tests should still run in your fork |
I think I need to reenable most pipelines in my fork. |
I'm checking some of these log errors. We'll need to update the Dekorate dependency along with the Kubernetes Client with a version of Dekorate based on Kubernetes Client 6.
/cc @iocanel |
05a1760
to
1b75a41
Compare
Hopefully, |
1b75a41
to
52bc9b0
Compare
Is there any update on this? |
AFAIK there is work in progress to update Dekorate to use version 6.0.0 of the client. |
52bc9b0
to
b95ee87
Compare
Can we already exclude the Or maybe we can provide our own |
Good point! Should probably be documented though! Which also reminds me that we need to finish the vertx client implementation… |
Dependencies should ideally be as follows:
However, I'm not sure how might this affect the Kubernetes-based extensions and the native compilation. Especially regarding the client bean/singleton initialization which is based on SPI when using it this way. I guess that it's likely that we'll end up having a compile dependency to one of the Fabric8 HttpClient implementations. Regarding the usage of alternate clients, IMO we should deal with the version upgrade first and then try to refactor the client dependencies and their scopes.
If I have time later this month I'll give it a try |
b95ee87
to
1748df6
Compare
Dekorate 3.0.0 has been released which uses |
1748df6
to
8ef6166
Compare
d065350
to
2c6c472
Compare
The PR should be ready now. I recall that in previous occasions we added something in the Quarkus Wiki. I'm not sure how to proceed in this case. |
I don't think Dekorate brings any breaking changes, other than the ones related to Fabric8 Kubernetes Client 6.x. Do you know something worthy to be mentioned in the migration guide @iocanel ? |
<dependency> | ||
<groupId>io.fabric8</groupId> | ||
<artifactId>kubernetes-httpclient-okhttp</artifactId> | ||
<scope>provided</scope> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why is the dependency provided
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
And why is it in the deployment
module?
Maybe you're trying to make it optional? But I think we should make it runtime and non-optional and then switch to the vertx one as soon as it is ready, given that's our ultimate goal.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1 on this plan - let's play it safe for now
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The reasoning is:
kuberentes-httpclient-okhttp
is aruntime
dependency of thekubernetes-client
module. So for thedeployment
module, at runtime, the jar package with the SPI will always be available. Hence theprovided
scope.- It's not an optional package because it's required at runtime.
- I added this as provided so I could simply import the factory class in the statement:
The alternative would be to hardcode the name of the class, but I think this would be less maintainable.
serviceProviderProducer.produce(new ServiceProviderBuildItem( "io.fabric8.kubernetes.client.http.HttpClient$Factory", OkHttpClientFactory.class.getName()));
Please, let me know how do you want me to proceed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The semantics of provided
in a deployment
module are weird, so let's avoid them and do:
The alternative would be to hardcode the name of the class
The native tests will pick up any breakage if for whatever version the class name changes in the future
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sounds good.
I'll rebase and update.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TY
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I might miss something but if kubernetes-httpclient-okhttp
is a transitive dependency of the runtime module, then it should be around for the deployment module, which depends on the runtime one.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's a runtime transitive dependency of the runtime module :)
Anyway, it's changed now.
Dekorate 3.0.0 just adopts the 6.1.0 model and does not introduce any new change. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Signed-off-by: Marc Nuri <marc@marcnuri.com>
2c6c472
to
f1a50bf
Compare
Oh didn't notice that some checks were still running. Anyway, I'll monitor it. Pretty sure they will pass 😀 |
I added a note in the migration guide: https://github.com/quarkusio/quarkus/wiki/Migration-Guide-2.13 . |
Thx! |
Kubernetes Client 6.1.1 was just released: https://github.com/fabric8io/kubernetes-client/releases/tag/v6.1.1
Major versions of the Client (transitive dependencies) must be aligned, in consequence, this PR also updates Dekorate dependency to
3.0.0
./cc @metacosm