Skip to content

Releases: fabric8io/kubernetes-client

5.7.2 (2021-09-02)

02 Sep 13:42
Compare
Choose a tag to compare

Dependency Upgrade

  • Fix: Revert #3427 bump jandex from 2.3.1.Final to 2.4.0.Final

5.7.1 (2021-09-01)

01 Sep 12:28
Compare
Choose a tag to compare

Bugs

  • Fix #3411: enum values should honor JsonProperty annotations during CRD generation
  • Fix #3431: required list properly uses renamed properties during CRD generation
  • Fix #3429: KubernetesCrudDispatcher throw ConcurrentModificationException when using WatchEventsListener

Improvements

  • Fix #3414: Add equals and hashCode implementations for CustomResource
  • Fix #3287: Add support for field descriptions in CRD Generator

5.7.0 (2021-08-12)

12 Aug 11:36
Compare
Choose a tag to compare

Bugs

  • Fix #3325: All Cluster Scoped Kubernetes resources should use NonNamespacedOperation
  • Fix #3346: https configuration ignored for OpenShiftServer in CRUD mode
  • Fix #3347: OpenShiftConfig missing some configurations from provided Config
  • Fix #3379: using updateStatus rather than patchStatus in the Raw logic

Improvements

  • Fix #3316: allow locking deletion to resource version
  • Fix #3350: Replace references to impls with interfaces in several places in the the dsl
  • Fix #3327: Removed generated ResourceHandlers
  • Fix #3349: ensuring that dsl context values always are applied over user ListOptions
  • Fix #3372: Add generatePackageSuffix option to Model Generator to allow flexible package names for generated model
  • Fix #3336: Add ConversionReview in Kubernetes API Extensions model
  • Fix #3367: Let CRDGenerator clients handle output (#3366, #3371)

New Features

  • Fix #3380: Update chaos-mesh extension to v1.2.3. Add AwsChaos.

Note: Breaking changes in the API

DSL Changes:
  • #3327 DSL methods mentioning customResources have been deprecated: KubernetesClient.customResources, SharedIndexInformerFactory.sharedIndexInformerForCustomResource. See replacement resources and sharedIndexInformerFor methods instead. Also CustomeResourceDefinitionContext has been replaced by ResourceDefinitionContext - for example in KubernetesClient.genericKubernetesResources.
  • #3358 DSL return type replacements - NamespacedCreateOnlyResourceOperationsImpl has been replaced by NamespacedInOutCreateable, ImageSignatureOperationsImpl has been replaced by NameableCreateOrDeleteable
  • #3364 VisitFromServerGetWatchDeleteRecreateWaitApplicable now implements Editable to replace the Visitable methods. ApplicableAnd and Recreatable have also been deprecated.
  • #3386 KubernetesClient.customResource(CustomResourceDefinitionContext) has been deprecated. Please use the GenericKubernetesResource via KubernetesClient.genericKubernetesResource(ResourceDefinitionContext)

5.6.0 (2021-07-21)

21 Jul 14:28
Compare
Choose a tag to compare

Bugs

  • Fix #3304: Prevent NPE in after informer stop
  • Fix #3083: CertificateException due to PEM being decoded in CertUtils
  • Fix #3295: Fix wrong kind getting registered in KubernetesDeserializer in SharedInformerFactory
  • Fix #3318: Informer relist add/update should not always be sync events
  • Fix #3328: Allow for generic watches of known types
  • Fix #3240: MicroTime serialises incorrectly; add custom serializer/deserializer for MicroTime
  • Fix #3329: Moved the parsing of resource(String) to the common base client
  • Fix #3330: Added usage of the openshift specific handlers for resource(String/HasMetadata) to pickup the right Readiness

Improvements

  • Fix #3285: adding waiting for list contexts Informable.informOnCondition
  • Fix #3284: refined how builders are obtained / used by HasMetadataOperation
  • Fix #3314: Add more detailed information about what is generated by the CRD generator
  • Fix #3307: refined the support for Readiable.isReady
  • Fix #2887: Create Docker Registry secrets
  • Fix #3314: add detailed information on CRD generation

Dependency Upgrade

  • Fix #3290: Update Tekton Pipeline Model to v0.25.0

New Features

  • Fix #3291: Retrying the HTTP operation in case of IOException too
  • Fix #2712: Add support for watching logs in multi-container Controller resources (Deployments, StatefulSets, ReplicaSet etc)

Note: Breaking changes in the API

DSL Changes:
  • #3307 Readiable.isReady returns a boolean rather than a Boolean

5.5.0 (2021-06-30)

30 Jun 12:33
Compare
Choose a tag to compare

