Skip to content

Releases: fabric8io/kubernetes-client

5.4.1 (2021-06-01)

01 Jun 12:37
Compare
Choose a tag to compare

Bugs

  • Fix #3181: Properly handling of JsonProperty when generating CRDs
  • Fix #3172: Use File.toURI() to create the generated CRD URI
  • Fix #3152: Retry only Non-Restful Create-only resources in OpenShiftOAuthInterceptor
  • Fix #3189: VersionInfo contains null data in OpenShift 4.6

5.4.0 (2021-05-19)

19 May 13:16
Compare
Choose a tag to compare

Bugs

  • Fix #3040: Consistently order printer columns by JSON path to prevent undue changes in generated CRDs
  • Fix #3041: Properly output additionalProperties field for Maps, output warning for unsupported complex maps
  • Fix #3036: Fix file descriptor leak when loading cacerts file
  • Fix #3038: Upgrade TLS versions in mock servers to 1.2.
  • Fix #3037: Account for JsonProperty annotations when computing properties' name
  • Fix #3014: Resync Future is canceled and resync executor is shutdown on informer stop
  • Fix #2529: SelfSubjectAccessReview not working with OpenShiftClient
  • Fix #2978: Fix SharedInformer NPE on initial requests while syncing
  • Fix #2989: serialization will generate valid yaml when using subtypes
  • Fix #2991: reduced the level of ReflectWatcher event received log
  • Fix #2992: allowing Watch auto-reconnect for shared informers
  • Fix #2994: updating the SharedIndexInformer indexer state for a delete event generated by resync
  • Fix #2996: Generating CRDs from the API should now properly work
  • Fix #3000: Set no_proxy in the okhttp builder in case the proxy_url is null
  • Fix #3011: properly handle enum types for additional printer columns
  • Fix #3020: annotations should now properly have their associated values when processing CRDs from the API
  • Fix #3016: Use scheduleWithFixedDelay for resync task execution
  • Fix #2991: reduced the level of ReflectWatcher event received log
  • Fix #3027: fix NPE when sorting events in KubernetesResourceUtil
  • Fix #3054: missing entry for Trigger in TektonTriggersResourceMappingProvider
  • Fix #3047: NPE when getting version when there is no build date
  • Fix #3024: stopAllRegisteredInformers will not call startWatcher
  • Fix #3067: Added a patch(PatchContext, item) operation to be more explicit about patching and diffing behavior
  • Fix #3097: refresh token with autoconfigure even if authprovider is null

Improvements

  • Fix #2788: Support FIPS mode in kubernetes-client with BouncyCastleFipsProvider
  • Fix #2910: Move crd-generator tests from kubernetes-itests to kubernetes-tests
  • Fix #3005: Make it possible to select which CRD version is generated / improve output
  • Fix #3015: Thread interruption in a nominal case (like closing the client) are now logged in debug
  • Fix #3057: Removed debug calls for CustomResource during deserialization
  • Fix #3050: More enforcement of the informer lifecycle
  • Fix #3061: Removed the deltafifo from the informer logic
  • Fix #3081: Use apiGroupName in generated package for OpenShiftClient Handler/OperationsImpl classes
  • Fix #3089: Allowing patch/edit to infer context from the item
  • Fix #3066: Added replaceStatus (PUT), editStatus (JSON PATCH), and patchStatus (JSON MERGE PATCH) methods to support non-locking status updates

Dependency Upgrade

  • Fix #2979: Update Kubernetes Model to v1.21.0
  • Fix #3099: Update Tekton Triggers Model to v0.13.0
  • Fix #3118: Update to sundrio 0.40.1

New Features

  • Fix #2984: Add support for flowcontrol.apiserver.k8s.io/v1beta1 FlowSchema and PriorityLevelConfiguration
  • Fix #2980: Add DSL Support for apps/v1#ControllerRevision resource
  • Fix #2981: Add DSL support for storage.k8s.io/v1beta1 CSIDriver, CSINode and VolumeAttachment
  • Fix #2912: Add DSL support for storage.k8s.io/v1beta1 CSIStorageCapacity
  • Fix #2701: Better support for patching in KuberntesClient
  • Fix #3034: Added a SharedInformer.isRunning method
  • Fix #3088: mock server will assume /status is a subresource, and other refinements to match kube behavior
  • Fix #3111: Add DSL Support for config.openshift.io/v1 resources in OpenShiftClient

Note: Breaking changes in the API

