Skip to content
Permalink
Browse files

Consolidate YAML files [part-15] (#9380)

This is the last PR for moving the YAML/JSON sample files. There still
need some follow up PRs to:
- rename the `codenew` shortcode to `code`.
- move the examples_test.go to where it really belongs.
  • Loading branch information...
tengqm authored and k8s-ci-robot committed Jul 10, 2018
1 parent 99a77ff commit 472be9a374ad76b370a8804baab39666e2b5459b
Showing with 169 additions and 194 deletions.
  1. +4 −4 content/en/docs/concepts/cluster-administration/logging.md
  2. +11 −11 content/en/docs/concepts/cluster-administration/manage-deployment.md
  3. +0 −19 content/en/docs/concepts/cluster-administration/nginx-deployment.yaml
  4. +0 −10 content/en/docs/tasks/federation/Values.yaml
  5. +12 −1 content/en/docs/tasks/federation/set-up-coredns-provider-federation.md
  6. +4 −4 content/en/docs/tasks/federation/set-up-placement-policies-federation.md
  7. +2 −2 content/en/docs/tutorials/clusters/apparmor.md
  8. +50 −79 content/en/docs/tutorials/configuration/configure-redis-using-configmap.md
  9. +3 −3 ...nt/en/{docs/concepts/cluster-administration → examples/admin/logging}/fluentd-sidecar-config.yaml
  10. 0 ...oncepts/cluster-administration → examples/admin/logging}/two-files-counter-pod-agent-sidecar.yaml
  11. 0 ...pts/cluster-administration → examples/admin/logging}/two-files-counter-pod-streaming-sidecar.yaml
  12. 0 ...ent/en/{docs/concepts/cluster-administration → examples/admin/logging}/two-files-counter-pod.yaml
  13. 0 content/en/{docs/concepts/cluster-administration → examples/application}/nginx-app.yaml
  14. 0 content/en/{docs/concepts/cluster-administration → examples/application}/nginx/nginx-deployment.yaml
  15. 0 content/en/{docs/concepts/cluster-administration → examples/application}/nginx/nginx-svc.yaml
  16. +3 −0 content/en/{docs/tasks → examples}/federation/policy-engine-deployment.yaml
  17. 0 content/en/{docs/tasks → examples}/federation/policy-engine-service.yaml
  18. 0 content/en/{docs/tasks → examples}/federation/replicaset-example-policy.yaml
  19. 0 content/en/{docs/tasks → examples}/federation/scheduling-policy-admission.yaml
  20. 0 content/en/{docs/tutorials/configuration/configmap/redis → examples/pods/config}/redis-config
  21. 0 content/en/{docs/tutorials/configuration/configmap/redis → examples/pods/config}/redis-pod.yaml
  22. 0 ...en/{docs/tutorials/clusters/hello-apparmor-pod.yaml → examples/pods/security/hello-apparmor.yaml}
  23. +80 −61 test/examples_test.go
@@ -160,7 +160,7 @@ Consider the following example. A pod runs a single container, and the container
writes to two different log files, using two different formats. Here's a
configuration file for the Pod:

{{< code file="two-files-counter-pod.yaml" >}}
{{< codenew file="admin/logging/two-files-counter-pod.yaml" >}}

It would be a mess to have log entries of different formats in the same log
stream, even if you managed to redirect both components to the `stdout` stream of
@@ -170,7 +170,7 @@ the logs to its own `stdout` stream.

Here's a configuration file for a pod that has two sidecar containers:

{{< code file="two-files-counter-pod-streaming-sidecar.yaml" >}}
{{< codenew file="admin/logging/two-files-counter-pod-streaming-sidecar.yaml" >}}

Now when you run this pod, you can access each log stream separately by
running the following commands:
@@ -226,7 +226,7 @@ which uses fluentd as a logging agent. Here are two configuration files that
you can use to implement this approach. The first file contains
a [ConfigMap](/docs/tasks/configure-pod-container/configure-pod-configmap/) to configure fluentd.

