• Stars
    star
    210
  • Rank 187,585 (Top 4 %)
  • Language
    Go
  • License
    Apache License 2.0
  • Created over 7 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

OpenAPI based generated Go Client for Kubernetes

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.