DSL Changes:
  • client.batch().jobs() deprecated, suggestion to move to client.batch().v1().jobs()
  • client.batch().cronjobs() deprecated, suggestion to move to client.batch().v1().cronjobs() or client.batch().v1beta1().cronjobs()
  • client.policy().podSecurityPolicies() deprecated, suggestion to move to client.policy().v1beta1().podSecurityPolicies()
  • client.policy().podDisruptionBudget() deprecated, suggestion to move to client.policy().v1().podDisruptionBudget() or client.policy().v1beta1().podDisruptionBudget()
Model Changes:
  • Classes in io.fabric8.kubernetes.api.model.batch have been moved to io.fabric8.kubernetes.api.model.batch.v1 and io.fabric8.kubernetes.api.model.batch.v1beta1
  • Classes in io.fabric8.kubernetes.api.model.policy have been moved to io.fabric8.kubernetes.api.model.policy.v1 and io.fabric8.kubernetes.api.model.policy.v1beta1

5.3.1 (2021-04-26)

26 Apr 14:52
Compare
Choose a tag to compare

Bugs

  • Fix #2991: reduced the level of ReflectWatcher event recieved log
  • Fix #2992: allowing Watch auto-reconnect for shared informers
  • Fix #2994: updating the SharedIndexInformer indexer state for a delete event generated by resync
  • Fix #2910: Move crd-generator tests from kubernetes-itests to kubernetes-tests
  • Fix #3005: Make it possible to select which CRD version is generated / improve output
  • Fix #3011: properly handle enum types for additional printer columns
  • Fix #3020: annotations should now properly have their associated values when processing CRDs from the API

4.13.3 (2021-04-22)

22 Apr 07:45
Compare
Choose a tag to compare

Bugs

  • Fix: Set no_proxy in the okhttp builder in case the proxy_url is null
  • Fix #3027: fix NPE when sorting events in KubernetesResourceUtil

5.3.0 (2021-04-08)

08 Apr 12:27
Compare
Choose a tag to compare

Bugs

  • Fix #2620: Add support for config.openshift.io/v1 Ingress
  • Fix #2784: Not able to deserialize ClusterServiceVersion
  • Fix #2935: CRD generator no longer treat enum values as properties (performance)
  • Fix #2812: SharedIndexInformer EventHandler sees double updates at resync interval
  • Fix #2937: SharedInformerFactory#getExistingSharedIndexInformer returns null when @kind is configured
  • Fix #2924: Creating a CustomResourceInfo from a class doesn't result in the expected information
  • Fix #2967: Copy to/from pods: fixed error message; removed debug output
  • Fix #2923: Edit a CustomResource should result in a patch

Improvements

  • Fix #2950: RawCustomResourceOperationsImpl should also work with standard resources
  • Fix #2938: Make it possible to manage Tekton Triggers directly
  • Fix #2921: Kubernetes server mock will generate missing metadata fields
  • Fix #2946: Kubernetes server mock watch will generate initial ADDED events
  • Fix #2925: Add CustomResource.getShortNames(Class) method

Dependency Upgrade

  • Fix #2971: Upgrade to sundrio 0.30.0

New Features

  • Fix #2837: Add Support for events.k8s.io APIGroup DSL
  • Fix #2854: Introduce CamelK extension

5.2.1 (2021-03-16)

16 Mar 18:23
Compare
Choose a tag to compare

Bugs

  • Fix #2905: NullPointerException when attempting to generate non-parameterized CustomResources
  • Fix #2900: Improve handling of complex CR hierarchies, falling back to ignoring status replicas instead of skipping CRD generation altogether

5.2.0 (2021-03-12)

12 Mar 15:58
Compare
Choose a tag to compare

Bugs

  • Fix #2802: NullPointerException in HasMetadataOperation patch/replace when using KubernetesMockServer
  • Fix #2828: Remove automatic instantiation of CustomResource spec and status as this feature was causing more issues than it was solving
  • Fix #2857: Fix the log of an unexpected error from an Informer's EventHandler
  • Fix #2853: Cannot change the type of the Service from ClusterIP to ExternalName with PATCH
  • Fix #2855: .withPropagationPolicy and .withGracePeriod DSL methods can't be combined for Resource API deletion operations
  • Fix #2783: OpenIDConnectionUtils#persistKubeConfigWithUpdatedToken persists access token instead of refresh token
  • Fix #2871: Change longFileMode to LONGFILE_POSIX for creating tar in PodUpload, improve exception handling in PodUpload.
  • Fix #2746: SharedInformerFactory should use key formed from OperationContext
  • Fix #2736: Move CRD annotations to kubernetes-model-common module for greater coherence
  • Fix #2836: Make CRD generation usable at runtime, split the generator into api and apt modules,
    the crd-generator-apt artifact corresponding to the previous crd-generator artifact, while the
    crd-generator-api artifact can be consumed directly to generate the CRDs at runtime.