{{< code file="fluentd-sidecar-config.yaml" >}}
{{< codenew file="admin/logging/fluentd-sidecar-config.yaml" >}}

**Note**: The configuration of fluentd is beyond the scope of this article. For
information about configuring fluentd, see the
@@ -235,7 +235,7 @@ information about configuring fluentd, see the
The second file describes a pod that has a sidecar container running fluentd.
The pod mounts a volume where fluentd can pick up its configuration data.

{{< code file="two-files-counter-pod-agent-sidecar.yaml" >}}
{{< codenew file="admin/logging/two-files-counter-pod-agent-sidecar.yaml" >}}

After some time you can find log messages in the Stackdriver interface.

@@ -22,12 +22,12 @@ You've deployed your application and exposed it via a service. Now what? Kuberne

Many applications require multiple resources to be created, such as a Deployment and a Service. Management of multiple resources can be simplified by grouping them together in the same file (separated by `---` in YAML). For example:

{{< code file="nginx-app.yaml" >}}
{{< codenew file="application/nginx-app.yaml" >}}

Multiple resources can be created the same way as a single resource:

```shell
$ kubectl create -f https://k8s.io/docs/concepts/cluster-administration/nginx-app.yaml
$ kubectl create -f https://k8s.io/examples/application/nginx-app.yaml
service "my-nginx-svc" created
deployment "my-nginx" created
```
@@ -37,13 +37,13 @@ The resources will be created in the order they appear in the file. Therefore, i
`kubectl create` also accepts multiple `-f` arguments:

```shell
$ kubectl create -f https://k8s.io/docs/concepts/cluster-administration/nginx/nginx-svc.yaml -f https://k8s.io/docs/concepts/cluster-administration/nginx/nginx-deployment.yaml
$ kubectl create -f https://k8s.io/examples/application/nginx/nginx-svc.yaml -f https://k8s.io/examples/application/nginx/nginx-deployment.yaml
```

And a directory can be specified rather than or in addition to individual files:

```shell
$ kubectl create -f https://k8s.io/docs/concepts/cluster-administration/nginx/
$ kubectl create -f https://k8s.io/examples/application/nginx/
```

`kubectl` will read any files with suffixes `.yaml`, `.yml`, or `.json`.
@@ -53,16 +53,16 @@ It is a recommended practice to put resources related to the same microservice o
A URL can also be specified as a configuration source, which is handy for deploying directly from configuration files checked into github:

```shell
$ kubectl create -f https://raw.githubusercontent.com/kubernetes/website/master/docs/concepts/cluster-administration/nginx-deployment.yaml
deployment "nginx-deployment" created
$ kubectl create -f https://raw.githubusercontent.com/kubernetes/website/master/content/en/examples/application/nginx/nginx-deployment.yaml
deployment "my-nginx" created
```

## Bulk operations in kubectl

Resource creation isn't the only operation that `kubectl` can perform in bulk. It can also extract resource names from configuration files in order to perform other operations, in particular to delete the same resources you created:

```shell
$ kubectl delete -f https://k8s.io/docs/concepts/cluster-administration/nginx-app.yaml
$ kubectl delete -f https://k8s.io/examples/application/nginx-app.yaml
deployment "my-nginx" deleted
service "my-nginx-svc" deleted
```
@@ -89,7 +89,7 @@ NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
my-nginx-svc 10.0.0.208 <pending> 80/TCP 0s
```

With the above commands, we first create resources under `docs/concepts/cluster-administration/nginx/` and print the resources created with `-o name` output format
With the above commands, we first create resources under `examples/application/nginx/` and print the resources created with `-o name` output format
(print each resource as resource/name). Then we `grep` only the "service", and then print it with `kubectl get`.

If you happen to organize your resources across several subdirectories within a particular directory, you can recursively perform the operations on the subdirectories also, by specifying `--recursive` or `-R` alongside the `--filename,-f` flag.
@@ -321,7 +321,7 @@ Then, you can use [`kubectl apply`](/docs/reference/generated/kubectl/kubectl-co
This command will compare the version of the configuration that you're pushing with the previous version and apply the changes you've made, without overwriting any automated changes to properties you haven't specified.

```shell
$ kubectl apply -f docs/concepts/cluster-administration/nginx/nginx-deployment.yaml
$ kubectl apply -f https://k8s.io/examples/application/nginx/nginx-deployment.yaml
deployment "my-nginx" configured
```

@@ -371,7 +371,7 @@ and
In some cases, you may need to update resource fields that cannot be updated once initialized, or you may just want to make a recursive change immediately, such as to fix broken pods created by a Deployment. To change such fields, use `replace --force`, which deletes and re-creates the resource. In this case, you can simply modify your original configuration file:

```shell
$ kubectl replace -f docs/concepts/cluster-administration/nginx/nginx-deployment.yaml --force
$ kubectl replace -f https://k8s.io/examples/application/nginx/nginx-deployment.yaml --force
deployment "my-nginx" deleted
deployment "my-nginx" replaced
```
@@ -405,4 +405,4 @@ That's it! The Deployment will declaratively update the deployed nginx applicati
- [Learn about how to use `kubectl` for application introspection and debugging.](/docs/tasks/debug-application-cluster/debug-application-introspection/)
- [Configuration Best Practices and Tips](/docs/concepts/configuration/overview/)

{{% /capture %}}
{{% /capture %}}

This file was deleted.

Oops, something went wrong.

This file was deleted.

Oops, something went wrong.
@@ -60,7 +60,18 @@ The CoreDNS default configuration should be customized to suit the federation.
Shown below is the Values.yaml, which overrides the default
configuration parameters on the CoreDNS chart.

{{< code file="Values.yaml" >}}
```yaml
isClusterService: false
serviceType: "LoadBalancer"
plugins:
kubernetes:
enabled: false
etcd:
enabled: true
zones:
- "example.com."
endpoint: "http://etcd-cluster.my-namespace:2379"
```

The above configuration file needs some explanation:

@@ -34,7 +34,7 @@ received from the external policy engine.

Shown below is an example ConfigMap for the Admission Controller:

{{< code file="scheduling-policy-admission.yaml" >}}
{{< codenew file="federation/scheduling-policy-admission.yaml" >}}

The ConfigMap contains three files:

@@ -84,15 +84,15 @@ Create a Service in the host cluster to contact the external policy engine:

Shown below is an example Service for OPA.

{{< code file="policy-engine-service.yaml" >}}
{{< codenew file="federation/policy-engine-service.yaml" >}}

Create a Deployment in the host cluster with the Federation control plane:

kubectl create -f policy-engine-deployment.yaml

Shown below is an example Deployment for OPA.

{{< code file="policy-engine-deployment.yaml" >}}
{{< codenew file="federation/policy-engine-deployment.yaml" >}}

## Configuring placement policies via ConfigMaps

@@ -128,7 +128,7 @@ Annotate one of the clusters to indicate that it is PCI certified.

Deploy a Federated ReplicaSet to test the placement policy.

{{< code file="replicaset-example-policy.yaml" >}}
{{< codenew file="federation/replicaset-example-policy.yaml" >}}

Shown below is the command to deploy a ReplicaSet that *does* match the policy.

@@ -191,10 +191,10 @@ done

Next, we'll run a simple "Hello AppArmor" pod with the deny-write profile:

{{< code file="hello-apparmor-pod.yaml" >}}
{{< codenew file="pods/security/hello-apparmor.yaml" >}}

```shell
$ kubectl create -f ./hello-apparmor-pod.yaml
$ kubectl create -f ./hello-apparmor.yaml
```

If we look at the pod events, we can see that the Pod container was created with the AppArmor
@@ -35,85 +35,56 @@ This page provides a real world example of how to configure Redis using a Config

You can follow the steps below to configure a Redis cache using data stored in a ConfigMap.

1. Create a ConfigMap from the `docs/tutorials/configuration/configmap/redis/redis-config` file:

```shell
kubectl create configmap example-redis-config --from-file=https://k8s.io/docs/tutorials/configuration/configmap/redis/redis-config
kubectl get configmap example-redis-config -o yaml
```

```yaml
apiVersion: v1
data:
redis-config: |
maxmemory 2mb
maxmemory-policy allkeys-lru
kind: ConfigMap
metadata:
creationTimestamp: 2016-03-30T18:14:41Z
name: example-redis-config
namespace: default
resourceVersion: "24686"
selfLink: /api/v1/namespaces/default/configmaps/example-redis-config
uid: 460a2b6e-f6a3-11e5-8ae5-42010af00002
```

1. Create a pod specification that uses the config data stored in the ConfigMap:

```yaml
apiVersion: v1
kind: Pod
metadata:
name: redis
spec:
containers:
- name: redis
image: kubernetes/redis:v1
env:
- name: MASTER
value: "true"
ports:
- containerPort: 6379
resources:
limits:
cpu: "0.1"
volumeMounts:
- mountPath: /redis-master-data
name: data
- mountPath: /redis-master
name: config
volumes:
- name: data
emptyDir: {}
- name: config
configMap:
name: example-redis-config
items:
- key: redis-config
path: redis.conf
```
1. Create the pod:

```shell
kubectl create -f https://k8s.io/docs/tutorials/configuration/configmap/redis/redis-pod.yaml
```

In the example, the config volume is mounted at `/redis-master`.
It uses `path` to add the `redis-config` key to a file named `redis.conf`.
The file path for the redis config, therefore, is `/redis-master/redis.conf`.
This is where the image will look for the config file for the redis master.

1. Use `kubectl exec` to enter the pod and run the `redis-cli` tool to verify that the configuration was correctly applied:

```shell
kubectl exec -it redis redis-cli
127.0.0.1:6379> CONFIG GET maxmemory
1) "maxmemory"
2) "2097152"
127.0.0.1:6379> CONFIG GET maxmemory-policy
1) "maxmemory-policy"
2) "allkeys-lru"
```
First create a ConfigMap from the `examples/pods/config/redis-config` file:

```shell
kubectl create configmap example-redis-config --from-file=https://k8s.io/examples/pods/config/redis-config
kubectl get configmap example-redis-config -o yaml
```

```yaml
apiVersion: v1
data:
redis-config: |
maxmemory 2mb
maxmemory-policy allkeys-lru
kind: ConfigMap
metadata:
creationTimestamp: 2016-03-30T18:14:41Z
name: example-redis-config
namespace: default
resourceVersion: "24686"
selfLink: /api/v1/namespaces/default/configmaps/example-redis-config
uid: 460a2b6e-f6a3-11e5-8ae5-42010af00002
```

Now create a pod specification that uses the config data stored in the ConfigMap:

{{< codenew file="pods/config/redis-pod.yaml" >}}

Create the pod:

```shell
kubectl create -f https://k8s.io/examples/pods/config/redis-pod.yaml
```

In the example, the config volume is mounted at `/redis-master`.
It uses `path` to add the `redis-config` key to a file named `redis.conf`.
The file path for the redis config, therefore, is `/redis-master/redis.conf`.
This is where the image will look for the config file for the redis master.

Use `kubectl exec` to enter the pod and run the `redis-cli` tool to verify that
the configuration was correctly applied:

```shell
kubectl exec -it redis redis-cli
127.0.0.1:6379> CONFIG GET maxmemory
1) "maxmemory"
2) "2097152"
127.0.0.1:6379> CONFIG GET maxmemory-policy
1) "maxmemory-policy"
2) "allkeys-lru"
```

{{% /capture %}}

@@ -1,4 +1,7 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: fluentd-config
data:
fluentd.conf: |
<source>
@@ -20,6 +23,3 @@ data:
<match **>
type google_cloud
</match>
kind: ConfigMap
metadata:
name: fluentd-config
@@ -7,6 +7,9 @@ metadata:
namespace: federation-system
spec:
replicas: 1
selector:
matchLabels:
app: opa
template:
metadata:
labels:
Oops, something went wrong.

0 comments on commit 472be9a

Please sign in to comment.
You can’t perform that action at this time.