Skip to content

Upgrade To Fabric8 7.3.x #1923

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

Closed
ryanjbaxter opened this issue May 22, 2025 · 10 comments · Fixed by #1924
Closed

Upgrade To Fabric8 7.3.x #1923

ryanjbaxter opened this issue May 22, 2025 · 10 comments · Fixed by #1924
Assignees
Labels
dependencies Pull requests that update a dependency file task
Milestone

Comments

@ryanjbaxter
Copy link
Contributor

Then undo this commit
4d56210

@ryanjbaxter ryanjbaxter self-assigned this May 22, 2025
@ryanjbaxter ryanjbaxter added task dependencies Pull requests that update a dependency file labels May 22, 2025
kiwikern added a commit to digitalservicebund/ris-backend-service that referenced this issue May 27, 2025
RISDEV-8001
Is not compatible with spring-cloud-kubernetes, see spring-cloud/spring-cloud-kubernetes#1923
kiwikern added a commit to digitalservicebund/ris-backend-service that referenced this issue May 27, 2025
RISDEV-8001
Is not compatible with spring-cloud-kubernetes, see spring-cloud/spring-cloud-kubernetes#1923
kiwikern added a commit to digitalservicebund/ris-backend-service that referenced this issue May 27, 2025
RISDEV-8001
Is not compatible with spring-cloud-kubernetes, see spring-cloud/spring-cloud-kubernetes#1923
@wleese
Copy link

wleese commented May 28, 2025

Today Spring Cloud 2025.0.0 will be released, I'm assuming this change won't make it? If so, then do you know when can we expect 2025.1.0? That said, what will be done for Spring Boot 3.5.0? That's my main concern :)

@ryanjbaxter
Copy link
Contributor Author

Unfortunately we cannot make major upgrades to dependencies in a minor release of Spring Cloud (which 2025.0.x is). We won't be able to upgrade to 7.3.x until we release 2025.1.0 later this year. 2025.1.0 will be compatible with Spring Boot 4.0.0.

@wleese
Copy link

wleese commented May 28, 2025

@ryanjbaxter with Spring Boot 3.5.0 upgrading Jackson to 2.19 and Spring Cloud 2025.0.x being incompatible due to fabric8io/kubernetes-client#7036, then I guess someone needs to ask fabric8io for a 6.x release with a fix? Or Spring Boot will have to downgrade Jackson from 2.19 to 2.18.x?

Otherwise Spring Boot 3.5.0 will not be compatible with any version of Spring Cloud unless I'm mistaken?

@ryanjbaxter
Copy link
Contributor Author

Well Spring Boot 3.5.0 already went out with Jackson 2.19 so we can't change that.

4d56210 forces Spring Cloud Kubernetes Fabric8 jars to use Jackson 2.18.x. Also as far as I can tell the requirement for Jackson 2.18.x from Fabric8 is only for testing 4d56210#diff-06eabae3025b0a49ae71008cf04bf3ce1d68369fb000521718d7f420c9cc5eb4.

I have not found that the version of Jackson effects anything at runtime.

@wleese
Copy link

wleese commented May 28, 2025

I have not found that the version of Jackson effects anything at runtime.

We have an internal framework based on Spring Boot and Spring Cloud and our integration tests started failing.

Caused by: com.fasterxml.jackson.databind.JsonMappingException: Cannot invoke "com.fasterxml.jackson.databind.JsonSerializer.serialize(Object, com.fasterxml.jackson.core.JsonGenerator, com.fasterxml.jackson.databind.SerializerProvider)" because "keySerializer" is null (through reference chain: io.fabric8.kubernetes.api.model.GenericKubernetesResource["getAdditionalProperties"]->java.util.LinkedHashMap["data"])
	at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:400)
	at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:359)
	at com.fasterxml.jackson.databind.ser.std.StdSerializer.wrapAndThrow(StdSerializer.java:324)
	at com.fasterxml.jackson.databind.ser.std.MapSerializer.serializeFields(MapSerializer.java:810)
	at com.fasterxml.jackson.databind.ser.std.MapSerializer.serializeWithoutTypeInfo(MapSerializer.java:763)
	at com.fasterxml.jackson.databind.ser.AnyGetterWriter.getAndSerialize(AnyGetterWriter.java:81)
	at com.fasterxml.jackson.databind.ser.AnyGetterWriter.serializeAsField(AnyGetterWriter.java:89)
	at io.fabric8.kubernetes.model.jackson.BeanPropertyWriterDelegate.serializeAsField(BeanPropertyWriterDelegate.java:68)