Improvements

  • Fix #2781: RawCustomResourceOperationsImpl#delete now returns a boolean value for deletion status
  • Fix #2780: Refactor RawCustomResourceOperationsImpl#delete(String)

New Features

  • Fix #2818: Update chaos-mesh extension to v1.1.1. Add PodIoChaos, JVMChaos, HTTPChaos and DNSChaos.
  • Fix #2699: Add support for @EnableOpenShiftMockClient for OpenShiftClient
  • Fix #2588: Support for Server side dry runs

5.1.1 (2021-02-24)

24 Feb 15:51
Compare
Choose a tag to compare

Bugs

  • Fix #2747: Apiextensions DSL should use NonNamespaceOperation for CustomResourceDefinitions
  • Fix #2819: simple enums are now supported when generating CRDs
  • Fix #2827: CNFE when initialzing CustomResource instances
  • Fix #2815: client.isAdaptable(OpenShiftClient.class) doesn't work on OpenShift 4
  • Fix #2833: Knative model genrator is now aligned with all other generators

5.1.0 (2021-02-17)

17 Feb 15:51
Compare
Choose a tag to compare

Bugs

  • Fix #2748: Pass custom headers in kubernetes-client to watch api by modify WatchConnectionManager
  • Fix #2745: Filtering Operations can't configure PropagationPolicy
  • Fix #2672: WaitUntilReady for Service resource throws IllegalArgumentException

Improvements

  • Fix #2717: Remove edit() methods from RawCustomResourceOperationsImpl taking InputStream arguments
  • Fix #2757: add storage and served to Version annotation
  • Fix #2759: add ShortNames annotation to specify short names for CRD generation
  • Fix #2694: Remove deprecated methods from KubernetesClient DSL
  • Fix #2716: Add a property to disable BackwardCompatibilityInterceptor

Dependency Upgrade

  • Fix #2706: update Tekton Triggers model to v0.11.1
  • Fix #2684: Upgrade Kubernetes Model to v1.20.2

New Features

  • Fix #2702: Add support for discovery.k8s.io/v1beta1 EndpointSlice in KubernetesClient DSL
  • Fix #2703: Add support for certificates.k8s.io v1 and v1beta1 API in KubernetesClient DSL
  • Fix #2708: Update CSI Volume Snapshot API to v1
  • Fix #2789: Use thread context class loader instead of Class.forName
  • Fix #2779: Add DSL support for scheduling.k8s.io v1 and v1beta1 to SchedulingAPIGroupDSL
  • Fix #2776: Preview release of CRD generator based on annotations
    • Classes extending the CustomResource class can now be used as the basis for CRD generation
    • Several annotations are available to override the default behavior if it doesn't fit your needs
    • Validation schema is automatically derived from your class' spec implementation (or from the CR
      class, if no spec is present)
    • CRDs are automatically generated at compile-time if you include the io.fabric8:crd-generator
      dependency to your project (with the suggested compile scope)
    • CRDs are generated for both v1beta1 and v1 versions of the specification at this point
    • One CRD manifest is generated per CRD using the CRD name (e.g. mycrplural.group.example.com)
      suffixed with the specification version, e.g. mycrplural.group.example.com-v1.yml
    • The CRD files are generated in the target/META-INF/fabric8 directory of your project

Note: Breaking changes in the API

DSL Changes:
  • client.settings() DSL has been removed since PodPreset v1alpha1 API is no longer present in Kubernetes 1.20.x
  • client.customResourceDefinitions() has been removed. Use client.apiextensions().v1beta1().customResourceDefinitions() instead
  • client.events() has been removed. Use client.v1().events() instead
  • client.customResource(...) method is removed. Use client.customResources(...) with CustomResource configuration in annotations inside POJOs
Model Changes:
  • Classes in io.fabric8.kubernetes.api.model.scheduling have been moved to io.fabric8.kubernetes.api.model.scheduling.v1 and io.fabric8.kubernetes.api.model.scheduling.v1beta1
  • Classes in io.fabric8.kubernetes.api.model.admission have been moved to io.fabric8.kubernetes.api.model.admission.v1 and io.fabric8.kubernetes.api.model.admission.v1beta1
  • Classes in io.fabric8.kubernetes.api.model.certificates have been moved to io.fabric8.kubernetes.api.model.certificates.v1 and io.fabric8.kubernetes.api.model.certificates.v1beta1
  • Classes in io.fabric8.kubernetes.api.model.events have been moved to io.fabric8.kubernetes.api.model.events.v1 and io.fabric8.kubernetes.api.model.events.v1beta1

4.11.2 (2021-02-09)

09 Feb 17:30
Compare
Choose a tag to compare

Bugs

  • Fix #2715: CVE-2021-20218 vulnerable to a path traversal leading to integrity and availability compromise