14 KiB
TODO: This document was manually maintained so might be incomplete. The automation effort is tracked in https://github.com/kubernetes/client-go/issues/234.
Changes in k8s.io/api
and k8s.io/apimachinery
are mentioned here
because k8s.io/client-go
depends on them.
v6.0.0
Breaking Changes:
-
If you upgrade your client-go libs and use the
AppsV1() or Apps()
interface, please note that the default garbage collection behavior is changed. -
Swagger 1.2 retriever
DiscoveryClient.SwaggerSchema
was removed from the discovery client -
Informers got a NewFilteredSharedInformerFactory to e.g. filter by namespace
-
[k8s.io/api] The dynamic admission webhook is split into two kinds, mutating and validating. The kinds have changed completely and old code must be ported to
admissionregistration.k8s.io/v1beta1
-MutatingWebhookConfiguration
andValidatingWebhookConfiguration
-
[k8s.io/api] Renamed
core/v1.ScaleIOVolumeSource
toScaleIOPersistentVolumeSource
-
[k8s.io/api] Renamed
core/v1.RBDVolumeSource
toRBDPersistentVolumeSource
-
[k8s.io/api] Removed
core/v1.CreatedByAnnotation
-
[k8s.io/api] Renamed
core/v1.StorageMediumHugepages
toStorageMediumHugePages
-
[k8s.io/api]
core/v1.Taint.TimeAdded
became a pointer -
[k8s.io/api]
core/v1.DefaultHardPodAffinitySymmetricWeight
type changed from int to int32 -
[k8s.io/apimachinery]
ObjectCopier
interface was removed (requires switch to new generators with DeepCopy methods)
New Features:
-
Certificate manager was moved from kubelet to
k8s.io/client-go/util/certificates
-
[k8s.io/api] Workloads api types are promoted to
apps/v1
version -
[k8s.io/api] Added
storage.k8s.io/v1alpha1
API group -
[k8s.io/api] Added support for conditions in StatefulSet status
-
[k8s.io/api] Added support for conditions in DaemonSet status
-
[k8s.io/apimachinery] Added polymorphic scale client in
k8s.io/client-go/scale
, which supports scaling of resources in arbitrary API groups -
[k8s.io/apimachinery]
meta.MetadataAccessor
got API chunking support -
[k8s.io/apimachinery]
unstructured.Unstructured
got getters and setters
Bug fixes and Improvements:
-
The body in glog output is not truncated with log level 10
-
[k8s.io/api] Unset
creationTimestamp
field is output as null if encoded from an unstructured object -
[k8s.io/apimachinery] Redirect behavior is restored for proxy subresources
-
[k8s.io/apimachinery] Random string generation functions are optimized
v5.0.1
Bug fix: picked up a security fix kubernetes/kubernetes#53443 for PodSecurityPolicy
.
v5.0.0
New features:
-
Added paging support
-
Added support for client-side spam filtering of events
-
Added support for http etag and caching
-
Added priority queue support to informer cache
-
Added openstack auth provider
-
Added metrics for checking reflector health
-
Client-go now includes the leaderelection package
API changes:
-
Promoted Autoscaling v2alpha1 to v2beta1
-
Promoted CronJobs to batch/v1beta1
-
Promoted rbac.authorization.k8s.io/v1beta1 to rbac.authorization.k8s.io/v1
-
Added a new API version apps/v1beta2
-
Added a new API version scheduling/v1alpha1
Breaking changes:
-
Moved pkg/api and pkg/apis to k8s.io/api. Other kubernetes repositories also import types from there, so they are composable with client-go.
-
Removed helper functions in pkg/api and pkg/apis. They are planned to be exported in other repos. The issue is tracked here. During the transition, you'll have to copy the helper functions to your projects.
-
The discovery client now fetches the protobuf encoded OpenAPI schema and returns
openapi_v2.Document
-
Enforced explicit references to API group client interfaces in clientsets to avoid ambiguity.
-
The generic RESTClient type (
k8s.io/client-go/rest
) no longer exposesLabelSelectorParam
orFieldSelectorParam
methods - useVersionedParams
withmetav1.ListOptions
instead. TheUintParam
method has been removed. Thetimeout
parameter will no longer cause an error when usingParam()
.
v4.0.0
No significant changes since v4.0.0-beta.0.
v4.0.0-beta.0
New features:
-
Added OpenAPISchema support in the discovery client
-
Added mutation cache filter: MutationCache is able to take the result of update operations and stores them in an LRU that can be used to provide a more current view of a requested object.
-
Moved the remotecommand package (used by
kubectl exec/attach
) to client-go -
Added support for following redirects to the SpdyRoundTripper
-
Added Azure Active Directory plugin
Usability improvements:
-
Added several new examples and reorganized client-go/examples
API changes:
-
Added networking.k8s.io/v1 API
-
ControllerRevision type added for StatefulSet and DaemonSet history.
-
Added support for initializers
-
Added admissionregistration.k8s.io/v1alpha1 API
Breaking changes:
-
Moved client-go/util/clock to apimachinery/pkg/util/clock
-
Some API helpers were removed.
-
Dynamic client takes GetOptions as an input parameter
Bug fixes:
-
PortForwarder: don't log an error if net.Listen fails. https://github.com/kubernetes/kubernetes/pull/44636
-
oidc auth plugin not to override the Auth header if it's already exits. https://github.com/kubernetes/kubernetes/pull/45529
-
The --namespace flag is now honored for in-cluster clients that have an empty configuration. https://github.com/kubernetes/kubernetes/pull/46299
-
GCP auth plugin no longer overwrites existing Authorization headers. https://github.com/kubernetes/kubernetes/pull/45575
v3.0.0
Bug fixes:
- Use OS-specific libs when computing client User-Agent in kubectl, etc. (https://github.com/kubernetes/kubernetes/pull/44423)
- kubectl commands run inside a pod using a kubeconfig file now use the namespace specified in the kubeconfig file, instead of using the pod namespace. If no kubeconfig file is used, or the kubeconfig does not specify a namespace, the pod namespace is still used as a fallback. (https://github.com/kubernetes/kubernetes/pull/44570)
- Restored the ability of kubectl running inside a pod to consume resource files specifying a different namespace than the one the pod is running in. (https://github.com/kubernetes/kubernetes/pull/44862)
v3.0.0-beta.0
- Added dependency on k8s.io/apimachinery. The impacts include changing import path of API objects like
ListOptions
fromk8s.io/client-go/pkg/api/v1
tok8s.io/apimachinery/pkg/apis/meta/v1
. - Added generated listers (listers/) and informers (informers/)
- Kubernetes API changes:
- Added client support for:
- authentication/v1
- authorization/v1
- autoscaling/v2alpha1
- rbac/v1beta1
- settings/v1alpha1
- storage/v1
- Changed client support for:
- certificates from v1alpha1 to v1beta1
- policy from v1alpha1 to v1beta1
- Deleted client support for:
- extensions/v1beta1#Job
- Added client support for:
- CHANGED: pass typed options to dynamic client (https://github.com/kubernetes/kubernetes/pull/41887)
v2.0.0
- Included bug fixes in k8s.io/kuberentes release-1.5 branch, up to commit bde8578d9675129b7a2aa08f1b825ec6cc0f3420
v2.0.0-alpha.1
- Removed top-level version folder (e.g., 1.4 and 1.5), switching to maintaining separate versions in separate branches.
- Clientset supported multiple versions per API group
- Added ThirdPartyResources example
- Kubernetes API changes
- Apps API group graduated to v1beta1
- Policy API group graduated to v1beta1
- Added support for batch/v2alpha1/cronjob
- Renamed PetSet to StatefulSet
v1.5.0
- Included the auth plugin (https://github.com/kubernetes/kubernetes/pull/33334)
- Added timeout field to RESTClient config (https://github.com/kubernetes/kubernetes/pull/33958)