Bugs
- Fix #8105: requests hanging when a retry action, retry decision, or response cleanup throws an exception.
- Fix #7374: (crd-generator) Generated CRDs no longer prune or reject what the client writes:
Object, rawMap,List<Object>, raw collection,@JsonUnwrappedand polymorphic properties keep their content, and date and time types only declare a format their values match (Duration,LocalDateTimeand the partial types losedate-time).Optionalproperties get their value type's schema instead of preserving unknown fields, see the migration guide - Fix #6779: (httpclient-jetty) 401 responses without a
WWW-Authenticateheader, which is how the API server sends them, are returned with their body instead of failing with "HTTP protocol violation: Authentication challenge without WWW-Authenticate header" - Fix #6779: (httpclient-jetty, httpclient-vertx, httpclient-vertx-5) A proxy password containing a colon, or a proxy URL with a user and no password, is now used to authenticate with the proxy, instead of falling back to a
Proxy-Authorizationrequest header that HTTPS requests carry through the proxy tunnel to the API server - Fix #6779: A proxy username configured without a password is sent with an empty password instead of
null, and a proxy URL with a user and no password asuser:instead ofuser(RFC 7617) - Fix #8134: (httpclient-jetty) A failed WebSocket handshake no longer calls the listener's
onError, the returned future already fails with it. When the handshake was retried, this ended watches and exec/attach sessions before the retry could open them - Fix #8134: (httpclient-jetty) Credentials for a SOCKS5 proxy are sent to it
- Fix #8134: (httpclient-jetty, httpclient-vertx) Proxy credentials that aren't
Basic user:passwordare only added as aProxy-Authorizationheader to the requests an HTTP proxy reads. HTTPS and WSS requests, WebSockets that Vert.x tunnels, and requests through a SOCKS proxy carried them to the API server - Fix #8134: (httpclient-vertx-5) Proxy credentials that aren't
Basic user:passwordare sent to the HTTP proxy by Vert.x, on the CONNECT too, so HTTPS and WebSocket requests through a proxy that requires them work, and they no longer reach the API server - Fix #8134: (httpclient-okhttp) A 407 from the API server (through
pods/proxyfor example) is no longer answered with the proxy credentials, which went through the proxy tunnel to it, and credentials the proxy rejected aren't sent again - Fix #8140: (httpclient-vertx-5) A request whose connection is closed before it could be written fails with an
IOException, and is retried, instead of hanging until the request timeout (seen on Windows) - Fix #8134: (httpclient-jetty) Cookies set by a response are no longer sent back on later requests and WebSocket upgrades, like with the other HttpClient implementations
- Fix #8109: A
java.sql.Datewritten asyyyy-MM-ddis read as a local date instead of the previous day west of UTC.Year,Month,java.sql.DateandLocalekeep their 7.x wire format, mappers you build yourself need the newJackson2JdkTypesModule, see the migration guide - Fix #8109: (crd-generator)
byte[],ByteBuffer,char[],Yearandjava.sql.Dateschemas match what the client writes (byte[]andByteBufferareformat: bytestrings), so the API server no longer rejects them.@PrinterColumnon aLocalDateis astringcolumn instead of adatecolumn that showed<invalid> - Fix #8008: (httpclient-vertx-5) Requests with an
InputStreambody andExpect: 100-continue(binary builds) no longer hang, and anInputStreambody of known length is sent withContent-Lengthinstead of chunked - Fix #8139: (httpclient-okhttp) WebSockets answer the server's Close frame even when the listener doesn't, so port forwarding and custom listeners release the connection instead of waiting for the server to drop it
- Fix #8152: (httpclient-vertx, httpclient-vertx-5, httpclient-jetty, httpclient-jdk) WebSockets send a ping every
Config#websocketPingInterval(30s by default), like OkHttp already did, so load balancers that close idle connections no longer drop quiet watches
Improvements
- Fix #8109: (crd-generator)
int/Integerandlong/Longproperties getformat: int32andformat: int64, like controller-gen - Fix #7987: (kubernetes-client-api)
withShardSelectoraccepts a typedShardSelector(ShardSelector.builder().addShard(0, 4).addShard(2, 4).build()) next to the raw expressionString, so theshardRange(...)CEL grammar and its hexadecimal bounds don't have to be written by hand
Dependency Upgrade
- Fix #7374: Upgrade Jackson from 2.x to 3.2.1
- Fix #8096: bump cert-manager from 1.20.2 to 1.21.2
- Fix #8098: bump chaos-mesh api from 4db47f5 to d70b66a
- Fix #8086: bump cluster-api from 1.12.2 to 1.13.6
- Fix #8101: bump cluster-api from 1.13.6 to 1.14.2
- Fix #8101: bump cluster-api-provider-metal3 from 1.13.0 to 1.14.0
- Fix #8133: bump controller-runtime from 0.19.7 to 0.23.3
- Fix #8142: bump controller-runtime from 0.23.3 to 0.25.1
- Fix #8086: bump gateway-api from 1.6.1 to 1.6.2
- Fix #8127: bump istio.io/client-go from 1.30.0 to 1.31.0
- Fix #8148: bump openshift/api from 1cb53e3 (release-4.19) to 231177c (release-4.22)
- Fix #8148: bump openshift/cloud-credential-operator from 0e03b7a to 5c4a396
- Fix #8148: bump openshift/cluster-network-operator from 698e349 to 61de77e
- Fix #8148: bump openshift/cluster-node-tuning-operator from 2ed182b to 039bae9
- Fix #8148: bump openshift/hive/apis from 2d25383 to 8104fcf
- Fix #8148: bump openshift/installer from 1.4.21-pre to 1.4.22-ec5
- Fix #6779: bump Jetty from 11.0.26 to 12.1.13
- Fix #8086: bump k8s.io/api from 0.35.2 to 0.35.8
- Fix #8142: bump k8s.io/api from 0.35.8 to 0.37.0
- Fix #8086: bump k8s.io/apiextensions-apiserver from 0.36.1 to 0.37.0
- Fix #8086: bump k8s.io/apimachinery from 0.36.1 to 0.37.0
- Fix #8086: bump k8s.io/autoscaler/vertical-pod-autoscaler from 1.7.0 to 1.7.1
- Fix #8086: bump k8s.io/client-go from 0.35.2 to 0.35.8
- Fix #8142: bump k8s.io/client-go from 0.35.8 to 0.37.0
- Fix #8142: bump k8s.io/cloud-provider from 0.35.8 to 0.37.0
- Fix #8142: bump k8s.io/csi-translation-lib from 0.35.8 to 0.37.0
- Fix #8086: bump k8s.io/kube-openapi from 0.0.0-20260501160325-927ab1f70cd6 to 0.0.0-20260821135717-be32def86098
- Fix #8142: bump k8s.io/kube-scheduler from 0.35.8 to 0.37.0
- Fix #8086: bump k8s.io/metrics from 0.36.1 to 0.37.0
- Fix #8142: bump k8s.io/mount-utils from 0.35.8 to 0.37.0
- Fix #8118: bump knative.dev/caching from 0.0.0-20260422140616-453ad996bbe2 to 0.0.0-20260821014320-af6341f3ab2b
- Fix #8118: bump knative.dev/eventing from 0.49.1 to 0.50.0
- Fix #8118: bump knative.dev/eventing-github from 0.49.1 to 0.50.0
- Fix #8118: bump knative.dev/eventing-gitlab from 0.49.1 to 0.50.0
- Fix #8118: bump knative.dev/eventing-kafka-broker from 0.49.1 to 0.50.1
- Fix #8118: bump knative.dev/networking from 0.0.0-20260529061306-c8de379770b9 to 0.0.0-20260921014731-e39778429a0f
- Fix #8118: bump knative.dev/pkg from 0.0.0-20260422015212-ec452872dcc1 to 0.0.0-20260918182429-5dc1978f0042
- Fix #8118: bump knative.dev/serving from 0.49.1 to 0.50.0
- Fix #8133: bump open-cluster-management.io/governance-policy-propagator from 0.18.0 to 0.20.0
- Fix #8126: bump prometheus-operator from 0.91.0 to 0.94.0
- Fix #8133: bump stolostron/discovery from 6a13204 to ea34ca3
- Fix #8133: bump stolostron/klusterlet-addon-controller from 0d7e21c to 5341d76
- Fix #8133: bump stolostron/multicluster-observability-operator from 3a17a1a to 553f19c
- Fix #8133: bump stolostron/multiclusterhub-operator from c3e46b4 to 30a5420
- Fix #8133: bump stolostron/search-v2-operator from 030a382 to 8d84710
- Fix #8100: bump tektoncd/pipeline from 1.12.0 to 1.16.0
- Fix #8100: bump tektoncd/triggers from 0.36.0 to 0.37.0
- Fix #8097: bump volcano.sh/apis from 1.11.0 to 1.15.2
- Fix #8050: (karaf) The Karaf feature bundles Aries SPI-Fly 1.3.7 (from 1.3.0) and ASM 9.10.1 (from 8.0.1), the versions required to weave Java 17 bytecode
New Features
- Fix #8041: Typed DSL for the resources added in Kubernetes 1.37:
certificates().v1().podCertificateRequests(),dynamicResourceAllocation().v1().deviceTaintRules(),storageMigration().v1().storageVersionMigrations()andscheduling().v1beta1()podGroups()andworkloads(), pluscertificates().v1beta1().podCertificateRequests()andstorageMigration().v1beta1().storageVersionMigrations().kubernetes-model-policyalso ships thelifecycle.k8s.io/v1alpha1model (EvictionandEvictionRequest)
Note: Breaking changes
- Check detailed migration documentation for breaking changes in 8.0.0
- Fix #8041: (kubernetes-client-api)
runtimeClasses()andnetwork().ingresses()(andnetwork().ingress()) use thev1models instead ofv1beta1ones Kubernetes no longer serves, see the migration guide - Fix #7374: Moved to Jackson 3 (
tools.jacksoncoordinates and packages). The default serialization keeps the Jackson 2 behavior for custom types, see the migration guide - Fix #7987: (kubernetes-client-api)
Filterable#withShardSelectoralso accepts a typedShardSelector, so a literalwithShardSelector(null)no longer compiles, see the migration guide - Fix #8031: (crd-generator) Removed the deprecated CRD Generator v1 (
crd-generator-apiandcrd-generator-apt). Migrate tocrd-generator-api-v2with the Maven plugin, the CLI tool, or the Gradle build script recipe, see the migration guide - Fix #8009: Moved Java baseline from 11 to 17. In addition to the runtime requirement, the Maven plugins, the Gradle plugin and the annotation processor now require a Java 17+ JVM to run the build, and the OSGi bundles declare
osgi.ee=JavaSE 17 - Fix #8050: (karaf) The
kubernetes-karaffeature repository no longer defines its ownscrfeature.kubernetes-clientnow depends on thescrfeature provided by the Karaf distribution, which supplies the Declarative Services API bundles and thescr:*shell commands - Fix #8142: (knative) Serving
RevisionSpecreplacesworkloadRefwithschedulingGroupand addsevictionResponders, like the corePodSpecsince Kubernetes 1.37 - Fix #8133: (open-cluster-management)
DiscoveredClusterSpecdropsownerandDiscoveredClusterConditiondropslastUpdateTime - Fix #8148: (openshift-model) Model class
io.fabric8.openshift.api.model.customresourcestatus.conditions.v1.Conditionremoved, HiveClusterDeploymentCustomizationStatusconditions use the KubernetesCondition - Fix #8148: (openshift-model-config)
ClusterImagePolicySpecandImagePolicySpecpolicies areImageSigstoreVerificationPolicyand their roots of trustImagePolicyFulcioCAWithRekorRootOfTrust,ImagePolicyPKIRootOfTrustandImagePolicyPublicKeyRootOfTrust. Model classesFulcioCAWithRekor,PKI,PolicyandPublicKeyremoved - Fix #8148: (openshift-model-config)
GCPPlatformStatusdropsserviceEndpoints, model classGCPServiceEndpointremoved - Fix #8148: (openshift-model-hive) oVirt support removed:
ClusterDeprovisionPlatform,MachinePoolPlatformandPlatformdropovirt, model classesOvirtClusterDeprovisionand theio.fabric8.openshift.api.model.hive.ovirt.v1package removed - Fix #8148: (openshift-model-hive) vSphere
MachinePool.osDiskuses the installerio.fabric8.openshift.api.model.installer.vsphere.v1.OSDisk, model classio.fabric8.openshift.api.model.hive.vsphere.v1.OSDiskremoved. The module now depends onopenshift-model-installer,openshift-model-machineandopenshift-model-operator - Fix #8148: (openshift-model-installer) GCP
PSCEndpointdropsregion - Fix #8148: (openshift-model-machineconfiguration)
v1alpha1model classesMachineConfigNode,PinnedImageSetand their related types removed, use thev1ones - Fix #8133: (open-cluster-management)
MultiClusterHubSpecdropscustomCAConfigmap,enableClusterBackup,enableClusterProxyAddon,hive,ingressandseparateCertificateManagement. Model classesBackupConfig,ExternalDNSAWSConfig,ExternalDNSConfig,ExternalDNSGCPConfig,FailedProvisionConfig,HiveConfigSpec,HiveConfigStatus,IngressSpecandVeleroBackupConfigremoved - Fix #8133: (open-cluster-management) Observability
PlatformMetricsSpecandUserWorkloadMetricsSpecreplacecollectionwithdefault(PlatformMetricsCollectionSpecandUserWorkloadMetricsCollectionSpecremoved), andPlatformNamespaceRightSizingRecommendationSpecis renamed toPlatformRightSizingRecommendationSpec - Fix #8100: (tekton) Model classes
TemplateandAffinityAssistantTemplatemoved from packageio.fabric8.tekton.podtoio.fabric8.tekton.unversioned, since tekton pipeline 1.16.0 declares them as+versionName=unversioned - Fix #6779: (httpclient-jetty) Moved from Jetty 11 to Jetty 12.1, see the migration guide
- Fix #8008:
kubernetes-clientandopenshift-clientdefault to the Vert.x 5 HttpClient (kubernetes-httpclient-vertx-5) instead of Vert.x 4 (kubernetes-httpclient-vertx), see the migration guide
New Contributors
- @arnav-ag made their first contribution in #8108
- @Fayupable made their first contribution in #8042
Full Changelog: v7.9.0...v8.0.0