OpenAPI based Generated Go client for Kubernetes
This repo hosts an experimental Golang client library generated using swagger-codegen and Kubernetes OpenAPI spec. Currently the client capability meets the Bronze Requirement and is supported in Alpha state, as described in Kubernetes: New Client Library Procedure. For more advanced functionality (e.g. controller and shared informer), please refer to the more mature Kubernetes Go client.
Installation
Get the source:
cd $GOPATH/src/k8s.io
git clone --recursive https://github.com/kubernetes-client/go.git client
cd client
NOTE on go get
:
Currently this repo is still under experimental state and the domains haven't been set up for go get
yet. Please get the library from source.
Example
Please see https://github.com/kubernetes-client/go/tree/master/examples for basic examples of using this client library.
Documentation
All APIs and Models' documentation can be found at the Generated client's README file
Compatibility
This client library follows semver, so until the major version of client gets increased, your code will continue to work with explicitly supported versions of Kubernetes clusters.
Compatibility matrix
Kubernetes 1.10 | Kubernetes 1.13 | |
---|---|---|
client 0.1.0a1 | ✓ | |
client 0.2.0a1 | ✓ |
Key:
✓
Exactly the same features / API objects in both Go client and the Kubernetes version.+
Go client has features or api objects that may not be present in the Kubernetes cluster, but everything they have in common will work.-
The Kubernetes cluster has features the Go client library can't use (additional API objects, etc).
Generatic code
Check out https://github.com/kubernetes-client/gen
into ${GEN_DIR}
.
Assume that https://github.com/kubernetes-client/go
is in ${GO_DIR}
.
cd ${GO_DIR}/kubernetes
${GEN_DIR}/openapi/go.sh ./ ./settings
Contributing
Please see CONTRIBUTING.md for instructions on how to contribute.