Bugs

  • Fix #3064: KubernetesMockServer should not read local .kube/config while initializing client
  • Fix #3126: a KubernetesClientException will be thrown from patch/replace rather than a null being returned when the item does not exist
  • Fix #3121: ServiceOperationImpl replace will throw a KubernetesClientException rather than a NPE if the item doesn't exist
  • Fix #3189: VersionInfo contains null data in OpenShift 4.6
  • Fix #3190: Ignore fields with name "-" when using the Go to JSON schema generator
  • Fix #3144: walking back the assumption that resource/status should be a subresource for the crud mock server, now it will be only if a registered crd indicates that it should be
  • Fix #3194: the mock server will now infer the namespace from the path
  • Fix #3076: the MetadataObject for CustomResource is now seen as Buildable
  • Fix #3216: made the mock server aware of apiVersions
  • Fix #3225: Pod metric does not have corresponding label selector variant
  • Fix #3243: pipes provided to exec command are no longer closed on connection close, so that client can fully read the buffer after the command finishes.
  • Fix #3272: prevent index npe after informer sees an empty list
  • Fix #3275: filter related dsl methods withLabel, withField, etc. should not modify the current context. If you need similar behavior to the previous use Filterable.withNewFilter.
  • Fix #3271: waitUntilReady and waitUntilCondition should handle resource too old
  • Fix #3278: Waitable methods should not be available at a list context

Improvements

  • Fix #3078: adding javadocs to further clarify patch, edit, replace, etc. and note the possibility of items being modified.
  • Fix #3149: replace(item) will consult the item's resourceVersion for the first PUT attempt when not specifically locked on a resourceVersion
  • Fix #3135: added mock crud support for patch status, and will return exceptions for unsupported patch types
  • Fix #3072: various changes to refine how threads are handled by informers. Note that the SharedInformer.run call is now blocking when starting the informer.
  • Fix #3143: a new SharedInformerEventListener.onException(SharedIndexInformer, Exception) method is available to determine which informer could not start.
  • Fix #3170: made HttpClientUtils.createHttpClient(Config, Consumer<OkHttpClient.Builder>) public to allow overriding custom http client properties
  • Fix #3202: make pod upload connection and request timeouts configurable
  • Fix #3185: Introduce GenericKubernetesResource, used as delegate in RawCustomResourceOperationsImpl
  • Fix #3001: WatchConnectionManager logs that provide little information are now logged at a lower level
  • Fix #3186: WebSockets and HTTP connections are closed as soon as possible for Watches.
  • Fix #2937: Add SharedInformerFactory#getExistingSharedIndexInformers method to return list of registered informers
  • Fix #3239: Add the Informable interface for context specific dsl methods to create SharedIndexInformers.
  • Fix #3101: making isWatching a health check for the informer

Dependency Upgrade

  • Fix #2741: Update Knative Model to v0.23.0

New Features

  • Fix #3133: Add DSL Support for authorization.openshift.io/v1 resources in OpenShiftClient
  • Fix #3166: Add DSL Support for machineconfiguration.openshift.io/v1 resources in OpenShiftClient
  • Fix #3142: Add DSL support for missing resources in operator.openshift.io and monitoring.coreos.com apiGroups
  • Fix #2565: Add support for CertManager extension
  • Fix #3150: Add DSL support for missing resources in template.openshift.io, helm.openshift.io, network.openshift.io, user.openshift.io apigroups
  • Fix #3087: Support HTTP operation retry with exponential backoff (for status code >= 500)
  • Fix #3193: Add DSL support for autoscaling.openshift.io resources in OpenShiftClient
  • Fix #3209: Add DSL support for PodSecurityPolicySubjectReview, PodSecurityPolicyReview, PodSecurityPolicySelfSubjectReview in security.openshift.io/v1 apiGroup to OpenShiftClient
  • Fix #3207: Add DSL support for OperatorCondition, Operator, PackageManifest in operators.coreos.com apiGroup to OpenShiftClient
  • Fix #3201: Add support for tuned.openshift.io apiGroup in OpenShiftClient DSL
  • Fix #3205: Add DSL support for ConsolePlugin and ConsoleQuickStart in console.openshift.io apiGroup
  • Fix #3222: Add DSL support for user.openshift.io/v1 Identity in OpenShiftClient DSL
  • Fix #3222: Add DSL support for OpenShift Whereabouts CNI Model whereabouts.cni.cncf.io to OpenShiftClient DSL
  • Fix #3224: Add DSL support for OpenShift Kube Storage Version Migrator resources in OpenShiftClient DSL
  • Fix #3228: Add support for Dynamic informers for custom resources in KubernetesClient
  • Fix #3270: Add DSL support for ClusterInterceptors to TektonClient

Note: Breaking changes in the API

DSL Changes:
  • #3127 StatusUpdatable.updateStatus deprecated, please use patchStatus, editStatus, or replaceStatus
  • #3239 deprecated methods on SharedInformerFactory directly dealing with the OperationContext, withName, and withNamespace - the Informable interface should be used instead.
  • #3271 Waitable.waitUntilReady and Waitable.waitUntilCondition with throw a KubernetesClientTimeoutException instead of an IllegalArgumentException on timeout. The methods will also no longer throw an interrupted exception.
    Waitable.withWaitRetryBackoff and the associated constants are now deprecated.
Util Changes:
  • #3197 Utils.waitUntilReady now accepts a Future, rather than a BlockingQueue
  • #3169 Utils.shutdownExecutorService removed in favor of direct usage of shutdownNow where appropriate.
    The stream pumper related classes were also simplified to utility methods on InputStreamPumper.

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