Releases: fabric8io/kubernetes-client
Releases Β· fabric8io/kubernetes-client
5.9.0 (2021-10-14)
Bugs
- Fix #3482: sanitizeName now truncate names to be less than 63 chars and makes sure first and last charaters are letters
- Fix #3353: addressing extra quoting in quantity serialization
- Fix #3509: notify reader when something is written in ExecWebSocketListener
- Fix #3501: addressed NPE with default BuildConfig operations
Improvements
- Fix #3448 added methods for getting specific version information -
KubernetesClient.getKubernetesVersion
,OpenShiftClient.getOpenShiftV3Version
, andOpenShiftClient.getOpenShiftV3Version
- Fix #3404 supporting generic resources in resource/resourceList with minimal metadata, as well as a new entry point
KubernetesClient.genericKubernetesResources(String apiVersion, String kind)
- Fix #3390: Make mock server support JSON_MERGE_PATCH
New Features
Note: Breaking changes in the API
- OpenShiftConfig#openshiftApiGroupsEnabled is deprecated and no longer used.
- OpenShiftConfig#disableApiGroupCheck is used only to determine if a client is adaptable to the OpenShiftClient and is generally only needed in mock scenarios. It will be set automatically on clients obtained from an openshift mock server.
KubernetesClient.getVersion
has been deprecated, please use one of the more specific methods introduced by #3448 -KubernetesClient.getKubernetesVersion
,OpenShiftClient.getOpenShiftV3Version
, andOpenShiftClient.getOpenShiftV3Version
5.8.0 (2021-09-23)
Bugs
- Fix #3445: TokenRefreshInterceptor throws when running incluster config
- Fix #3456: io.fabric8:crd-generator README should reference crd-generator-apt instead of now removed crd-generator artifact
- Fix #3384: preventing NPE from being logged with pod execs.
- Fix #3484: Ensuring that the informer isWatching flag is correctly reported
Improvements
- Fix #3468: Add method to get non-running
Informer
from context specific dsl - Fix #3398: Added javadocs explaining the wait parameter
- Fix #3491: Add more metadata to
KubernetesClientException
when possible - Fix #3465: Allowing for more super class event handlers
Dependency Upgrade
- Fix #3326: Upgrade Kubernetes Model to v1.22.1
5.7.3 (2021-09-09)
5.7.2 (2021-09-02)
Dependency Upgrade
- Fix: Revert #3427 bump jandex from 2.3.1.Final to 2.4.0.Final
5.7.1 (2021-09-01)
5.7.0 (2021-08-12)
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. AlsoCustomeResourceDefinitionContext
has been replaced byResourceDefinitionContext
- for example inKubernetesClient.genericKubernetesResources
. - #3358 DSL return type replacements -
NamespacedCreateOnlyResourceOperationsImpl
has been replaced byNamespacedInOutCreateable
,ImageSignatureOperationsImpl
has been replaced byNameableCreateOrDeleteable
- #3364
VisitFromServerGetWatchDeleteRecreateWaitApplicable
now implementsEditable
to replace theVisitable
methods.ApplicableAnd
andRecreatable
have also been deprecated. - #3386
KubernetesClient.customResource(CustomResourceDefinitionContext)
has been deprecated. Please use the GenericKubernetesResource viaKubernetesClient.genericKubernetesResource(ResourceDefinitionContext)
5.6.0 (2021-07-21)
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)
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 createSharedIndexInformer
s. - 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
andmonitoring.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
andWaitable.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:
5.4.1 (2021-06-01)
5.4.0 (2021-05-19)
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 theproxy_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 toclient.batch().v1().jobs()
client.batch().cronjobs()
deprecated, suggestion to move toclient.batch().v1().cronjobs()
orclient.batch().v1beta1().cronjobs()
client.policy().podSecurityPolicies()
deprecated, suggestion to move toclient.policy().v1beta1().podSecurityPolicies()
client.policy().podDisruptionBudget()
deprecated, suggestion to move toclient.policy().v1().podDisruptionBudget()
orclient.policy().v1beta1().podDisruptionBudget()
Model Changes:
- Classes in
io.fabric8.kubernetes.api.model.batch
have been moved toio.fabric8.kubernetes.api.model.batch.v1
andio.fabric8.kubernetes.api.model.batch.v1beta1
- Classes in
io.fabric8.kubernetes.api.model.policy
have been moved toio.fabric8.kubernetes.api.model.policy.v1
andio.fabric8.kubernetes.api.model.policy.v1beta1