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
kubernetes
package contains the clientset to access Kubernetes API. - The
discovery
package is used to discover APIs supported by a Kubernetes API server. - The
dynamic
package contains a dynamic client that can perform generic operations on arbitrary Kubernetes API objects. - The
plugin/pkg/client/auth
packages contain optional authentication plugins for obtaining credentials from external sources. - The
transport
package is used to set up auth and start a connection. - The
tools/cache
package is useful for writing controllers.
Versioning
-
For each
v1.x.y
Kubernetes 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
.