Consolidate YAML files [part-12] (#9364)
* Consolidate YAML files [part-12] Relocate YAML files referenced by the accessing application topic and the rest of cluster administration. * Adjust json shortcodes.
This commit is contained in:
+2
-2
@@ -27,7 +27,7 @@ In this exercise, you create a Pod that runs two Containers. The two containers
|
|||||||
share a Volume that they can use to communicate. Here is the configuration file
|
share a Volume that they can use to communicate. Here is the configuration file
|
||||||
for the Pod:
|
for the Pod:
|
||||||
|
|
||||||
{{< code file="two-container-pod.yaml" >}}
|
{{< codenew file="pods/two-container-pod.yaml" >}}
|
||||||
|
|
||||||
In the configuration file, you can see that the Pod has a Volume named
|
In the configuration file, you can see that the Pod has a Volume named
|
||||||
`shared-data`.
|
`shared-data`.
|
||||||
@@ -44,7 +44,7 @@ directory of the nginx server.
|
|||||||
|
|
||||||
Create the Pod and the two Containers:
|
Create the Pod and the two Containers:
|
||||||
|
|
||||||
kubectl create -f https://k8s.io/docs/tasks/access-application-cluster/two-container-pod.yaml
|
kubectl create -f https://k8s.io/examples/pods/two-container-pod.yaml
|
||||||
|
|
||||||
View information about the Pod and the Containers:
|
View information about the Pod and the Containers:
|
||||||
|
|
||||||
|
|||||||
@@ -43,12 +43,12 @@ frontend and backend are connected using a Kubernetes Service object.
|
|||||||
The backend is a simple hello greeter microservice. Here is the configuration
|
The backend is a simple hello greeter microservice. Here is the configuration
|
||||||
file for the backend Deployment:
|
file for the backend Deployment:
|
||||||
|
|
||||||
{{< code file="hello.yaml" >}}
|
{{< codenew file="service/access/hello.yaml" >}}
|
||||||
|
|
||||||
Create the backend Deployment:
|
Create the backend Deployment:
|
||||||
|
|
||||||
```
|
```
|
||||||
kubectl create -f https://k8s.io/docs/tasks/access-application-cluster/hello.yaml
|
kubectl create -f https://k8s.io/examples/service/access/hello.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
View information about the backend Deployment:
|
View information about the backend Deployment:
|
||||||
@@ -103,7 +103,7 @@ selector labels to find the Pods that it routes traffic to.
|
|||||||
|
|
||||||
First, explore the Service configuration file:
|
First, explore the Service configuration file:
|
||||||
|
|
||||||
{{< code file="hello-service.yaml" >}}
|
{{< codenew file="service/access/hello-service.yaml" >}}
|
||||||
|
|
||||||
In the configuration file, you can see that the Service routes traffic to Pods
|
In the configuration file, you can see that the Service routes traffic to Pods
|
||||||
that have the labels `app: hello` and `tier: backend`.
|
that have the labels `app: hello` and `tier: backend`.
|
||||||
@@ -111,7 +111,7 @@ that have the labels `app: hello` and `tier: backend`.
|
|||||||
Create the `hello` Service:
|
Create the `hello` Service:
|
||||||
|
|
||||||
```
|
```
|
||||||
kubectl create -f https://k8s.io/docs/tasks/access-application-cluster/hello-service.yaml
|
kubectl create -f https://k8s.io/examples/service/access/hello-service.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
At this point, you have a backend Deployment running, and you have a
|
At this point, you have a backend Deployment running, and you have a
|
||||||
@@ -127,18 +127,18 @@ of the `name` field in the preceding Service configuration file.
|
|||||||
The Pods in the frontend Deployment run an nginx image that is configured
|
The Pods in the frontend Deployment run an nginx image that is configured
|
||||||
to find the hello backend Service. Here is the nginx configuration file:
|
to find the hello backend Service. Here is the nginx configuration file:
|
||||||
|
|
||||||
{{< code file="frontend/frontend.conf" >}}
|
{{< codenew file="service/access/frontend.conf" >}}
|
||||||
|
|
||||||
Similar to the backend, the frontend has a Deployment and a Service. The
|
Similar to the backend, the frontend has a Deployment and a Service. The
|
||||||
configuration for the Service has `type: LoadBalancer`, which means that
|
configuration for the Service has `type: LoadBalancer`, which means that
|
||||||
the Service uses the default load balancer of your cloud provider.
|
the Service uses the default load balancer of your cloud provider.
|
||||||
|
|
||||||
{{< code file="frontend.yaml" >}}
|
{{< codenew file="service/access/frontend.yaml" >}}
|
||||||
|
|
||||||
Create the frontend Deployment and Service:
|
Create the frontend Deployment and Service:
|
||||||
|
|
||||||
```
|
```
|
||||||
kubectl create -f https://k8s.io/docs/tasks/access-application-cluster/frontend.yaml
|
kubectl create -f https://k8s.io/examples/service/access/frontend.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
The output verifies that both resources were created:
|
The output verifies that both resources were created:
|
||||||
@@ -149,7 +149,7 @@ service "frontend" created
|
|||||||
```
|
```
|
||||||
|
|
||||||
**Note**: The nginx configuration is baked into the
|
**Note**: The nginx configuration is baked into the
|
||||||
[container image](/docs/tasks/access-application-cluster/frontend/Dockerfile).
|
[container image](/examples/service/access/Dockerfile).
|
||||||
A better way to do this would be to use a
|
A better way to do this would be to use a
|
||||||
[ConfigMap](/docs/tasks/configure-pod-container/configure-pod-configmap/), so
|
[ConfigMap](/docs/tasks/configure-pod-container/configure-pod-configmap/), so
|
||||||
that you can change the configuration more easily.
|
that you can change the configuration more easily.
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
FROM alpine:3.1
|
|
||||||
MAINTAINER Carter Morgan <askcarter@google.com>
|
|
||||||
COPY hello /usr/bin/
|
|
||||||
CMD ["/usr/bin/hello"]
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
Build hello go binary first
|
|
||||||
|
|
||||||
go build -tags netgo -ldflags "-extldflags '-lm -lstdc++ -static'" .
|
|
||||||
|
|
||||||
Then build docker image
|
|
||||||
|
|
||||||
docker build -t hello .
|
|
||||||
@@ -1,74 +0,0 @@
|
|||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"flag"
|
|
||||||
"fmt"
|
|
||||||
"log"
|
|
||||||
"net/http"
|
|
||||||
"os"
|
|
||||||
"os/signal"
|
|
||||||
"syscall"
|
|
||||||
|
|
||||||
"github.com/braintree/manners"
|
|
||||||
"github.com/GoogleCloudPlatform/kubernetes-workshops/bundles/kubernetes-101/workshop/app/handlers"
|
|
||||||
"github.com/GoogleCloudPlatform/kubernetes-workshops/bundles/kubernetes-101/workshop/app/health"
|
|
||||||
)
|
|
||||||
|
|
||||||
const version = "1.0.0"
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
var (
|
|
||||||
httpAddr = flag.String("http", "0.0.0.0:80", "HTTP service address.")
|
|
||||||
healthAddr = flag.String("health", "0.0.0.0:81", "Health service address.")
|
|
||||||
)
|
|
||||||
flag.Parse()
|
|
||||||
|
|
||||||
log.Println("Starting server...")
|
|
||||||
log.Printf("Health service listening on %s", *healthAddr)
|
|
||||||
log.Printf("HTTP service listening on %s", *httpAddr)
|
|
||||||
|
|
||||||
errChan := make(chan error, 10)
|
|
||||||
|
|
||||||
hmux := http.NewServeMux()
|
|
||||||
hmux.HandleFunc("/healthz", health.HealthzHandler)
|
|
||||||
hmux.HandleFunc("/readiness", health.ReadinessHandler)
|
|
||||||
hmux.HandleFunc("/healthz/status", health.HealthzStatusHandler)
|
|
||||||
hmux.HandleFunc("/readiness/status", health.ReadinessStatusHandler)
|
|
||||||
healthServer := manners.NewServer()
|
|
||||||
healthServer.Addr = *healthAddr
|
|
||||||
healthServer.Handler = handlers.LoggingHandler(hmux)
|
|
||||||
|
|
||||||
go func() {
|
|
||||||
errChan <- healthServer.ListenAndServe()
|
|
||||||
}()
|
|
||||||
|
|
||||||
mux := http.NewServeMux()
|
|
||||||
mux.HandleFunc("/", handlers.HelloHandler)
|
|
||||||
mux.Handle("/secure", handlers.JWTAuthHandler(handlers.HelloHandler))
|
|
||||||
mux.Handle("/version", handlers.VersionHandler(version))
|
|
||||||
|
|
||||||
httpServer := manners.NewServer()
|
|
||||||
httpServer.Addr = *httpAddr
|
|
||||||
httpServer.Handler = handlers.LoggingHandler(mux)
|
|
||||||
|
|
||||||
go func() {
|
|
||||||
errChan <- httpServer.ListenAndServe()
|
|
||||||
}()
|
|
||||||
|
|
||||||
signalChan := make(chan os.Signal, 1)
|
|
||||||
signal.Notify(signalChan, syscall.SIGINT, syscall.SIGTERM)
|
|
||||||
|
|
||||||
for {
|
|
||||||
select {
|
|
||||||
case err := <-errChan:
|
|
||||||
if err != nil {
|
|
||||||
log.Fatal(err)
|
|
||||||
}
|
|
||||||
case s := <-signalChan:
|
|
||||||
log.Println(fmt.Sprintf("Captured %v. Exiting...", s))
|
|
||||||
health.SetReadinessStatus(http.StatusServiceUnavailable)
|
|
||||||
httpServer.BlockingClose()
|
|
||||||
os.Exit(0)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Pod
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
name: redis
|
|
||||||
redis-sentinel: "true"
|
|
||||||
role: master
|
|
||||||
name: redis-master
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: master
|
|
||||||
image: k8s.gcr.io/redis:v1
|
|
||||||
env:
|
|
||||||
- name: MASTER
|
|
||||||
value: "true"
|
|
||||||
ports:
|
|
||||||
- containerPort: 6379
|
|
||||||
resources:
|
|
||||||
limits:
|
|
||||||
cpu: "0.1"
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /redis-master-data
|
|
||||||
name: data
|
|
||||||
- name: sentinel
|
|
||||||
image: kubernetes/redis:v1
|
|
||||||
env:
|
|
||||||
- name: SENTINEL
|
|
||||||
value: "true"
|
|
||||||
ports:
|
|
||||||
- containerPort: 26379
|
|
||||||
volumes:
|
|
||||||
- name: data
|
|
||||||
emptyDir: {}
|
|
||||||
@@ -73,7 +73,7 @@ for this example. A [Deployment](/docs/concepts/workloads/controllers/deployment
|
|||||||
thereby making the scheduler resilient to failures. Here is the deployment
|
thereby making the scheduler resilient to failures. Here is the deployment
|
||||||
config. Save it as `my-scheduler.yaml`:
|
config. Save it as `my-scheduler.yaml`:
|
||||||
|
|
||||||
{{< code file="my-scheduler.yaml" >}}
|
{{< codenew file="admin/sched/my-scheduler.yaml" >}}
|
||||||
|
|
||||||
An important thing to note here is that the name of the scheduler specified as an
|
An important thing to note here is that the name of the scheduler specified as an
|
||||||
argument to the scheduler command in the container spec should be unique. This is the name that is matched against the value of the optional `spec.schedulerName` on pods, to determine whether this scheduler is responsible for scheduling a particular pod.
|
argument to the scheduler command in the container spec should be unique. This is the name that is matched against the value of the optional `spec.schedulerName` on pods, to determine whether this scheduler is responsible for scheduling a particular pod.
|
||||||
@@ -149,7 +149,7 @@ scheduler in that pod spec. Let's look at three examples.
|
|||||||
|
|
||||||
- Pod spec without any scheduler name
|
- Pod spec without any scheduler name
|
||||||
|
|
||||||
{{< code file="pod1.yaml" >}}
|
{{< codenew file="admin/sched/pod1.yaml" >}}
|
||||||
|
|
||||||
When no scheduler name is supplied, the pod is automatically scheduled using the
|
When no scheduler name is supplied, the pod is automatically scheduled using the
|
||||||
default-scheduler.
|
default-scheduler.
|
||||||
@@ -162,7 +162,7 @@ kubectl create -f pod1.yaml
|
|||||||
|
|
||||||
- Pod spec with `default-scheduler`
|
- Pod spec with `default-scheduler`
|
||||||
|
|
||||||
{{< code file="pod2.yaml" >}}
|
{{< codenew file="admin/sched/pod2.yaml" >}}
|
||||||
|
|
||||||
A scheduler is specified by supplying the scheduler name as a value to `spec.schedulerName`. In this case, we supply the name of the
|
A scheduler is specified by supplying the scheduler name as a value to `spec.schedulerName`. In this case, we supply the name of the
|
||||||
default scheduler which is `default-scheduler`.
|
default scheduler which is `default-scheduler`.
|
||||||
@@ -175,7 +175,7 @@ kubectl create -f pod2.yaml
|
|||||||
|
|
||||||
- Pod spec with `my-scheduler`
|
- Pod spec with `my-scheduler`
|
||||||
|
|
||||||
{{< code file="pod3.yaml" >}}
|
{{< codenew file="admin/sched/pod3.yaml" >}}
|
||||||
|
|
||||||
In this case, we specify that this pod should be scheduled using the scheduler that we
|
In this case, we specify that this pod should be scheduled using the scheduler that we
|
||||||
deployed - `my-scheduler`. Note that the value of `spec.schedulerName` should match the name supplied to the scheduler
|
deployed - `my-scheduler`. Note that the value of `spec.schedulerName` should match the name supplied to the scheduler
|
||||||
@@ -215,4 +215,4 @@ verify that the pods were scheduled by the desired schedulers.
|
|||||||
kubectl get events
|
kubectl get events
|
||||||
```
|
```
|
||||||
|
|
||||||
{{% /capture %}}
|
{{% /capture %}}
|
||||||
|
|||||||
@@ -22,12 +22,12 @@ This page provides hints on diagnosing DNS problems.
|
|||||||
|
|
||||||
Create a file named busybox.yaml with the following contents:
|
Create a file named busybox.yaml with the following contents:
|
||||||
|
|
||||||
{{< code file="busybox.yaml" >}}
|
{{< codenew file="admin/dns/busybox.yaml" >}}
|
||||||
|
|
||||||
Then create a pod using this file and verify its status:
|
Then create a pod using this file and verify its status:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
$ kubectl create -f busybox.yaml
|
$ kubectl create -f https://k8s.io/examples/admin/dns/busybox.yaml
|
||||||
pod "busybox" created
|
pod "busybox" created
|
||||||
|
|
||||||
$ kubectl get pods busybox
|
$ kubectl get pods busybox
|
||||||
|
|||||||
@@ -94,7 +94,7 @@ container based on the `cluster-proportional-autoscaler-amd64` image.
|
|||||||
|
|
||||||
Create a file named `dns-horizontal-autoscaler.yaml` with this content:
|
Create a file named `dns-horizontal-autoscaler.yaml` with this content:
|
||||||
|
|
||||||
{{< code file="dns-horizontal-autoscaler.yaml" >}}
|
{{< codenew file="admin/dns/dns-horizontal-autoscaler.yaml" >}}
|
||||||
|
|
||||||
In the file, replace `<SCALE_TARGET>` with your scale target.
|
In the file, replace `<SCALE_TARGET>` with your scale target.
|
||||||
|
|
||||||
|
|||||||
@@ -67,24 +67,24 @@ One pattern this organization could follow is to partition the Kubernetes cluste
|
|||||||
|
|
||||||
Let's create two new namespaces to hold our work.
|
Let's create two new namespaces to hold our work.
|
||||||
|
|
||||||
Use the file [`namespace-dev.json`](/docs/tasks/administer-cluster/namespace-dev.json) which describes a development namespace:
|
Use the file [`namespace-dev.json`](/examples/admin/namespace-dev.json) which describes a development namespace:
|
||||||
|
|
||||||
{{< code language="json" file="namespace-dev.json" >}}
|
{{< codenew language="json" file="admin/namespace-dev.json" >}}
|
||||||
|
|
||||||
Create the development namespace using kubectl.
|
Create the development namespace using kubectl.
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
$ kubectl create -f https://k8s.io/docs/tasks/administer-cluster/namespace-dev.json
|
$ kubectl create -f https://k8s.io/examples/admin/namespace-dev.json
|
||||||
```
|
```
|
||||||
|
|
||||||
Save the following contents into file [`namespace-prod.json`](/docs/tasks/administer-cluster/namespace-prod.json) which describes a production namespace:
|
Save the following contents into file [`namespace-prod.json`](/examples/admin/namespace-prod.json) which describes a production namespace:
|
||||||
|
|
||||||
{{< code language="json" file="namespace-prod.json" >}}
|
{{< codenew language="json" file="admin/namespace-prod.json" >}}
|
||||||
|
|
||||||
And then let's create the production namespace using kubectl.
|
And then let's create the production namespace using kubectl.
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
$ kubectl create -f https://k8s.io/docs/tasks/administer-cluster/namespace-prod.json
|
$ kubectl create -f https://k8s.io/examples/admin/namespace-prod.json
|
||||||
```
|
```
|
||||||
|
|
||||||
To be sure things are right, let's list all of the namespaces in our cluster.
|
To be sure things are right, let's list all of the namespaces in our cluster.
|
||||||
|
|||||||
@@ -140,20 +140,20 @@ One pattern this organization could follow is to partition the Kubernetes cluste
|
|||||||
|
|
||||||
Let's create two new namespaces to hold our work.
|
Let's create two new namespaces to hold our work.
|
||||||
|
|
||||||
Use the file [`namespace-dev.json`](/docs/tasks/administer-cluster/namespace-dev.json) which describes a development namespace:
|
Use the file [`namespace-dev.json`](/examples/admin/namespace-dev.json) which describes a development namespace:
|
||||||
|
|
||||||
{{< code language="json" file="namespace-dev.json" >}}
|
{{< codenew language="json" file="admin/namespace-dev.json" >}}
|
||||||
|
|
||||||
Create the development namespace using kubectl.
|
Create the development namespace using kubectl.
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
$ kubectl create -f docs/tasks/administer-cluster/namespace-dev.json
|
$ kubectl create -f https://k8s.io/examples/admin/namespace-dev.json
|
||||||
```
|
```
|
||||||
|
|
||||||
And then let's create the production namespace using kubectl.
|
And then let's create the production namespace using kubectl.
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
$ kubectl create -f docs/tasks/administer-cluster/namespace-prod.json
|
$ kubectl create -f https://k8s.io/examples/admin/namespace-prod.json
|
||||||
```
|
```
|
||||||
|
|
||||||
To be sure things are right, list all of the namespaces in our cluster.
|
To be sure things are right, list all of the namespaces in our cluster.
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ Successfully running cloud-controller-manager requires some changes to your clus
|
|||||||
since the cloud controller manager takes over labeling persistent volumes.
|
since the cloud controller manager takes over labeling persistent volumes.
|
||||||
* For the `cloud-controller-manager` to label persistent volumes, initializers will need to be enabled and an InitializerConifguration needs to be added to the system. Follow [these instructions](/docs/admin/extensible-admission-controllers.md#enable-initializers-alpha-feature) to enable initializers. Use the following YAML to create the InitializerConfiguration:
|
* For the `cloud-controller-manager` to label persistent volumes, initializers will need to be enabled and an InitializerConifguration needs to be added to the system. Follow [these instructions](/docs/admin/extensible-admission-controllers.md#enable-initializers-alpha-feature) to enable initializers. Use the following YAML to create the InitializerConfiguration:
|
||||||
|
|
||||||
{{< code file="persistent-volume-label-initializer-config.yaml" >}}
|
{{< codenew file="admin/cloud/pvl-initializer-config.yaml" >}}
|
||||||
|
|
||||||
Keep in mind that setting up your cluster to use cloud controller manager will change your cluster behaviour in a few ways:
|
Keep in mind that setting up your cluster to use cloud controller manager will change your cluster behaviour in a few ways:
|
||||||
|
|
||||||
@@ -71,7 +71,7 @@ For cloud controller managers not in Kubernetes core, you can find the respectiv
|
|||||||
|
|
||||||
For providers already in Kubernetes core, you can run the in-tree cloud controller manager as a Daemonset in your cluster, use the following as a guideline:
|
For providers already in Kubernetes core, you can run the in-tree cloud controller manager as a Daemonset in your cluster, use the following as a guideline:
|
||||||
|
|
||||||
{{< code file="cloud-controller-manager-daemonset-example.yaml" >}}
|
{{< codenew file="admin/cloud/ccm-example.yaml" >}}
|
||||||
|
|
||||||
|
|
||||||
## Limitations
|
## Limitations
|
||||||
|
|||||||
+88
-103
@@ -309,11 +309,6 @@ func TestExampleObjectSchemas(t *testing.T) {
|
|||||||
"docs/concepts/overview/working-with-objects": {
|
"docs/concepts/overview/working-with-objects": {
|
||||||
"nginx-deployment": {&extensions.Deployment{}},
|
"nginx-deployment": {&extensions.Deployment{}},
|
||||||
},
|
},
|
||||||
"docs/concepts/policy": {
|
|
||||||
"privileged-psp": {&policy.PodSecurityPolicy{}},
|
|
||||||
"restricted-psp": {&policy.PodSecurityPolicy{}},
|
|
||||||
"example-psp": {&policy.PodSecurityPolicy{}},
|
|
||||||
},
|
|
||||||
"docs/concepts/services-networking": {
|
"docs/concepts/services-networking": {
|
||||||
"curlpod": {&extensions.Deployment{}},
|
"curlpod": {&extensions.Deployment{}},
|
||||||
"custom-dns": {&api.Pod{}},
|
"custom-dns": {&api.Pod{}},
|
||||||
@@ -323,58 +318,27 @@ func TestExampleObjectSchemas(t *testing.T) {
|
|||||||
"nginx-svc": {&api.Service{}},
|
"nginx-svc": {&api.Service{}},
|
||||||
"run-my-nginx": {&extensions.Deployment{}},
|
"run-my-nginx": {&extensions.Deployment{}},
|
||||||
},
|
},
|
||||||
"docs/concepts/workloads/controllers": {
|
"docs/tutorials/clusters": {
|
||||||
"cronjob": {&batch.CronJob{}},
|
"hello-apparmor-pod": {&api.Pod{}},
|
||||||
"daemonset": {&extensions.DaemonSet{}},
|
|
||||||
"frontend": {&extensions.ReplicaSet{}},
|
|
||||||
"hpa-rs": {&autoscaling.HorizontalPodAutoscaler{}},
|
|
||||||
"job": {&batch.Job{}},
|
|
||||||
"nginx-deployment": {&extensions.Deployment{}},
|
|
||||||
"my-repset": {&extensions.ReplicaSet{}},
|
|
||||||
"replication": {&api.ReplicationController{}},
|
|
||||||
},
|
},
|
||||||
"docs/tasks/access-application-cluster": {
|
"docs/tutorials/configuration/configmap/redis": {
|
||||||
"frontend": {&api.Service{}, &extensions.Deployment{}},
|
"redis-pod": {&api.Pod{}},
|
||||||
"hello-service": {&api.Service{}},
|
|
||||||
"hello": {&extensions.Deployment{}},
|
|
||||||
"redis-master": {&api.Pod{}},
|
|
||||||
"two-container-pod": {&api.Pod{}},
|
|
||||||
},
|
},
|
||||||
"docs/tasks/administer-cluster": {
|
"docs/concepts/overview/object-management-kubectl": {
|
||||||
"busybox": {&api.Pod{}},
|
"simple_deployment": {&extensions.Deployment{}},
|
||||||
"cloud-controller-manager-daemonset-example": {&api.ServiceAccount{}, &rbac.ClusterRoleBinding{}, &extensions.DaemonSet{}},
|
"update_deployment": {&extensions.Deployment{}},
|
||||||
"dns-horizontal-autoscaler": {&extensions.Deployment{}},
|
|
||||||
"my-scheduler": {&api.ServiceAccount{}, &rbac.ClusterRoleBinding{}, &extensions.Deployment{}},
|
|
||||||
"namespace-dev": {&api.Namespace{}},
|
|
||||||
"namespace-prod": {&api.Namespace{}},
|
|
||||||
"persistent-volume-label-initializer-config": {&admissionregistration.InitializerConfiguration{}},
|
|
||||||
"pod1": {&api.Pod{}},
|
|
||||||
"pod2": {&api.Pod{}},
|
|
||||||
"pod3": {&api.Pod{}},
|
|
||||||
},
|
},
|
||||||
// TODO: decide whether federation examples should be added
|
"examples/admin": {
|
||||||
"docs/tasks/inject-data-application": {
|
"namespace-dev": {&api.Namespace{}},
|
||||||
"commands": {&api.Pod{}},
|
"namespace-prod": {&api.Namespace{}},
|
||||||
"dapi-envars-container": {&api.Pod{}},
|
},
|
||||||
"dapi-envars-pod": {&api.Pod{}},
|
"examples/admin/cloud": {
|
||||||
"dapi-volume": {&api.Pod{}},
|
"ccm-example": {&api.ServiceAccount{}, &rbac.ClusterRoleBinding{}, &extensions.DaemonSet{}},
|
||||||
"dapi-volume-resources": {&api.Pod{}},
|
"pvl-initializer-config": {&admissionregistration.InitializerConfiguration{}},
|
||||||
"envars": {&api.Pod{}},
|
},
|
||||||
"podpreset-allow-db": {&settings.PodPreset{}},
|
"examples/admin/dns": {
|
||||||
"podpreset-allow-db-merged": {&api.Pod{}},
|
"busybox": {&api.Pod{}},
|
||||||
"podpreset-configmap": {&api.ConfigMap{}},
|
"dns-horizontal-autoscaler": {&extensions.Deployment{}},
|
||||||
"podpreset-conflict-pod": {&api.Pod{}},
|
|
||||||
"podpreset-conflict-preset": {&settings.PodPreset{}},
|
|
||||||
"podpreset-merged": {&api.Pod{}},
|
|
||||||
"podpreset-multi-merged": {&api.Pod{}},
|
|
||||||
"podpreset-pod": {&api.Pod{}},
|
|
||||||
"podpreset-preset": {&settings.PodPreset{}},
|
|
||||||
"podpreset-proxy": {&settings.PodPreset{}},
|
|
||||||
"podpreset-replicaset-merged": {&api.Pod{}},
|
|
||||||
"podpreset-replicaset": {&extensions.ReplicaSet{}},
|
|
||||||
"secret": {&api.Secret{}},
|
|
||||||
"secret-envars-pod": {&api.Pod{}},
|
|
||||||
"secret-pod": {&api.Pod{}},
|
|
||||||
},
|
},
|
||||||
"examples/admin/resource": {
|
"examples/admin/resource": {
|
||||||
"cpu-constraints": {&api.LimitRange{}},
|
"cpu-constraints": {&api.LimitRange{}},
|
||||||
@@ -404,17 +368,11 @@ func TestExampleObjectSchemas(t *testing.T) {
|
|||||||
"quota-pod": {&api.ResourceQuota{}},
|
"quota-pod": {&api.ResourceQuota{}},
|
||||||
"quota-pod-deployment": {&extensions.Deployment{}},
|
"quota-pod-deployment": {&extensions.Deployment{}},
|
||||||
},
|
},
|
||||||
"examples/application/job": {
|
"examples/admin/sched": {
|
||||||
"job-tmpl": {&batch.Job{}},
|
"my-scheduler": {&api.ServiceAccount{}, &rbac.ClusterRoleBinding{}, &extensions.Deployment{}},
|
||||||
"cronjob": {&batch.CronJob{}},
|
"pod1": {&api.Pod{}},
|
||||||
},
|
"pod2": {&api.Pod{}},
|
||||||
"examples/application/job/rabbitmq": {
|
"pod3": {&api.Pod{}},
|
||||||
"job": {&batch.Job{}},
|
|
||||||
},
|
|
||||||
"examples/application/job/redis": {
|
|
||||||
"job": {&batch.Job{}},
|
|
||||||
"redis-pod": {&api.Pod{}},
|
|
||||||
"redis-service": {&api.Service{}},
|
|
||||||
},
|
},
|
||||||
"examples/application": {
|
"examples/application": {
|
||||||
"deployment": {&extensions.Deployment{}},
|
"deployment": {&extensions.Deployment{}},
|
||||||
@@ -424,6 +382,10 @@ func TestExampleObjectSchemas(t *testing.T) {
|
|||||||
"nginx-with-request": {&extensions.Deployment{}},
|
"nginx-with-request": {&extensions.Deployment{}},
|
||||||
"shell-demo": {&api.Pod{}},
|
"shell-demo": {&api.Pod{}},
|
||||||
},
|
},
|
||||||
|
"examples/application/cassandra": {
|
||||||
|
"cassandra-service": {&api.Service{}},
|
||||||
|
"cassandra-statefulset": {&apps.StatefulSet{}, &storage.StorageClass{}},
|
||||||
|
},
|
||||||
"examples/application/guestbook": {
|
"examples/application/guestbook": {
|
||||||
"frontend-deployment": {&extensions.Deployment{}},
|
"frontend-deployment": {&extensions.Deployment{}},
|
||||||
"frontend-service": {&api.Service{}},
|
"frontend-service": {&api.Service{}},
|
||||||
@@ -432,9 +394,27 @@ func TestExampleObjectSchemas(t *testing.T) {
|
|||||||
"redis-slave-deployment": {&extensions.Deployment{}},
|
"redis-slave-deployment": {&extensions.Deployment{}},
|
||||||
"redis-slave-service": {&api.Service{}},
|
"redis-slave-service": {&api.Service{}},
|
||||||
},
|
},
|
||||||
"examples/application/cassandra": {
|
"examples/application/hpa": {
|
||||||
"cassandra-service": {&api.Service{}},
|
"php-apache": {&autoscaling.HorizontalPodAutoscaler{}},
|
||||||
"cassandra-statefulset": {&apps.StatefulSet{}, &storage.StorageClass{}},
|
},
|
||||||
|
"examples/application/job": {
|
||||||
|
"cronjob": {&batch.CronJob{}},
|
||||||
|
"job-tmpl": {&batch.Job{}},
|
||||||
|
},
|
||||||
|
"examples/application/job/rabbitmq": {
|
||||||
|
"job": {&batch.Job{}},
|
||||||
|
},
|
||||||
|
"examples/application/job/redis": {
|
||||||
|
"job": {&batch.Job{}},
|
||||||
|
"redis-pod": {&api.Pod{}},
|
||||||
|
"redis-service": {&api.Service{}},
|
||||||
|
},
|
||||||
|
"examples/application/mysql": {
|
||||||
|
"mysql-configmap": {&api.ConfigMap{}},
|
||||||
|
"mysql-deployment": {&api.Service{}, &extensions.Deployment{}},
|
||||||
|
"mysql-pv": {&api.PersistentVolume{}, &api.PersistentVolumeClaim{}},
|
||||||
|
"mysql-services": {&api.Service{}, &api.Service{}},
|
||||||
|
"mysql-statefulset": {&apps.StatefulSet{}},
|
||||||
},
|
},
|
||||||
"examples/application/web": {
|
"examples/application/web": {
|
||||||
"web": {&api.Service{}, &apps.StatefulSet{}},
|
"web": {&api.Service{}, &apps.StatefulSet{}},
|
||||||
@@ -456,6 +436,29 @@ func TestExampleObjectSchemas(t *testing.T) {
|
|||||||
"replication": {&api.ReplicationController{}},
|
"replication": {&api.ReplicationController{}},
|
||||||
"nginx-deployment": {&extensions.Deployment{}},
|
"nginx-deployment": {&extensions.Deployment{}},
|
||||||
},
|
},
|
||||||
|
"examples/debug": {
|
||||||
|
"counter-pod": {&api.Pod{}},
|
||||||
|
"event-exporter": {&api.ServiceAccount{}, &rbac.ClusterRoleBinding{}, &extensions.Deployment{}},
|
||||||
|
"fluentd-gcp-configmap": {&api.ConfigMap{}},
|
||||||
|
"fluentd-gcp-ds": {&extensions.DaemonSet{}},
|
||||||
|
"node-problem-detector": {&extensions.DaemonSet{}},
|
||||||
|
"node-problem-detector-configmap": {&extensions.DaemonSet{}},
|
||||||
|
"termination": {&api.Pod{}},
|
||||||
|
},
|
||||||
|
"examples/podpreset": {
|
||||||
|
"allow-db": {&settings.PodPreset{}},
|
||||||
|
"allow-db-merged": {&api.Pod{}},
|
||||||
|
"configmap": {&api.ConfigMap{}},
|
||||||
|
"conflict-pod": {&api.Pod{}},
|
||||||
|
"conflict-preset": {&settings.PodPreset{}},
|
||||||
|
"merged": {&api.Pod{}},
|
||||||
|
"multi-merged": {&api.Pod{}},
|
||||||
|
"pod": {&api.Pod{}},
|
||||||
|
"preset": {&settings.PodPreset{}},
|
||||||
|
"proxy": {&settings.PodPreset{}},
|
||||||
|
"replicaset-merged": {&api.Pod{}},
|
||||||
|
"replicaset": {&extensions.ReplicaSet{}},
|
||||||
|
},
|
||||||
"examples/pods": {
|
"examples/pods": {
|
||||||
"commands": {&api.Pod{}},
|
"commands": {&api.Pod{}},
|
||||||
"init-containers": {&api.Pod{}},
|
"init-containers": {&api.Pod{}},
|
||||||
@@ -465,6 +468,17 @@ func TestExampleObjectSchemas(t *testing.T) {
|
|||||||
"pod-with-pod-affinity": {&api.Pod{}},
|
"pod-with-pod-affinity": {&api.Pod{}},
|
||||||
"private-reg-pod": {&api.Pod{}},
|
"private-reg-pod": {&api.Pod{}},
|
||||||
"share-process-namespace": {&api.Pod{}},
|
"share-process-namespace": {&api.Pod{}},
|
||||||
|
"two-container-pod": {&api.Pod{}},
|
||||||
|
},
|
||||||
|
"examples/pods/inject": {
|
||||||
|
"dapi-envars-container": {&api.Pod{}},
|
||||||
|
"dapi-envars-pod": {&api.Pod{}},
|
||||||
|
"dapi-volume": {&api.Pod{}},
|
||||||
|
"dapi-volume-resources": {&api.Pod{}},
|
||||||
|
"envars": {&api.Pod{}},
|
||||||
|
"secret": {&api.Secret{}},
|
||||||
|
"secret-envars-pod": {&api.Pod{}},
|
||||||
|
"secret-pod": {&api.Pod{}},
|
||||||
},
|
},
|
||||||
"examples/pods/probe": {
|
"examples/pods/probe": {
|
||||||
"exec-liveness": {&api.Pod{}},
|
"exec-liveness": {&api.Pod{}},
|
||||||
@@ -480,11 +494,11 @@ func TestExampleObjectSchemas(t *testing.T) {
|
|||||||
"examples/pods/resource": {
|
"examples/pods/resource": {
|
||||||
"cpu-request-limit": {&api.Pod{}},
|
"cpu-request-limit": {&api.Pod{}},
|
||||||
"cpu-request-limit-2": {&api.Pod{}},
|
"cpu-request-limit-2": {&api.Pod{}},
|
||||||
|
"extended-resource-pod": {&api.Pod{}},
|
||||||
|
"extended-resource-pod-2": {&api.Pod{}},
|
||||||
"memory-request-limit": {&api.Pod{}},
|
"memory-request-limit": {&api.Pod{}},
|
||||||
"memory-request-limit-2": {&api.Pod{}},
|
"memory-request-limit-2": {&api.Pod{}},
|
||||||
"memory-request-limit-3": {&api.Pod{}},
|
"memory-request-limit-3": {&api.Pod{}},
|
||||||
"extended-resource-pod": {&api.Pod{}},
|
|
||||||
"extended-resource-pod-2": {&api.Pod{}},
|
|
||||||
},
|
},
|
||||||
"examples/pods/security": {
|
"examples/pods/security": {
|
||||||
"security-context": {&api.Pod{}},
|
"security-context": {&api.Pod{}},
|
||||||
@@ -504,39 +518,10 @@ func TestExampleObjectSchemas(t *testing.T) {
|
|||||||
"restricted-psp": {&policy.PodSecurityPolicy{}},
|
"restricted-psp": {&policy.PodSecurityPolicy{}},
|
||||||
"example-psp": {&policy.PodSecurityPolicy{}},
|
"example-psp": {&policy.PodSecurityPolicy{}},
|
||||||
},
|
},
|
||||||
"docs/tasks/run-application": {
|
"examples/service/access": {
|
||||||
"deployment-patch-demo": {&extensions.Deployment{}},
|
"frontend": {&api.Service{}, &extensions.Deployment{}},
|
||||||
"hpa-php-apache": {&autoscaling.HorizontalPodAutoscaler{}},
|
"hello-service": {&api.Service{}},
|
||||||
},
|
"hello": {&extensions.Deployment{}},
|
||||||
"examples/debug": {
|
|
||||||
"counter-pod": {&api.Pod{}},
|
|
||||||
"event-exporter": {&api.ServiceAccount{}, &rbac.ClusterRoleBinding{}, &extensions.Deployment{}},
|
|
||||||
"fluentd-gcp-configmap": {&api.ConfigMap{}},
|
|
||||||
"fluentd-gcp-ds": {&extensions.DaemonSet{}},
|
|
||||||
"node-problem-detector": {&extensions.DaemonSet{}},
|
|
||||||
"node-problem-detector-configmap": {&extensions.DaemonSet{}},
|
|
||||||
"termination": {&api.Pod{}},
|
|
||||||
},
|
|
||||||
"examples/application/mysql": {
|
|
||||||
"mysql-configmap": {&api.ConfigMap{}},
|
|
||||||
"mysql-deployment": {&api.Service{}, &extensions.Deployment{}},
|
|
||||||
"mysql-pv": {&api.PersistentVolume{}, &api.PersistentVolumeClaim{}},
|
|
||||||
"mysql-services": {&api.Service{}, &api.Service{}},
|
|
||||||
"mysql-statefulset": {&apps.StatefulSet{}},
|
|
||||||
},
|
|
||||||
"examples/application/hpa": {
|
|
||||||
"php-apache": {&autoscaling.HorizontalPodAutoscaler{}},
|
|
||||||
},
|
|
||||||
"docs/tutorials/clusters": {
|
|
||||||
"hello-apparmor-pod": {&api.Pod{}},
|
|
||||||
"my-scheduler": {&extensions.Deployment{}},
|
|
||||||
},
|
|
||||||
"docs/tutorials/configuration/configmap/redis": {
|
|
||||||
"redis-pod": {&api.Pod{}},
|
|
||||||
},
|
|
||||||
"docs/concepts/overview/object-management-kubectl": {
|
|
||||||
"simple_deployment": {&extensions.Deployment{}},
|
|
||||||
"update_deployment": {&extensions.Deployment{}},
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user