Releases: fabric8io/kubernetes-client
Releases Β· fabric8io/kubernetes-client
6.9.1 (2023-10-26)
What's Changed
Bugs
- Fix #5501: (crd-generator) Fix fallback value of
Default
annotation in presence of multiple accessors - Fix #5522: type inference fixed by bumping Sundrio to 0.101.2 (see sundrio/sundrio#431)
- Fix #5554: move certificates in kubernetes-client-api to avoid collisions with those from mockwebserver
Full Changelog: v6.9.0...v6.9.1
6.9.0 (2023-10-05)
Bugs
- Fix #5466: OperationSupport should not fail trying to parse Status
- Fix #5382: (java-generator) Allow to deserialize more valid RFC3339 date-time and make the format customizable
- Fix #5380: (java-generator) Avoid to emit Java Keywords as package names
- Fix #5457: (java-generator) Correctly handle numeric enums
- Fix #5379: ensuring informOnCondition and waitUntilCondition commple with exception when the client closes
- Fix #5463: ensures that onStopLeading is called with releaseOnCancel even when leadership is already lost
- Fix #5423: OkHttpClientImpl supports setting request method for empty payload requests
Improvements
- Fix #5316: support read-only system KeyStores with Kube CA Certs
- Fix #5327: added proactive shutdown of informers on client close
- Fix #5432: (java-generator) Add the possibility to always emit
additionalProperties
on generated POJOs - Fix #5410: (crd-generator) added support for
default
- Fix #5368: added support for additional ListOptions fields
- Fix #5377: added a createOr and unlock function to provide a straight-forward replacement for createOrReplace.
- Fix #4624: added Config.onlyHttpWatches to control whether watches should only use regular HTTP requests, and not attempt WebSocket connections.
- Fix #5388: (crd-generator) Generate deterministic CRDs
- Fix #5135: added per instance methods to create a builder - instead on new PodBuilder(pod), you may use pod.toBuilder()
- Fix #5257: Add ErrorStreamMessage and StatusStreamMessage to ease mocking of pods/exec requests
- Fix #5220: refinements and clarifications to the validation of names
Dependency Upgrade
- Fix #5286: Update Fabric8 OpenShift Model as per OpenShift 4.13.12
- Fix #5373: Gradle base API based on v8.2.1
- Fix #5401: Upgrade Fabric8 Kubernetes Model to Kubernetes v1.28.2
New Features
- Fix #5430: Mock Web Server migrated to this repository
Note: Breaking changes
- Fix #5343: Removed
io.fabric8.kubernetes.model.annotation.PrinterColumn
, useio.fabric8.crd.generator.annotation.PrinterColumn
- Fix #5368: ListOptions parameter ordering is now alphabetical. If you are using non-crud mocking for lists with options, you may need to update your parameter order.
- Fix #5391: Removed the vertx-uri-template dependency from the vertx client, if you need that for your application, then introduce your own dependency.
- Fix #5220: KubernetesResourceUtil.isValidLabelOrAnnotation has been deprecated because the rules for labels and annotations are different
New Contributors
- @Donnerbart made their first contribution in #5390
Full Changelog: v6.8.1...v6.9.0
6.8.1 (2023-08-14)
Bugs
- Fix #5382: (java-generator) Allow to deserialize more valid RFC3339 date-time and make the format customizable
- Fix #5380: (java-generator) Avoid to emit Java Keywords as package names
Full Changelog: v6.8.0...v6.8.1
6.8.0 (2023-07-24)
Bugs
- Fix #4225: [crd-generator] Principled generation of enum values instead of considering more properties
- Fix #5113: Clashing package names in trigger model dependencies
- Fix #5186: Support for Pod uploads with big numbers
- Fix #5221: Empty kube config file causes NPE
- Fix #5281: Ensure the KubernetesCrudDispatcher's backing map is accessed w/lock
- Fix #5298: Prevent requests needing authentication from causing a 403 response
- Fix #5327: Ensured that the informer reconnect task terminates after client close
Improvements
- Fix #5166: Remove opinionated messages from Config's
errorMessages
and deprecate it - Fix #5233: Generalized SchemaSwap to allow for cycle expansion
- Fix #5262: all built-in collections will omit empty in their serialized form.
- Fix #5287: Add an option to filter the files processed by the java-generator, based on a suffix allowlist
- Fix #5293: Mock server supports KubernetesClientBuilder customization
- Fix #5315: Introduced
kubernetes-junit-jupiter-autodetect
to use with automatic extension registration - Fix #5339:
@PrinterColumn
annotation has configuration field for priority
Dependency Upgrade
- Fix #5056: Update Kubernetes Model to v1.27.3
- Fix #5140: Upgrade Fabric8 Knative Extension Model to v0.37.1
- Fix #5308: sundrio was updated to the latest version. FluentImpl classes were removed, along with methods that had been previously deprecated. Some seldom used builder methods dealing manipulating buildable fields as a subtype such as withXXXField were removed in favor of using more general methods such as withField.
New Features
- Fix #5133: Support for using TokenRequest for existing ServiceAccount
Note: Breaking changes
- Fix #2718: KubernetesResourceUtil.isResourceReady was deprecated. Use
client.resource(item).isReady()
orReadiness.getInstance().isReady(item)
instead. - Fix #5171: Removed Camel-K extension, use
org.apache.camel.k:camel-k-crds
instead. - Fix #5262: Built-in resources were in-consistent with respect to their serialization or empty collections. In many circumstances this was confusing behavior. In order to be consistent all built-in resources will omit empty collections by default. This is a breaking change if you are relying on an empty collection in a json merge or a strategic merge where the list has a patchStrategy of atomic. In these circumstances the empty collection will no longer be serialized. You may instead use a json patch, server side apply instead, or modify the serialized form of the patch.
- Fix #5279: (java-generator) Add native support for
date-time
fields, they are now mapped to nativejava.time.ZonedDateTime
- Fix #5315: kubernetes-junit-jupiter no longer registers the NamespaceExtension and KubernetesExtension extensions to be used in combination with junit-platform.properties>
junit.jupiter.extensions.autodetection.enabled=true
configuration. If you wish to use these extensions and autodetect them, change your dependency tokubernetes-junit-jupiter-autodetect
. - Deprecating
io.fabric8.kubernetes.model.annotation.PrinterColumn
in favor of:io.fabric8.crd.generator.annotation.PrinterColumn
- Resource classes in
resource.k8s.io/v1alpha1
have been moved toresource.k8s.io/v1alpha2
apiGroup in Kubernetes 1.27. Users are required to change package of the following classes:io.fabric8.kubernetes.api.model.resource.v1alpha1.PodSchedulingContext
-> -io.fabric8.kubernetes.api.model.resource.v1alpha2.PodSchedulingContext
io.fabric8.kubernetes.api.model.resource.v1alpha1.ResourceClaim
-> -io.fabric8.kubernetes.api.model.resource.v1alpha2.ResourceClaim
io.fabric8.kubernetes.api.model.resource.v1alpha1.ResourceClaimTemplate
->io.fabric8.kubernetes.api.model.resource.v1alpha2.ResourceClaimTemplate
io.fabric8.kubernetes.api.model.resource.v1alpha1.ResourceClass
->io.fabric8.kubernetes.api.model.resource.v1alpha2.ResourceClass
New Contributors
- @syr made their first contribution in #5237
- @MikeEdgar made their first contribution in #5280
- @sorend made their first contribution in #5186
- @bachmanity1 made their first contribution in #5340
Full Changelog: v6.7.2...v6.8.0
6.7.2 (2023-06-15)
Bugs
- Fix #4225: Enum fields written in generated crd yaml
- Fix #5194: prevented NPEs due to timing issues with KubernetesClient.visitResources
- Fix #5214: null values are omitted by default, which means custom resources by in large won't need JsonIncludes annotations. The only time that is required is when null is to be preserved via @JsonInclude(value = Include.ALWAYS) on the relevant field.
- Fix #5218: No export for
io.fabric8.tekton.triggers.internal.knative.pkg.apis.duck.v1beta1
in tekton v1beta1 triggers model - Fix #5224: Ensuring jetty sets the User-Agent header
- Fix #5229: Correcting the timeout units and behavior of withReadyWaitTimeout
- Fix #5235: Vert.x doesn't need to track derived HttpClients - prevents leakage
- Fix #5236: using scale v1beta1 compatible logic for DeploymentConfig
- Fix #5238: Preserve folder structure again in PodUpload.upload()
- Fix #5250: HttpLoggingInterceptor uses response body ByteBuffer copy
New Contributors
- @leoandrea7 made their first contribution in #4230
Full Changelog: v6.7.1...v6.7.2
6.7.1(2023-06-06)
Bugs
- Fix #5200: KubernetesSerialization.registerKubernetesResource(Class) reuses KubernetesDeserializer.Mapping.addMapping which is better supported when manually registering KubernetesResource classes
- Fix #5202: OkHttp needs to default to unlimited read timeout so that log watches and http watches do not time out
Full Changelog: v6.7.0...v6.7.1
6.7.0 (2023-06-01)
Bugs
- Fix #5117: corrected the trace httpclient logging of large response bodies
- Fix #5125: TLS 1.3 only should be supported
- Fix #5126: fallback to changeit only if null/empty does not work
- Fix #5145: [java-generator] handle
additionalProperties: true
emitting a field of typeAnyType
- Fix #5152: preventing JDK WebSocket errors from terminating watches and improving watch termination and its logging
- Fix #5164: [java-generator] handle more special characters in field names
Improvements
- Fix #1335: HttpClient Factory additionalConfig consistently applied for all client types
Dependency Upgrade
- Fix #4989: Upgrade Tekton Model to v0.47.0
- Fix #5107: The Camel-k extension has been deprecated in favor of the official release of the generated one
New Features
- Fix #4184: Add utility methods for creating ConfigMap from files/directories in KubernetesResourceUtil
- Fix #4829: Gradle Plugin for Java Generation from CRD
- Fix #5086: Allow for supporting socks proxies via proxy urls with the socks4 or socks5 protocol. Note that the JDK client does not support socks, and the Jetty client does not support socks5
Note: Breaking changes
- Fix #4911: Config/RequestConfig.scaleTimeout has been deprecated along with Scalable.scale(count, wait) and DeployableScalableResource.deployLatest(wait). withTimeout may be called before the operation to control the timeout.
- Fix #4911: Config/RequestConfig.websocketTimeout has been removed. Config/RequestConfig.requestTimeout will be used for websocket connection timeouts.
- Fix #4911: HttpClient api/building changes - writeTimeout has been removed, readTimeout has moved to the HttpRequest
- Fix #4662: removed deprecated classes/methods: ReflectUtils, ReplaceValueStream, ParameterNamespaceListVisitFromServerGetDeleteRecreateWaitApplicable, ResourceCompare, and Serialization methods taking parameters
- Fix #4662: deprecated serialization static logic: several IOHelpers methods, Serialization methods, such as access to the static jsonMapper. Please use KubernetesSerialization methods instead.
- Fix #4662: deprecated Helper.getAnnotationValue, use HasMetadata methods instead.
- Fix #5125: support for TLSv1.3 is now enabled by default
- Fix #5125: usage of TlsVersion.TLS_1_1, TLS_1_0, and SSL_3_0 have been deprecated
- Fix #1335: The JDK and OkHttp clients will default to using the VM's standard configuration for proxies if an applicable proxy configuration is not found in the Kubernetes client Config
New Contributors
- @dziemba made their first contribution in #4989
- @rissen made their first contribution in #5045
- @Indrranil made their first contribution in #5157
- @miriSch made their first contribution in #5165
Full Changelog: v6.6.2...v6.7.0
6.6.2 (2023-05-15)
Bugs
Fix #5121: RequestConfig is propagated to derived HttpClient instances
Full Changelog: v6.6.1...v6.6.2
6.6.1 (2023-05-11)
Bugs
- Fix #5095: moving the enforcement to requestTimeout
- Fix #5100: lessened the level of the non-conflicting httpclient implementation warning
- Fix #5102: wait on scale to 0 was not completing
- Fix #5112: Expose put method with InputStream argument in HttpRequest class
Full Changelog: v6.6.0...v6.6.1
6.6.0 (2023-05-03)
Bugs
- Fix #4793: (java-generator) Fix broken POJO generation when two schema properties collide into a single field name
- Fix #4910: Pod file upload will now detect if it's not completely sent to the api server
- Fix #4963: Openshift Client return 403 when use websocket
- Fix #4985: triggering the immediate cleanup of the okhttp idle task
- Fix #4988: Ensuring that previous requests are closed before retry
- Fix #4993: Quantity class should have @JsonIgnore on the additionalProperties parameter
- Fix #5000: Remove clashing
v1alpha
apigroup packages inistio-model-v1beta1
- fix #5002: Jetty response completion accounts for header processing
- Fix #5009: addressing issue with serialization of wrapped polymorphic types
- Fix #5015: executing resync as a locking operation to ensure resync event ordering
- Fix #5020: updating the resourceVersion on a delete with finalizers
- Fix #5033: port forwarding for clients other than okhttp needs to specify the subprotocol
- Fix #5035: allowed client.authentication.k8s.io/v1 to work for the ExecConfig
- fix #5036: Better websocket error handling for protocol / client enforced errors, also update frame/message limits
- Fix #5044: disable Vert.x instance file caching
- Fix #5059: Vert.x InputStreamReader uses an empty Buffer sentinel to avoid NPE
- Fix #5085: Vert.x HTTP Client InputStreamReadStream works in Native mode
Improvements
- Fix #4434: Update CronJobIT to use
batch/v1
CronJob instead - Fix #4477: exposing LeaderElector.release to force an elector to give up the lease
- Fix #4935: improve HTTP client implementation selection messages
- Fix #4975: exposing scale operations for all Resources
- Fix #4992: Optimize Quantity parsing to avoid regex overhead
- Fix #4998: removing the internal usage of the Serialization yaml mapper
- Fix #5005: status operations use the context
subresource
setting - Fix #5022: adding additional buffering to ExecWatchInputStream
- Fix #5052: add Quantity.fromNumericalAmount, the inverse of getNumericalAmount
- Fix #5073:
NamespaceVisitFromServerGetWatchDeleteRecreateWaitApplicableListImpl
extendsServerSideApplicable
- Fix #5080: minimizing debug logs related to the backoff interval
Dependency Upgrade
New Features
- Fix #5037: OkHttp-specific logging interceptor replacement. Introducing a generic HTTP interceptor to log HTTP and WS requests.
- Fix #5041: exposed Client.raw methods for arbitrary calls
Note: Breaking changes
- Fix #4875: Removed unused options from the java-generator
- Fix #4910: all Pod file uploads require commons-compress
- Fix #4998: Serialization.yamlMapper and Serialization.clearYamlMapper have been deprecated
New Contributors
- @julian-zhu96 made their first contribution in #4984
- @Ananya2001-an made their first contribution in #4268
- @schlosna made their first contribution in #4992
- @rhuffy made their first contribution in #5052
Full Changelog: v6.5.1...v6.6.0