See io.fabric8.kubernetes.model.jackson.BeanPropertyWriterDelegate.serializeAsField(BeanPropertyWriterDelegate.java:68)

Independently, someone else beat us to creating an issue:
fabric8io/kubernetes-client#7036

So while indeed your diff only shows some test-scoped dependencies, there is bad stuff happening at runtime (in our specific case emulated by failing integration tests that use Spring Cloud Kubernetes).

@ryanjbaxter
Copy link
Contributor Author

Can you provide a sample which reproduces the issue you are seeing?

ryanjbaxter added a commit to ryanjbaxter/spring-cloud-kubernetes that referenced this issue May 28, 2025
This is necessary due to the use of Jackson 2.19.x in Spring Boot 3.5.0.

Fixes spring-cloud#1923
ryanjbaxter added a commit to ryanjbaxter/spring-cloud-kubernetes that referenced this issue May 28, 2025
This is necessary due to the use of Jackson 2.19.x in Spring Boot 3.5.0.

Fixes spring-cloud#1923
@wleese
Copy link

wleese commented May 28, 2025

Can't do right now. I did just create an issue for Fabric8 asking for a 6.x fix on Springs behalf. Perhaps I moved too fast on this. I might have time Friday to make a sample.

@ryanjbaxter ryanjbaxter linked a pull request May 28, 2025 that will close this issue
@ryanjbaxter ryanjbaxter added this to the 3.3.0 milestone May 28, 2025
@github-project-automation github-project-automation bot moved this to Done in 2025.0.0 May 28, 2025
@ryanjbaxter
Copy link
Contributor Author

We have made the call to upgrade Fabric8 since this is probably the best way to deal with the issue.

@manusa
Copy link
Contributor

manusa commented May 28, 2025

We have made the call to upgrade Fabric8 since this is probably the best way to deal with the issue.

Most of the 7.x breaking changes probably won't affect you.
In any case, if this doesn't fly, let us know so we proceed and try to release the backport.

@ryanjbaxter
Copy link
Contributor Author

Thanks. We didn't have any api related changes to make which was good. Our major concern are the consumers of spring cloud k8s, it's impossible to predict what the impact is on them. Unfortunately our hand is forced in this case by the Jackson dependency upgrade in spring boot.

MarkEWaite added a commit to MarkEWaite/jenkins that referenced this issue May 29, 2025
The kubernetes client has issues with Jackson 2.19.0.

Original pull request that updated to 2.19.0 was:

* jenkinsci#10677

Reverted from the Jenkins plugin BOM in pull request:

* jenkinsci/bom#5114

Distribution suspended from Jenkins update center in:

* jenkins-infra/update-center2#869

Refer to the following Kubernetes client API issues:

* fabric8io/kubernetes-client#7036
* fabric8io/kubernetes-client#7106

Backport of the Jackson 2.19.0 change to Kubernetes client 6.x has been requested at:

* fabric8io/kubernetes-client#7107

Also described in detail in Spring Cloud issue report:

* spring-cloud/spring-cloud-kubernetes#1923

Also described in Jenkins issue report:

* https://issues.jenkins.io/browse/JENKINS-75712

Also verified as failing in kubernetes plugin pull request:

* jenkinsci/kubernetes-plugin#1702

Also mentioned in Kubernetes client API upgrade pull request:

* jenkinsci/kubernetes-client-api-plugin#292

This reverts commit 11e5d5c.
basil pushed a commit to jenkinsci/jenkins that referenced this issue May 29, 2025
The kubernetes client has issues with Jackson 2.19.0.

Original pull request that updated to 2.19.0 was:

* #10677

Reverted from the Jenkins plugin BOM in pull request:

* jenkinsci/bom#5114

Distribution suspended from Jenkins update center in:

* jenkins-infra/update-center2#869

Refer to the following Kubernetes client API issues:

* fabric8io/kubernetes-client#7036
* fabric8io/kubernetes-client#7106

Backport of the Jackson 2.19.0 change to Kubernetes client 6.x has been requested at:

* fabric8io/kubernetes-client#7107

Also described in detail in Spring Cloud issue report:

* spring-cloud/spring-cloud-kubernetes#1923

Also described in Jenkins issue report:

* https://issues.jenkins.io/browse/JENKINS-75712

Also verified as failing in kubernetes plugin pull request:

* jenkinsci/kubernetes-plugin#1702

Also mentioned in Kubernetes client API upgrade pull request:

* jenkinsci/kubernetes-client-api-plugin#292

This reverts commit 11e5d5c.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file task
Projects
No open projects
Status: Done
Development

Successfully merging a pull request may close this issue.

3 participants