diff --git a/examples/README.md b/examples/README.md new file mode 100644 index 00000000..08909dd5 --- /dev/null +++ b/examples/README.md @@ -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 + diff --git a/examples/in-cluster/BUILD b/examples/in-cluster-client-configuration/BUILD similarity index 92% rename from examples/in-cluster/BUILD rename to examples/in-cluster-client-configuration/BUILD index 5e9e9e69..038801ee 100644 --- a/examples/in-cluster/BUILD +++ b/examples/in-cluster-client-configuration/BUILD @@ -9,7 +9,7 @@ load( ) go_binary( - name = "in-cluster", + name = "in-cluster-client-configuration", library = ":go_default_library", tags = ["automanaged"], ) diff --git a/examples/in-cluster/Dockerfile b/examples/in-cluster-client-configuration/Dockerfile similarity index 100% rename from examples/in-cluster/Dockerfile rename to examples/in-cluster-client-configuration/Dockerfile diff --git a/examples/in-cluster/README.md b/examples/in-cluster-client-configuration/README.md similarity index 88% rename from examples/in-cluster/README.md rename to examples/in-cluster-client-configuration/README.md index 0e251d13..811b750c 100644 --- a/examples/in-cluster/README.md +++ b/examples/in-cluster-client-configuration/README.md @@ -1,7 +1,7 @@ # Authenticating inside the cluster -This example shows you how you can write an application that authenticates to -the Kubernetes API while it is running on a Kubernetes cluster. +This example shows you how to configure a client with client-go to authenticate +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 `/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: - cd in-cluster + cd in-cluster-client-configuration GOOS=linux go build -o ./app . Then package it to a docker image using the provided Dockerfile to run it on diff --git a/examples/in-cluster/main.go b/examples/in-cluster-client-configuration/main.go similarity index 100% rename from examples/in-cluster/main.go rename to examples/in-cluster-client-configuration/main.go diff --git a/examples/out-of-cluster/BUILD b/examples/out-of-cluster-client-configuration/BUILD similarity index 91% rename from examples/out-of-cluster/BUILD rename to examples/out-of-cluster-client-configuration/BUILD index 7545acad..92f4666d 100644 --- a/examples/out-of-cluster/BUILD +++ b/examples/out-of-cluster-client-configuration/BUILD @@ -9,7 +9,7 @@ load( ) go_binary( - name = "out-of-cluster", + name = "out-of-cluster-client-configuration", library = ":go_default_library", tags = ["automanaged"], ) diff --git a/examples/out-of-cluster/README.md b/examples/out-of-cluster-client-configuration/README.md similarity index 82% rename from examples/out-of-cluster/README.md rename to examples/out-of-cluster-client-configuration/README.md index f82e8d31..80da4a16 100644 --- a/examples/out-of-cluster/README.md +++ b/examples/out-of-cluster-client-configuration/README.md @@ -1,7 +1,8 @@ # Authenticating outside the cluster -This example shows you how to authenticate to the Kubernetes API from an -application running outside the Kubernetes cluster with client-go. +This example shows you how to configure a client with client-go to authenticate +to the Kubernetes API from an application running outside the Kubernetes +cluster. You can use your kubeconfig file that contains the context information 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: - cd out-of-cluster + cd out-of-cluster-client-configuration go build -o app . ./app diff --git a/examples/out-of-cluster/main.go b/examples/out-of-cluster-client-configuration/main.go similarity index 100% rename from examples/out-of-cluster/main.go rename to examples/out-of-cluster-client-configuration/main.go