Merge pull request #46883 from ahmetb/clientgo-toc

Automatic merge from submit-queue

clientgo/examples: add ToC for examples

Also add authenticate- prefix to auth samples. This patch could use some
improvement explaining workqueue and TPR examples as I'm not entirely sure.

/assign @caesarxuchao

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
This commit is contained in:
Kubernetes Submit Queue 2017-06-16 14:14:26 -07:00 committed by GitHub
commit d7b631a52d
10 changed files with 40 additions and 11 deletions

View File

@ -384,8 +384,8 @@ staging/src/k8s.io/apiserver/plugin/pkg/authenticator/password/allow
staging/src/k8s.io/apiserver/plugin/pkg/authenticator/request/basicauth staging/src/k8s.io/apiserver/plugin/pkg/authenticator/request/basicauth
staging/src/k8s.io/client-go/discovery staging/src/k8s.io/client-go/discovery
staging/src/k8s.io/client-go/examples/create-update-delete-deployment staging/src/k8s.io/client-go/examples/create-update-delete-deployment
staging/src/k8s.io/client-go/examples/in-cluster staging/src/k8s.io/client-go/examples/in-cluster-client-configuration
staging/src/k8s.io/client-go/examples/out-of-cluster staging/src/k8s.io/client-go/examples/out-of-cluster-client-configuration
staging/src/k8s.io/client-go/examples/third-party-resources-deprecated staging/src/k8s.io/client-go/examples/third-party-resources-deprecated
staging/src/k8s.io/client-go/informers staging/src/k8s.io/client-go/informers
staging/src/k8s.io/client-go/informers/admissionregistration staging/src/k8s.io/client-go/informers/admissionregistration

View File

@ -80,7 +80,7 @@ if grep -rq '// import "k8s.io/kubernetes/' 'staging/'; then
exit 1 exit 1
fi fi
for EXAMPLE in vendor/k8s.io/client-go/examples/{in-cluster,out-of-cluster,third-party-resources-deprecated} vendor/k8s.io/apiextensions-apiserver/examples ; do for EXAMPLE in vendor/k8s.io/client-go/examples/{in-cluster-client-configuration,out-of-cluster-client-configuration,third-party-resources-deprecated} vendor/k8s.io/apiextensions-apiserver/examples ; do
test -d "${EXAMPLE}" # make sure example is still there test -d "${EXAMPLE}" # make sure example is still there
if go list -f '{{ join .Deps "\n" }}' "./${EXAMPLE}/..." | sort | uniq | grep -q k8s.io/client-go/plugin; then if go list -f '{{ join .Deps "\n" }}' "./${EXAMPLE}/..." | sort | uniq | grep -q k8s.io/client-go/plugin; then
echo "${EXAMPLE} imports client-go plugins by default, but shouldn't." echo "${EXAMPLE} imports client-go plugins by default, but shouldn't."

View File

@ -0,0 +1,28 @@
# client-go Examples
This directory contains examples that cover various use cases and functionality
for client-go.
### Configuration
- [**Authenticate in cluster**](./in-cluster-client-configuration): Configure a
client while running inside the Kubernetes cluster.
- [**Authenticate out of cluster**](./out-of-cluster-client-configuration):
Configure a client to access a Kubernetes cluster from outside.
### Basics
- [**Managing resources with API**](./create-update-delete-deployment): Create,
get, update, delete a Deployment resource.
### Advanced Concepts
- [**Work queues**](./workqueue): Create a hotloop-free controller with the
rate-limited workqueue and the [informer framework][informer].
- [**Third-party resources (deprecated)**](./third-party-resources-deprecated):
Register a custom resource type with the API, create/update/query this custom
type, and write a controller drives the cluster state based on the changes to
the custom resources.
[informer]: https://godoc.org/k8s.io/client-go/tools/cache#NewInformer

View File

@ -9,7 +9,7 @@ load(
) )
go_binary( go_binary(
name = "in-cluster", name = "in-cluster-client-configuration",
library = ":go_default_library", library = ":go_default_library",
tags = ["automanaged"], tags = ["automanaged"],
) )

View File

@ -1,7 +1,7 @@
# Authenticating inside the cluster # Authenticating inside the cluster
This example shows you how you can write an application that authenticates to This example shows you how to configure a client with client-go to authenticate
the Kubernetes API while it is running on a Kubernetes cluster. to the Kubernetes API from an application running inside the Kubernetes cluster.
client-go uses the [Service Account token][sa] mounted inside the Pod at the client-go uses the [Service Account token][sa] mounted inside the Pod at the
`/var/run/secrets/kubernetes.io/serviceaccount` path when the `/var/run/secrets/kubernetes.io/serviceaccount` path when the
@ -11,7 +11,7 @@ client-go uses the [Service Account token][sa] mounted inside the Pod at the
First compile the application for Linux: First compile the application for Linux:
cd in-cluster cd in-cluster-client-configuration
GOOS=linux go build -o ./app . GOOS=linux go build -o ./app .
Then package it to a docker image using the provided Dockerfile to run it on Then package it to a docker image using the provided Dockerfile to run it on

View File

@ -9,7 +9,7 @@ load(
) )
go_binary( go_binary(
name = "out-of-cluster", name = "out-of-cluster-client-configuration",
library = ":go_default_library", library = ":go_default_library",
tags = ["automanaged"], tags = ["automanaged"],
) )

View File

@ -1,7 +1,8 @@
# Authenticating outside the cluster # Authenticating outside the cluster
This example shows you how to authenticate to the Kubernetes API from an This example shows you how to configure a client with client-go to authenticate
application running outside the Kubernetes cluster with client-go. to the Kubernetes API from an application running outside the Kubernetes
cluster.
You can use your kubeconfig file that contains the context information You can use your kubeconfig file that contains the context information
of your cluster to initialize a client. The kubeconfig file is also used of your cluster to initialize a client. The kubeconfig file is also used
@ -14,7 +15,7 @@ Make sure your `kubectl` is configured and pointed to a cluster. Run
Run this application with: Run this application with:
cd out-of-cluster cd out-of-cluster-client-configuration
go build -o app . go build -o app .
./app ./app