client-go
Go clients for talking to a kubernetes cluster.
We recommend using the v0.x.y tags for Kubernetes releases >= v1.17.0 and
kubernetes-1.x.y tags for Kubernetes releases < v1.17.0.
See INSTALL.md for detailed installation instructions.
go get k8s.io/client-go@master works, but will fetch master, which may be less stable than a tagged release.
Table of Contents
- What's included
- Versioning
- Kubernetes tags
- How to get it
- How to use it
- Dependency management
- Contributing code
What's included
- The
kubernetespackage contains the clientset to access Kubernetes API. - The
discoverypackage is used to discover APIs supported by a Kubernetes API server. - The
dynamicpackage contains a dynamic client that can perform generic operations on arbitrary Kubernetes API objects. - The
plugin/pkg/client/authpackages contain optional authentication plugins for obtaining credentials from external sources. - The
transportpackage is used to set up auth and start a connection. - The
tools/cachepackage is useful for writing controllers.
Versioning
-
For each
v1.x.yKubernetes release, the major version (first digit)
would remain0. -
Bugfixes will result in the patch version (third digit) changing. PRs that are
cherry-picked into an older Kubernetes release branch will result in an update
to the corresponding branch inclient-go, with a corresponding new tag
changing the patch version.
Branches and tags.
We will create a new branch and tag for each increment in the minor version
number. We will create only a new tag for each increment in the patch
version number. See semver for definitions of major,
minor, and patch.
The HEAD of the master branch in client-go will track the HEAD of the master
branch in the main Kubernetes repo.
Compatibility: your code <-> client-go
The v0.x.y tags indicate that go APIs may change in incompatible ways in
different versions.
See INSTALL.md for guidelines on requiring a specific
version of client-go.
Compatibility: client-go <-> Kubernetes clusters
Since Kubernetes is backwards compatible with clients, older client-go
versions will work with many different Kubernetes cluster versions.
We will backport bugfixes--but not new features--into older versions of
client-go.