Merge pull request #1307 from kubernetes/release-1.4
Publish documentation changes related to Kubernetes 1.4 release
This commit is contained in:
		
						commit
						1cc3c16994
					
				|  | @ -8,10 +8,12 @@ toc: | |||
|   section: | ||||
|   - title: What is Kubernetes? | ||||
|     path: /docs/whatisk8s/ | ||||
|   - title: Installing Kubernetes on Linux with kubeadm | ||||
|     path: /docs/getting-started-guides/kubeadm/ | ||||
|   - title: Hello World on Google Container Engine | ||||
|     path: /docs/hellonode/ | ||||
|   - title: Downloading or Building Kubernetes | ||||
|     path: /docs/getting-started-guides/binary_release/ | ||||
|   - title: Hello World Walkthrough | ||||
|     path: /docs/hellonode/ | ||||
|   - title: Online Training Course | ||||
|     path: https://www.udacity.com/course/scalable-microservices-with-kubernetes--ud615 | ||||
| 
 | ||||
|  | @ -58,8 +60,14 @@ toc: | |||
|     path: /docs/user-guide/config-best-practices/ | ||||
|   - title: Using kubectl to Manage Resources | ||||
|     path: /docs/user-guide/working-with-resources/ | ||||
|   - title: Garbage collection | ||||
|     path: /docs/user-guide/garbage-collector/ | ||||
|   - title: Garbage Collection (Beta) | ||||
|     path: /docs/user-guide/garbage-collection/ | ||||
|   - title: Using NetworkPolicy | ||||
|     section: | ||||
|     - title: Example Walkthrough | ||||
|       path: /docs/getting-started-guides/network-policy/walkthrough/ | ||||
|     - title: Using Calico for NetworkPolicy  | ||||
|       path: /docs/getting-started-guides/network-policy/calico/ | ||||
| 
 | ||||
| - title: Batch Jobs | ||||
|   section: | ||||
|  | @ -227,6 +235,8 @@ toc: | |||
|         path: /docs/getting-started-guides/ubuntu/ | ||||
|       - title: Ubuntu Nodes with Calico | ||||
|         path: /docs/getting-started-guides/ubuntu-calico/ | ||||
|     - title: Validate Node Setup | ||||
|       path: /docs/admin/node-conformance | ||||
|   - title: Portable Multi-Node Cluster | ||||
|     path: /docs/getting-started-guides/docker-multinode/ | ||||
|   - title: Building Large Clusters | ||||
|  | @ -242,6 +252,8 @@ toc: | |||
|     path: /docs/admin/ | ||||
|   - title: Cluster Management Guide | ||||
|     path: /docs/admin/cluster-management/ | ||||
|   - title: Installing Addons | ||||
|     path: /docs/admin/addons/ | ||||
|   - title: Sharing a Cluster with Namespaces | ||||
|     path: /docs/admin/namespaces/ | ||||
|   - title: Namespaces Walkthrough | ||||
|  | @ -284,3 +296,5 @@ toc: | |||
|     path: /docs/admin/salt/ | ||||
|   - title: Monitoring Node Health | ||||
|     path: /docs/admin/node-problem/ | ||||
|   - title: AppArmor | ||||
|     path: /docs/admin/apparmor/ | ||||
|  |  | |||
|  | @ -8,10 +8,11 @@ overrides: | |||
| - path: docs/admin/kube-proxy.md | ||||
| - path: docs/admin/kube-scheduler.md | ||||
| - path: docs/admin/kubelet.md | ||||
| - changedpath: docs/api-reference/extensions/v1beta1/definitions.html _includes/v1.3/extensions-v1beta1-definitions.html | ||||
| - changedpath: docs/api-reference/extensions/v1beta1/operations.html _includes/v1.3/extensions-v1beta1-operations.html | ||||
| - changedpath: docs/api-reference/v1/definitions.html _includes/v1.3/v1-definitions.html | ||||
| - changedpath: docs/api-reference/v1/operations.html _includes/v1.3/v1-operations.html | ||||
| - changedpath: docs/api-reference/extensions/v1beta1/definitions.html _includes/v1.4/extensions-v1beta1-definitions.html | ||||
| - changedpath: docs/api-reference/extensions/v1beta1/operations.html _includes/v1.4/extensions-v1beta1-operations.html | ||||
| - changedpath: docs/api-reference/v1/definitions.html _includes/v1.4/v1-definitions.html | ||||
| - changedpath: docs/api-reference/v1/operations.html _includes/v1.4/v1-operations.html | ||||
| - copypath: k8s/federation/docs/api-reference/ docs/federation/ | ||||
| - copypath: k8s/cluster/saltbase/salt/fluentd-gcp/fluentd-gcp.yaml docs/getting-started-guides/fluentd-gcp.yaml | ||||
| - copypath: k8s/examples/blog-logging/counter-pod.yaml docs/getting-started-guides/counter-pod.yaml | ||||
| - copypath: k8s/examples/blog-logging/counter-pod.yaml docs/user-guide/counter-pod.yaml | ||||
|  |  | |||
|  | @ -212,12 +212,16 @@ toc: | |||
|     path: /docs/user-guide/petset/     | ||||
|   - title: Pods | ||||
|     path: /docs/user-guide/pods/ | ||||
|   - title: Pod Security Policies | ||||
|     path: /docs/user-guide/pod-security-policy/ | ||||
|   - title: Replica Sets | ||||
|     path: /docs/user-guide/replicasets/ | ||||
|   - title: Replication Controller | ||||
|     path: /docs/user-guide/replication-controller/     | ||||
|   - title: Resource Quotas | ||||
|     path: /docs/admin/resource-quota/     | ||||
|   - title: Scheduled Jobs | ||||
|     path: /docs/user-guide/scheduled-jobs/ | ||||
|   - title: Secrets | ||||
|     path: /docs/user-guide/secrets/ | ||||
|   - title: Security Context | ||||
|  | @ -225,7 +229,7 @@ toc: | |||
|   - title: Services | ||||
|     path: /docs/user-guide/services/ | ||||
|   - title: Service Accounts | ||||
|     path: /docs/user-guide/service-accounts/     | ||||
|     path: /docs/user-guide/service-accounts/ | ||||
|   - title: Volumes | ||||
|     path: /docs/user-guide/volumes/ | ||||
| 
 | ||||
|  | @ -243,3 +247,16 @@ toc: | |||
|     path: https://github.com/kubernetes/kubernetes/blob/release-1.3/docs/design/security_context.md | ||||
|   - title: Security in Kubernetes | ||||
|     path: https://github.com/kubernetes/kubernetes/blob/release-1.3/docs/design/security.md     | ||||
| 
 | ||||
| - title: Federation | ||||
|   section: | ||||
|   - title: User guide | ||||
|     path: /docs/user-guide/federation/ | ||||
|   - title: Federation API | ||||
|     path: /docs/federation/api-reference/README/ | ||||
|   - title: Federation Components | ||||
|     section: | ||||
|     - title: federation-apiserver | ||||
|       path: /docs/admin/federation-apiserver.md | ||||
|     - title : federation-controller-mananger | ||||
|       path: /docs/admin/federation-controller-manager.md | ||||
|  |  | |||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							|  | @ -0,0 +1,25 @@ | |||
| --- | ||||
| --- | ||||
| 
 | ||||
| ## Overview | ||||
| 
 | ||||
| Add-ons extend the functionality of Kubernetes. | ||||
| 
 | ||||
| This page lists some of the available add-ons and links to their respective installation instructions. | ||||
| 
 | ||||
| ## Networking and Network Policy | ||||
| 
 | ||||
| * [Weave Net](https://github.com/weaveworks/weave-kube) provides networking and network policy, will carry on working on both sides of a network partition, and does not require an external database. | ||||
| * [Calico](https://github.com/projectcalico/calico-containers/tree/master/docs/cni/kubernetes/manifests/kubeadm) is a secure L3 networking and network policy provider. | ||||
| * [Canal](https://github.com/tigera/canal/tree/master/k8s-install/kubeadm) unites Flannel and Calico, providing networking and network policy. | ||||
| 
 | ||||
| ## Visualization & Control | ||||
| 
 | ||||
| * [Weave Scope](https://www.weave.works/documentation/scope-latest-installing/#k8s) is a tool for graphically visualizing your containers, pods, services etc. Use it in conjunction with a [Weave Cloud account](https://cloud.weave.works/) or host the UI yourself. | ||||
| * [Dashboard](https://github.com/kubernetes/dashboard#kubernetes-dashboard) is a dashboard web interface for Kubernetes. | ||||
| 
 | ||||
| ## Legacy Add-ons | ||||
| 
 | ||||
| There are several other add-ons documented in the deprecated [cluster/addons](https://github.com/kubernetes/kubernetes/tree/master/cluster/addons) directory. | ||||
| 
 | ||||
| Well-maintained ones should be linked to here. PRs welcome! | ||||
|  | @ -78,6 +78,118 @@ If your cluster supports containers that run with escalated privileges, and you | |||
| restrict the ability of end-users to exec commands in those containers, we strongly encourage | ||||
| enabling this plug-in. | ||||
| 
 | ||||
| ### ImagePolicyWebhook | ||||
| 
 | ||||
| The ImagePolicyWebhook plug-in allows a backend webhook to make admission decisions. You enable this plug-in by setting the admission-control option as follows: | ||||
| 
 | ||||
| ```shell | ||||
| --admission-control=ImagePolicyWebhook | ||||
| ``` | ||||
| 
 | ||||
| #### Configuration File Format | ||||
| ImagePolicyWebhook uses the admission controller config file (`--admission-controller-config-file`) to set configuration options for the behavior of the backend. This file may be json or yaml and has the following format: | ||||
| 
 | ||||
| ```javascript | ||||
| { | ||||
|   "imagePolicy": { | ||||
|      "kubeConfigFile": "path/to/kubeconfig/for/backend", | ||||
|      "allowTTL": 50,           // time in s to cache approval | ||||
|      "denyTTL": 50,            // time in s to cache denial | ||||
|      "retryBackoff": 500,      // time in ms to wait between retries | ||||
|      "defaultAllow": true      // determines behavior if the webhook backend fails | ||||
|   } | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| The config file must reference a [kubeconfig](/docs/user-guide/kubeconfig-file/) formatted file which sets up the connection to the backend. It is required that the backend communicate over TLS. | ||||
| 
 | ||||
| The kubeconfig file's cluster field must point to the remote service, and the user field must contain the returned authorizer. | ||||
| 
 | ||||
| ```yaml | ||||
| # clusters refers to the remote service. | ||||
| clusters: | ||||
| - name: name-of-remote-imagepolicy-service | ||||
|   cluster: | ||||
|     certificate-authority: /path/to/ca.pem    # CA for verifying the remote service. | ||||
|     server: https://images.example.com/policy # URL of remote service to query. Must use 'https'. | ||||
| 
 | ||||
| # users refers to the API server's webhook configuration. | ||||
| users: | ||||
| - name: name-of-api-server | ||||
|   user: | ||||
|     client-certificate: /path/to/cert.pem # cert for the webhook plugin to use | ||||
|     client-key: /path/to/key.pem          # key matching the cert | ||||
| ``` | ||||
| For additional HTTP configuration, refer to the [kubeconfig](/docs/user-guide/kubeconfig-file/) documentation. | ||||
| 
 | ||||
| #### Request Payloads | ||||
| 
 | ||||
| When faced with an admission decision, the API Server POSTs a JSON serialized api.imagepolicy.v1alpha1.ImageReview object describing the action. This object contains fields describing the containers being admitted, as well as any pod annotations that match `*.image-policy.k8s.io/*`. | ||||
| 
 | ||||
| Note that webhook API objects are subject to the same versioning compatibility rules as other Kubernetes API objects. Implementers should be aware of looser compatibility promises for alpha objects and check the “apiVersion” field of the request to ensure correct deserialization. Additionally, the API Server must enable the imagepolicy.k8s.io/v1alpha1 API extensions group (`--runtime-config=imagepolicy.k8s.io/v1alpha1=true`). | ||||
| 
 | ||||
| An example request body: | ||||
| 
 | ||||
| ``` | ||||
| {   | ||||
|   "apiVersion":"imagepolicy.k8s.io/v1alpha1", | ||||
|   "kind":"ImageReview", | ||||
|   "spec":{   | ||||
|     "containers":[   | ||||
|       {   | ||||
|         "image":"myrepo/myimage:v1" | ||||
|       }, | ||||
|       {   | ||||
|         "image":"myrepo/myimage@sha256:beb6bd6a68f114c1dc2ea4b28db81bdf91de202a9014972bec5e4d9171d90ed" | ||||
|       } | ||||
|     ], | ||||
|     "annotations":[   | ||||
|       "mycluster.image-policy.k8s.io/ticket-1234": "break-glass" | ||||
|     ], | ||||
|     "namespace":"mynamespace" | ||||
|   } | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| The remote service is expected to fill the ImageReviewStatus field of the request and respond to either allow or disallow access. The response body’s “spec” field is ignored and may be omitted. A permissive response would return: | ||||
| 
 | ||||
| ``` | ||||
| { | ||||
|   "apiVersion": "imagepolicy.k8s.io/v1alpha1", | ||||
|   "kind": "ImageReview", | ||||
|   "status": { | ||||
|     "allowed": true | ||||
|   } | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| To disallow access, the service would return: | ||||
| 
 | ||||
| ``` | ||||
| { | ||||
|   "apiVersion": "imagepolicy.k8s.io/v1alpha1", | ||||
|   "kind": "ImageReview", | ||||
|   "status": { | ||||
|     "allowed": false, | ||||
|     "reason": "image currently blacklisted" | ||||
|   } | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| For further documentation refer to the `imagepolicy.v1alpha1` API objects and `plugin/pkg/admission/imagepolicy/admission.go`. | ||||
| 
 | ||||
| #### Extending with Annotations | ||||
| 
 | ||||
| All annotations on a Pod that match `*.image-policy.k8s.io/*` are sent to the webhook. Sending annotations allows users who are aware of the image policy backend to send extra information to it, and for different backends implementations to accept different information. | ||||
| 
 | ||||
| Examples of information you might put here are: | ||||
| 
 | ||||
|  * request to "break glass" to override a policy, in case of emergency. | ||||
|  * a ticket number from a ticket system that documents the break-glass request | ||||
|  * provide a hint to the policy server as to the imageID of the image being provided, to save it a lookup | ||||
| 
 | ||||
| In any case, the annotations are provided by the user and are not validated by Kubernetes in any way. In the future, if an annotation is determined to be widely useful, it may be promoted to a named field of ImageReviewSpec. | ||||
| 
 | ||||
| ### ServiceAccount | ||||
| 
 | ||||
| This plug-in implements automation for [serviceAccounts](/docs/user-guide/service-accounts). | ||||
|  | @ -125,10 +237,31 @@ and ensures that requests in a non-existent `Namespace` are rejected. | |||
| A `Namespace` deletion kicks off a sequence of operations that remove all objects (pods, services, etc.) in that | ||||
| namespace.  In order to enforce integrity of that process, we strongly recommend running this plug-in. | ||||
| 
 | ||||
| ### DefaultStorageClass | ||||
| 
 | ||||
| This plug-in observes creation of `PersistentVolumeClaim` objects that do not request any specific storage class | ||||
| and automatically adds a default storage class to them. | ||||
| This way, users that do not request any special storage class do no need to care about them at all and they | ||||
| will get the default one. | ||||
| 
 | ||||
| This plug-in does not do anything when no default storage class is configured. When more than one storage | ||||
| class is marked as default, it rejects any creation of `PersistentVolumeClaim` with an error and administrator | ||||
| must revisit `StorageClass` objects and mark only one as default. | ||||
| This plugin ignores any `PersistentVolumeClaim` updates, it acts only on creation. | ||||
| 
 | ||||
| See [persistent volume](/docs/user-guide/persistent-volumes) documentation about persistent volume claims and | ||||
| storage classes and how to mark a storage class as default. | ||||
| 
 | ||||
| ## Is there a recommended set of plug-ins to use? | ||||
| 
 | ||||
| Yes. | ||||
| 
 | ||||
| For Kubernetes >= 1.4.0, we strongly recommend running the following set of admission control plug-ins (order matters): | ||||
| 
 | ||||
| ```shell | ||||
| --admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,ResourceQuota | ||||
| ``` | ||||
| 
 | ||||
| For Kubernetes >= 1.2.0, we strongly recommend running the following set of admission control plug-ins (order matters): | ||||
| 
 | ||||
| ```shell | ||||
|  |  | |||
|  | @ -0,0 +1,10 @@ | |||
| #include <tunables/global> | ||||
| 
 | ||||
| profile k8s-apparmor-example-deny-write flags=(attach_disconnected) { | ||||
|   #include <abstractions/base> | ||||
| 
 | ||||
|   file, | ||||
| 
 | ||||
|   # Deny all file writes. | ||||
|   deny /** w, | ||||
| } | ||||
|  | @ -0,0 +1,13 @@ | |||
| apiVersion: v1 | ||||
| kind: Pod | ||||
| metadata: | ||||
|   name: hello-apparmor | ||||
|   annotations: | ||||
|     # Tell Kubernetes to apply the AppArmor profile "k8s-apparmor-example-deny-write". | ||||
|     # Note that this is ignored if the Kubernetes node is not running version 1.4 or greater. | ||||
|     container.apparmor.security.beta.kubernetes.io/hello: localhost/k8s-apparmor-example-deny-write | ||||
| spec: | ||||
|   containers: | ||||
|   - name: hello | ||||
|     image: busybox | ||||
|     command: [ "sh", "-c", "echo 'Hello AppArmor!' && sleep 1h" ] | ||||
|  | @ -0,0 +1,392 @@ | |||
| --- | ||||
| assignees: | ||||
| - stclair | ||||
| 
 | ||||
| --- | ||||
| 
 | ||||
| AppArmor is a Linux kernel enhancement that can reduce the potential attack surface of an | ||||
| application and provide greater defense in depth for Applications. Beta support for AppArmor was | ||||
| added in Kubernetes v1.4. | ||||
| 
 | ||||
| * TOC | ||||
| {:toc} | ||||
| 
 | ||||
| ## What is AppArmor | ||||
| 
 | ||||
| AppArmor is a Linux kernel security module that supplements the standard Linux user and group based | ||||
| permissions to confine programs to a limited set of resources. AppArmor can be configured for any | ||||
| application to reduce its potential attack surface and provide greater defense in depth. It is | ||||
| configured through profiles tuned to whitelist the access needed by a specific program or container, | ||||
| such as Linux capabilities, network access, file permissions, etc. Each profile can be run in either | ||||
| enforcing mode, which blocks access to disallowed resources, or complain mode, which only reports | ||||
| violations. | ||||
| 
 | ||||
| AppArmor can help you to run a more secure deployment by restricting what containers are allowed to | ||||
| do, and /or providing better auditing through system logs. However, it is important to keep in mind | ||||
| that AppArmor is not a silver bullet, and can only do so much to protect against exploits in your | ||||
| application code. It is important to provide good, restrictive profiles, and harden your | ||||
| applications and cluster from other angles as well. | ||||
| 
 | ||||
| AppArmor support in Kubernetes is currently in beta. | ||||
| 
 | ||||
| ## Prerequisites | ||||
| 
 | ||||
| 1. **Kubernetes version is at least v1.4**. Kubernetes support for AppArmor was added in | ||||
|    v1.4. Kubernetes components older than v1.4 are not aware of the new AppArmor annotations, and | ||||
|    will **silently ignore** any AppArmor settings that are provided. To ensure that your Pods are | ||||
|    receiving the expected protections, it is important to verify the Kubelet version of your nodes: | ||||
| 
 | ||||
|         $ kubectl get nodes -o=jsonpath=$'{range .items[*]}{@.metadata.name}: {@.status.nodeInfo.kubeletVersion}\n{end}' | ||||
|         gke-test-default-pool-239f5d02-gyn2: v1.4.0 | ||||
|         gke-test-default-pool-239f5d02-x1kf: v1.4.0 | ||||
|         gke-test-default-pool-239f5d02-xwux: v1.4.0 | ||||
| 
 | ||||
| 2. **AppArmor kernel module is enabled**. For the Linux kernel to enforce an AppArmor profile, the | ||||
|    AppArmor kernel module must be installed and enabled. Several distributions enable the module by | ||||
|    default, such as Ubuntu and SUSE, and many others provide optional support. To check whether the | ||||
|    module is enabled, check the `/sys/module/apparmor/parameters/enabled` file: | ||||
| 
 | ||||
|         $ cat /sys/module/apparmor/parameters/enabled | ||||
|         Y | ||||
| 
 | ||||
|     If the Kubelet contains AppArmor support (>= v1.4), it will refuse to run a Pod with AppArmor | ||||
|     options if the kernel module is not enabled. | ||||
| 
 | ||||
|     *Note: Ubuntu carries many AppArmor patches that have not been merged into the upstream Linux | ||||
|      kernel, including patches that add additional hooks and features. Kubernetes has only been | ||||
|      tested with the upstream version, and does not promise support for other features.* | ||||
| 
 | ||||
| 3. **Container runtime is Docker**. Currently the only Kubernetes-supported container runtime that | ||||
|    also supports AppArmor is Docker. As more runtimes add AppArmor support, the options will be | ||||
|    expanded. You can verify that your nodes are running docker with: | ||||
| 
 | ||||
|         $ kubectl get nodes -o=jsonpath=$'{range .items[*]}{@.metadata.name}: {@.status.nodeInfo.containerRuntimeVersion}\n{end}' | ||||
|         gke-test-default-pool-239f5d02-gyn2: docker://1.11.2 | ||||
|         gke-test-default-pool-239f5d02-x1kf: docker://1.11.2 | ||||
|         gke-test-default-pool-239f5d02-xwux: docker://1.11.2 | ||||
| 
 | ||||
|     If the Kubelet contains AppArmor support (>= v1.4), it will refuse to run a Pod with AppArmor | ||||
|     options if the runtime is not Docker. | ||||
| 
 | ||||
| 4. **Profile is loaded**. AppArmor is applied to a Pod by specifying an AppArmor profile that each | ||||
|    container should be run with. If any of the specified profiles is not already loaded in the | ||||
|    kernel, the Kubelet (>= v1.4) will reject the Pod. You can view which profiles are loaded on a | ||||
|    node by checking the `/sys/kernel/security/apparmor/profiles` file. For example: | ||||
| 
 | ||||
|         $ ssh gke-test-default-pool-239f5d02-gyn2 "sudo cat /sys/kernel/security/apparmor/profiles | sort" | ||||
|         apparmor-test-deny-write (enforce) | ||||
|         apparmor-test-audit-write (enforce) | ||||
|         docker-default (enforce) | ||||
|         k8s-nginx (enforce) | ||||
| 
 | ||||
|     For more details on loading profiles on nodes, see | ||||
|     [Setting up nodes with profiles](#setting-up-nodes-with-profiles). | ||||
| 
 | ||||
| As long as the Kubelet version includes AppArmor support (>= v1.4), the Kubelet will reject a Pod | ||||
| with AppArmor options if any of the prerequisites are not met. You can also verify AppArmor support | ||||
| on nodes by checking the node ready condition message (though this is likely to be removed in a | ||||
| later release): | ||||
| 
 | ||||
|     $ kubectl get nodes -o=jsonpath=$'{range .items[*]}{@.metadata.name}: {.status.conditions[?(@.reason=="KubeletReady")].message}\n{end}' | ||||
|     gke-test-default-pool-239f5d02-gyn2: kubelet is posting ready status. AppArmor enabled | ||||
|     gke-test-default-pool-239f5d02-x1kf: kubelet is posting ready status. AppArmor enabled | ||||
|     gke-test-default-pool-239f5d02-xwux: kubelet is posting ready status. AppArmor enabled | ||||
| 
 | ||||
| ## Securing a Pod | ||||
| 
 | ||||
| *Note: AppArmor is currently in beta, so options are specified as annotations. Once support graduates to | ||||
| general availability, the annotations will be replaced with first-class fields (more details in | ||||
| [Upgrade path to GA](#upgrade-path-to-general-availability)).* | ||||
| 
 | ||||
| AppArmor profiles are specified *per-container*. To specify the AppArmor profile to run a Pod | ||||
| container with, add an annotation to the Pod's metadata: | ||||
| 
 | ||||
|     container.apparmor.security.beta.kubernetes.io/<container_name>: <profile_ref> | ||||
| 
 | ||||
| Where `<container_name>` is the name of the container to apply the profile to, and `<profile_ref>` | ||||
| specifies the profile to apply. The `profile_ref` can be one of: | ||||
| 
 | ||||
| - `runtime/default` to apply the runtime's default profile. | ||||
| - `localhost/<profile_name>` to apply the profile loaded on the host with the name `<profile_name>` | ||||
| 
 | ||||
| See the [API Reference](#api-reference) for the full details on the annotation and profile name formats. | ||||
| 
 | ||||
| The Kubernetes AppArmor enforcement works by first checking that all the prerequisites have been | ||||
| met, and then forwarding the profile selection to the container runtime for enforcement. If the | ||||
| prerequisites have not been met, the Pod will be rejected, and will not run. | ||||
| 
 | ||||
| To verify that the profile was applied, you can expect to see the AppArmor security option listed in the container created event: | ||||
| 
 | ||||
|     $ kubectl get events | grep Created | ||||
|     22s        22s         1         hello-apparmor     Pod       spec.containers{hello}   Normal    Created     {kubelet e2e-test-stclair-minion-group-31nt}   Created container with docker id 269a53b202d3; Security:[seccomp=unconfined apparmor=k8s-apparmor-example-deny-write] | ||||
| 
 | ||||
| You can also verify directly that the container's root process is running with the correct profile by checking its proc attr: | ||||
| 
 | ||||
|     $ kubectl exec <pod_name> cat /proc/1/attr/current | ||||
|     k8s-apparmor-example-deny-write (enforce) | ||||
| 
 | ||||
| ## Example | ||||
| 
 | ||||
| In this example you'll see: | ||||
| 
 | ||||
| - One way to load a profile on a node | ||||
| - How to enforce the profile on a Pod | ||||
| - How to check that the profile is loaded | ||||
| - What happens when a profile is violated | ||||
| - What happens when a profile cannot be loaded | ||||
| 
 | ||||
| *This example assumes you have already set up a cluster with AppArmor support.* | ||||
| 
 | ||||
| First, we need to load the profile we want to use onto our nodes. The profile we'll use simply | ||||
| denies all file writes: | ||||
| 
 | ||||
| {% include code.html language="text" file="deny-write.profile" ghlink="/docs/admin/apparmor/deny-write.profile" %} | ||||
| 
 | ||||
| Since we don't know where the Pod will be scheduled, we'll need to load the profile on all our | ||||
| nodes. For this example we'll just use SSH to install the profiles, but other approaches are | ||||
| discussed in [Setting up nodes with profiles](#setting-up-nodes-with-profiles). | ||||
| 
 | ||||
|     $ NODES=( | ||||
|         # The SSH-accessible domain names of your nodes | ||||
|         gke-test-default-pool-239f5d02-gyn2.us-central1-a.my-k8s | ||||
|         gke-test-default-pool-239f5d02-x1kf.us-central1-a.my-k8s | ||||
|         gke-test-default-pool-239f5d02-xwux.us-central1-a.my-k8s) | ||||
|     $ for NODE in ${NODES[*]}; do ssh $NODE 'sudo apparmor_parser -q <<EOF | ||||
|     #include <tunables/global> | ||||
| 
 | ||||
|     profile k8s-apparmor-example-deny-write flags=(attach_disconnected) { | ||||
|       #include <abstractions/base> | ||||
| 
 | ||||
|       file, | ||||
| 
 | ||||
|       # Deny all file writes. | ||||
|       deny /** w, | ||||
|     } | ||||
|     EOF' | ||||
|     done | ||||
| 
 | ||||
| Next, we'll run a simple "Hello AppArmor" pod with the deny-write profile: | ||||
| 
 | ||||
| {% include code.html language="yaml" file="hello-apparmor-pod.yaml" ghlink="/docs/admin/apparmor/hello-apparmor-pod.yaml" %} | ||||
| 
 | ||||
|     $ kubectl create -f /dev/stdin <<EOF | ||||
|     apiVersion: v1 | ||||
|     kind: Pod | ||||
|     metadata: | ||||
|       name: hello-apparmor | ||||
|       annotations: | ||||
|         container.apparmor.security.beta.kubernetes.io/hello: localhost/k8s-apparmor-example-deny-write | ||||
|     spec: | ||||
|       containers: | ||||
|       - name: hello | ||||
|         image: busybox | ||||
|         command: [ "sh", "-c", "echo 'Hello AppArmor!' && sleep 1h" ] | ||||
|     EOF | ||||
|     pod "hello-apparmor" created | ||||
| 
 | ||||
| If we look at the pod events, we can see that the Pod container was created with the AppArmor | ||||
| profile "k8s-apparmor-example-deny-write": | ||||
| 
 | ||||
|     $ kubectl get events | grep hello-apparmor | ||||
|     14s        14s         1         hello-apparmor   Pod                                Normal    Scheduled   {default-scheduler }                           Successfully assigned hello-apparmor to gke-test-default-pool-239f5d02-gyn2 | ||||
|     14s        14s         1         hello-apparmor   Pod       spec.containers{hello}   Normal    Pulling     {kubelet gke-test-default-pool-239f5d02-gyn2}   pulling image "busybox" | ||||
|     13s        13s         1         hello-apparmor   Pod       spec.containers{hello}   Normal    Pulled      {kubelet gke-test-default-pool-239f5d02-gyn2}   Successfully pulled image "busybox" | ||||
|     13s        13s         1         hello-apparmor   Pod       spec.containers{hello}   Normal    Created     {kubelet gke-test-default-pool-239f5d02-gyn2}   Created container with docker id 06b6cd1c0989; Security:[seccomp=unconfined apparmor=k8s-apparmor-example-deny-write] | ||||
|     13s        13s         1         hello-apparmor   Pod       spec.containers{hello}   Normal    Started     {kubelet gke-test-default-pool-239f5d02-gyn2}   Started container with docker id 06b6cd1c0989 | ||||
| 
 | ||||
| We can verify that the container is actually running with that profile by checking its proc attr: | ||||
| 
 | ||||
|     $ kubectl exec hello-apparmor cat /proc/1/attr/current | ||||
|     k8s-apparmor-example-deny-write (enforce) | ||||
| 
 | ||||
| Finally, we can see what happens if we try to violate the profile by writing to a file: | ||||
| 
 | ||||
|     $ kubectl exec hello-apparmor touch /tmp/test | ||||
|     touch: /tmp/test: Permission denied | ||||
|     error: error executing remote command: command terminated with non-zero exit code: Error executing in Docker Container: 1 | ||||
| 
 | ||||
| To wrap up, let's look at what happens if we try to specify a profile that hasn't been loaded: | ||||
| 
 | ||||
|     $ kubectl create -f /dev/stdin <<EOF | ||||
|     apiVersion: v1 | ||||
|     kind: Pod | ||||
|     metadata: | ||||
|       name: hello-apparmor-2 | ||||
|       annotations: | ||||
|         container.apparmor.security.beta.kubernetes.io/hello: localhost/k8s-apparmor-example-allow-write | ||||
|     spec: | ||||
|       containers: | ||||
|       - name: hello | ||||
|         image: busybox | ||||
|         command: [ "sh", "-c", "echo 'Hello AppArmor!' && sleep 1h" ] | ||||
|     EOF | ||||
|     pod "hello-apparmor-2" created | ||||
|      | ||||
|     $ kubectl describe pod hello-apparmor-2 | ||||
|     Name:		hello-apparmor-2 | ||||
|     Namespace:	default | ||||
|     Node:		gke-test-default-pool-239f5d02-x1kf/ | ||||
|     Start Time:	Tue, 30 Aug 2016 17:58:56 -0700 | ||||
|     Labels:		<none> | ||||
|     Status:		Failed | ||||
|     Reason:		AppArmor | ||||
|     Message:	Pod Cannot enforce AppArmor: profile "k8s-apparmor-example-allow-write" is not loaded | ||||
|     IP:		 | ||||
|     Controllers:	<none> | ||||
|     Containers: | ||||
|       hello: | ||||
|         Image:	busybox | ||||
|         Port:	 | ||||
|         Command: | ||||
|           sh | ||||
|           -c | ||||
|           echo 'Hello AppArmor!' && sleep 1h | ||||
|         Requests: | ||||
|           cpu:			100m | ||||
|         Environment Variables:	<none> | ||||
|     Volumes: | ||||
|       default-token-dnz7v: | ||||
|         Type:	Secret (a volume populated by a Secret) | ||||
|         SecretName:	default-token-dnz7v | ||||
|     QoS Tier:	Burstable | ||||
|     Events: | ||||
|       FirstSeen	LastSeen	Count	From						SubobjectPath	Type		Reason		Message | ||||
|       ---------	--------	-----	----						-------------	--------	------		------- | ||||
|       23s		23s		1	{default-scheduler }						Normal		Scheduled	Successfully assigned hello-apparmor-2 to e2e-test-stclair-minion-group-t1f5 | ||||
|       23s		23s		1	{kubelet e2e-test-stclair-minion-group-t1f5}			Warning		AppArmor	Cannot enforce AppArmor: profile "k8s-apparmor-example-allow-write" is not loaded | ||||
| 
 | ||||
| Note the pod status is Failed, with a helpful error message: `Pod Cannot enforce AppArmor: profile | ||||
| "k8s-apparmor-example-allow-write" is not loaded`. An event was also recorded with the same message. | ||||
| 
 | ||||
| ## Administration | ||||
| 
 | ||||
| ### Setting up nodes with profiles | ||||
| 
 | ||||
| Kubernetes does not currently provide any native mechanisms for loading AppArmor profiles onto | ||||
| nodes. There are lots of ways to setup the profiles though, such as: | ||||
| 
 | ||||
| - Through a [DaemonSet](../daemons/) that runs a Pod on each node to | ||||
|   ensure the correct profiles are loaded. An example implementation can be found | ||||
|   [here](https://github.com/kubernetes/contrib/tree/master/apparmor/loader). | ||||
| - At node initialization time, using your node initialization scripts (e.g. Salt, Ansible, etc.) or | ||||
|   image. | ||||
| - By copying the profiles to each node and loading them through SSH, as demonstrated in the | ||||
|   [Example](#example). | ||||
| 
 | ||||
| The scheduler is not aware of which profiles are loaded onto which node, so the full set of profiles | ||||
| must be loaded onto every node.  An alternative approach is to add a node label for each profile (or | ||||
| class of profiles) on the node, and use a | ||||
| [node selector](../../user-guide/node-selection/) to ensure the Pod is run on a | ||||
| node with the required profile. | ||||
| 
 | ||||
| ### Restricting profiles with the PodSecurityPolicy | ||||
| 
 | ||||
| If the PodSecurityPolicy extension is enabled, cluster-wide AppArmor restrictions can be applied. To | ||||
| enable the PodSecurityPolicy, two flags must be set on the `apiserver`: | ||||
| 
 | ||||
|     --admission-control=PodSecurityPolicy[,others...] | ||||
|     --runtime-config=extensions/v1beta1/podsecuritypolicy[,others...] | ||||
| 
 | ||||
| With the extension enabled, the AppArmor options can be specified as annotations on the PodSecurityPolicy: | ||||
| 
 | ||||
|     apparmor.security.beta.kubernetes.io/defaultProfileName: <profile_ref> | ||||
|     apparmor.security.beta.kubernetes.io/allowedProfileNames: <profile_ref>[,others...] | ||||
| 
 | ||||
| The default profile name option specifies the profile to apply to containers by default when none is | ||||
| specified. The allowed profile names option specifies a list of profiles that Pod containers are | ||||
| allowed to be run with. If both options are provided, the default must be allowed. The profiles are | ||||
| specified in the same format as on containers. See the [API Reference](#api-reference) for the full | ||||
| specification. | ||||
| 
 | ||||
| ### Disabling AppArmor | ||||
| 
 | ||||
| If you do not want AppArmor to be available on your cluster, it can be disabled by a command-line flag: | ||||
| 
 | ||||
|     --feature-gates=AppArmor=false | ||||
| 
 | ||||
| When disabled, any Pod that includes an AppArmor profile will fail validation with a "Forbidden" | ||||
| error. Note that by default docker always enables the "docker-default" profile on non-privileged | ||||
| pods (if the AppArmor kernel module is enabled), and will continue to do so even if the feature-gate | ||||
| is disabled. The option to disable AppArmor will be removed when AppArmor graduates to general | ||||
| availability (GA). | ||||
| 
 | ||||
| ### Upgrading to Kubernetes v1.4 with AppArmor | ||||
| 
 | ||||
| No action is required with respect to AppArmor to upgrade your cluster to v1.4. However, if any | ||||
| existing pods had an AppArmor annotation, they will not go through validation (or PodSecurityPolicy | ||||
| admission). If permissive profiles are loaded on the nodes, a malicious user could pre-apply a | ||||
| permissive profile to escalate the pod privileges above the docker-default. If this is a concern, it | ||||
| is recommended to scrub the cluster of any pods containing an annotation with | ||||
| `apparmor.security.beta.kubernetes.io`. | ||||
| 
 | ||||
| ### Upgrade path to General Availability | ||||
| 
 | ||||
| When AppArmor is ready to be graduated to general availability (GA), the options currently specified | ||||
| through annotations will be converted to fields. Supporting all the upgrade and downgrade paths | ||||
| through the transition is very nuanced, and will be explained in detail when the transition | ||||
| occurs. We will commit to supporting both fields and annotations for at least 2 releases, and will | ||||
| explicitly reject the annotations for at least 2 releases after that. | ||||
| 
 | ||||
| ## Authoring Profiles | ||||
| 
 | ||||
| Getting AppArmor profiles specified correctly can be a tricky business. Fortunately there are some | ||||
| tools to help with that: | ||||
| 
 | ||||
| - `aa-genprof` and `aa-logprof` generate profile rules by monitoring an application's activity and | ||||
|   logs, and admitting the actions it takes. Further instructions are provided by the | ||||
|   [AppArmor documentation](http://wiki.apparmor.net/index.php/Profiling_with_tools). | ||||
| - [bane](https://github.com/jfrazelle/bane) is an AppArmor profile generator for Docker that uses a | ||||
|   simplified profile language. | ||||
| 
 | ||||
| It is recommended to run your application through Docker on a development workstation to generate | ||||
| the profiles, but there is nothing preventing running the tools on the Kubernetes node where your | ||||
| Pod is running. | ||||
| 
 | ||||
| To debug problems with AppArmor, you can check the system logs to see what, specifically, was | ||||
| denied. AppArmor logs verbose messages to `dmesg`, and errors can usually be found in the system | ||||
| logs or through `journalctl`. More information is provided in | ||||
| [AppArmor failures](http://wiki.apparmor.net/index.php/AppArmor_Failures). | ||||
| 
 | ||||
| Additional resources: | ||||
| 
 | ||||
| - http://wiki.apparmor.net/index.php/QuickProfileLanguage | ||||
| - http://wiki.apparmor.net/index.php/ProfileLanguage | ||||
| 
 | ||||
| ## API Reference | ||||
| 
 | ||||
| **Pod Annotation**: | ||||
| 
 | ||||
| Specifying the profile a container will run with: | ||||
| 
 | ||||
| - **key**: `container.apparmor.security.beta.kubernetes.io/<container_name>` | ||||
|   Where `<container_name>` matches the name of a container in the Pod. | ||||
|   A separate profile can be specified for each container in the Pod. | ||||
| - **value**: a profile reference, described below | ||||
| 
 | ||||
| **Profile Reference**: | ||||
| 
 | ||||
| - `runtime/default`: Refers to the default runtime profile. | ||||
|   - Equivalent to not specifying a profile (without a PodSecurityPolicy default), except it still | ||||
|     requires AppArmor to be enabled. | ||||
|   - For Docker, this resolves to the | ||||
|     [`docker-default`](https://docs.docker.com/engine/security/apparmor/) profile for non-privileged | ||||
|     containers, and unconfined (no profile) for privileged containers. | ||||
| - `localhost/<profile_name>`: Refers to a profile loaded on the node (localhost) by name. | ||||
|   - The possible profile names are detailed in the | ||||
|     [core policy reference](http://wiki.apparmor.net/index.php/AppArmor_Core_Policy_Reference#Profile_names_and_attachment_specifications) | ||||
| 
 | ||||
| Any other profile reference format is invalid. | ||||
| 
 | ||||
| **PodSecurityPolicy Annotations** | ||||
| 
 | ||||
| Specifying the default profile to apply to containers when none is provided: | ||||
| 
 | ||||
| - **key**: `apparmor.security.beta.kubernetes.io/defaultProfileName` | ||||
| - **value**: a profile reference, described above | ||||
| 
 | ||||
| Specifying the list of profiles Pod containers are allowed to specify: | ||||
| 
 | ||||
| - **key**: `apparmor.security.beta.kubernetes.io/allowedProfileNames` | ||||
| - **value**: a comma-separated list of profile references (described above) | ||||
|   - Although an escaped comma is a legal character in a profile name, it cannot be explicitly | ||||
|     allowed here | ||||
|  | @ -0,0 +1,69 @@ | |||
| --- | ||||
| assignees: | ||||
| - soltysh | ||||
| - sttts | ||||
| 
 | ||||
| --- | ||||
| 
 | ||||
| * TOC | ||||
| {:toc} | ||||
| 
 | ||||
| ## Audit in Kubernetes | ||||
| 
 | ||||
| Kubernetes Audit provides a security-relevant chronological set of records documenting | ||||
| the sequence of activities that have affected system by individual users, administrators | ||||
| or other components of the system. It allows cluster administrator to | ||||
| answer the following questions: | ||||
|     - what happened? | ||||
|     - when did it happen? | ||||
|     - who initiated it? | ||||
|     - on what did it happen? | ||||
|     - where was it observed? | ||||
|     - from where was it initiated? | ||||
|     - to where was it going? | ||||
| 
 | ||||
| NOTE: Currently, Kubernetes provides only basic audit capabilities, there is still a lot | ||||
| of work going on to provide fully featured auditing capabilities (see https://github.com/kubernetes/features/issues/22). | ||||
| 
 | ||||
| Kubernetes audit is part of [kube-apiserver](/docs/admin/kube-apiserver) logging all requests | ||||
| coming to the server. Each audit log contains two entries: | ||||
| 
 | ||||
| 1. The request line containing: | ||||
|     - unique id allowing to match the response line (see 2) | ||||
|     - source ip of the request | ||||
|     - HTTP method being invoked | ||||
|     - original user invoking the operation | ||||
|     - impersonated user for the operation | ||||
|     - namespace of the request or <none> | ||||
|     - URI as requested | ||||
| 2. The response line containing: | ||||
|     - the unique id from 1 | ||||
|     - response code | ||||
| 
 | ||||
| Example output for user `admin` asking for a list of pods: | ||||
| 
 | ||||
| ``` | ||||
| 2016-09-07T13:03:57.400333046Z AUDIT: id="5c3b8227-4af9-4322-8a71-542231c3887b" ip="127.0.0.1" method="GET" user="admin" as="<self>" namespace="default" uri="/api/v1/namespaces/default/pods" | ||||
| 2016-09-07T13:03:57.400710987Z AUDIT: id="5c3b8227-4af9-4322-8a71-542231c3887b" response="200" | ||||
| ``` | ||||
| 
 | ||||
| NOTE: The audit capabilities are available *only* for the secured endpoint of the API server. | ||||
| 
 | ||||
| ## Configuration | ||||
| 
 | ||||
| [Kube-apiserver](/docs/admin/kube-apiserver) provides following options which are responsible | ||||
| for configuring where and how audit logs are handled: | ||||
| 
 | ||||
| - `audit-log-path` - enables the audit log pointing to a file where the requests are being logged to. | ||||
| - `audit-log-maxage` - specifies maximum number of days to retain old audit log files based on the timestamp encoded in their filename. | ||||
| - `audit-log-maxbackup` - specifies maximum number of old audit log files to retain. | ||||
| - `audit-log-maxsize` - specifies maximum size in megabytes of the audit log file before it gets rotated. Defaults to 100MB | ||||
| 
 | ||||
| If an audit log file already exists, Kubernetes appends new audit logs to that file. | ||||
| Otherwise, Kubernetes creates an audit log file at the location you specified in | ||||
| `audit-log-path`. If the audit log file exceeds the size you specify in `audit-log-maxsize`, | ||||
| Kubernetes will rename the current log file by appending the current timestamp on | ||||
| the file name (before the file extension) and create a new audit log file. | ||||
| Kubernetes may delete old log files when creating a new log file; you can configure | ||||
| how many files are retained and how old they can be by specifying the `audit-log-maxbackup` | ||||
| and `audit-log-maxage` options. | ||||
|  | @ -500,3 +500,42 @@ to a remote authorization service.  Authorization modules can implement | |||
| their own caching to reduce the cost of repeated authorization calls with the | ||||
| same or similar arguments.  Developers should then consider the interaction | ||||
| between caching and revocation of permissions. | ||||
| 
 | ||||
| 
 | ||||
| ### Checking API Access | ||||
| 
 | ||||
| Kubernetes exposes the `subjectaccessreviews.v1beta1.authorization.k8s.io` resource as a | ||||
| normal resource that allows external access to API authorizer decisions.  No matter which authorizer | ||||
| you choose to use, you can issue a `POST` with a `SubjectAccessReview` just like the webhook | ||||
| authorizer to the `apis/authorization.k8s.io/v1beta1/subjectaccessreviews` endpoint and | ||||
| get back a response.  For instance: | ||||
| 
 | ||||
| ```bash | ||||
| kubectl create --v=8 -f -  << __EOF__ | ||||
| { | ||||
|   "apiVersion": "authorization.k8s.io/v1beta1", | ||||
|   "kind": "SubjectAccessReview", | ||||
|   "spec": { | ||||
|     "resourceAttributes": { | ||||
|       "namespace": "kittensandponies", | ||||
|       "verb": "GET", | ||||
|       "group": "unicorn.example.org", | ||||
|       "resource": "pods" | ||||
|     }, | ||||
|     "user": "jane", | ||||
|     "group": [ | ||||
|       "group1", | ||||
|       "group2" | ||||
|     ] | ||||
|   } | ||||
| } | ||||
| __EOF__ | ||||
| 
 | ||||
| --- snip lots of output --- | ||||
| 
 | ||||
| I0913 08:12:31.362873   27425 request.go:908] Response Body: {"kind":"SubjectAccessReview","apiVersion":"authorization.k8s.io/v1beta1","metadata":{"creationTimestamp":null},"spec":{"resourceAttributes":{"namespace":"kittensandponies","verb":"GET","group":"*","resource":"pods"},"user":"jane","group":["group1","group2"]},"status":{"allowed":true}} | ||||
| subjectaccessreview "" created | ||||
| ``` | ||||
| 
 | ||||
| This is useful for debugging access problems, in that you can use this resource | ||||
| to determine what access an authorizer is granting. | ||||
|  | @ -0,0 +1,95 @@ | |||
| --- | ||||
| assignees: | ||||
| - mml | ||||
| 
 | ||||
| --- | ||||
| This guide is for anyone wishing to specify safety constraints on pods or anyone | ||||
| wishing to write software (typically automation software) that respects those | ||||
| constraints. | ||||
| 
 | ||||
| * TOC | ||||
| {:toc} | ||||
| 
 | ||||
| ## Rationale | ||||
| 
 | ||||
| Various cluster management operations may voluntarily evict pods.  "Voluntary" | ||||
| means an eviction can be safely delayed for a reasonable period of time. The | ||||
| principal examples today are draining a node for maintenance or upgrade | ||||
| (`kubectl drain`), and cluster autoscaling down. In the future the | ||||
| [rescheduler](https://github.com/kubernetes/kubernetes/blob/master/docs/proposals/rescheduling.md) | ||||
| may also perform voluntary evictions.  By contrast, something like evicting pods | ||||
| because a node has become unreachable or reports `NotReady`, is not "voluntary." | ||||
| 
 | ||||
| For voluntary evictions, it can be useful for applications to be able to limit | ||||
| the number of pods that are down simultaneously.  For example, a quorum-based application would | ||||
| like to ensure that the number of replicas running is never brought below the | ||||
| number needed for a quorum, even temporarily. Or a web front end might want to | ||||
| ensure that the number of replicas serving load never falls below a certain | ||||
| percentage of the total, even briefly.  `PodDisruptionBudget` is an API object | ||||
| that specifies the minimum number or percentage of replicas of a collection that | ||||
| must be up at a time.  Components that wish to evict a pod subject to disruption | ||||
| budget use the `/eviction` subresource; unlike a regular pod deletion, this | ||||
| operation may be rejected by the API server if the eviction would cause a | ||||
| disruption budget to be violated. | ||||
| 
 | ||||
| ## Specifying a PodDisruptionBudget | ||||
| 
 | ||||
| A `PodDisruptionBudget` has two components: a label selector `selector` to specify the set of | ||||
| pods to which it applies, and `minAvailable` which is a description of the number of pods from that | ||||
| set that must still be available after the eviction, i.e. even in the absence | ||||
| of the evicted pod. `minAvailable` can be either an absolute number or a percentage. | ||||
| So for example, 100% means no voluntary evictions from the set are permitted. In | ||||
| typical usage, a single budget would be used for a collection of pods managed by | ||||
| a controller—for example, the pods in a single ReplicaSet. | ||||
| 
 | ||||
| Note that a disruption budget does not truly guarantee that the specified | ||||
| number/percentage of pods will always be up.  For example, a node that hosts a | ||||
| pod from the collection may fail when the collection is at the minimum size | ||||
| specified in the budget, thus bringing the number of available pods from the | ||||
| collection below the specified size. The budget can only protect against | ||||
| voluntary evictions, not all causes of unavailability. | ||||
| 
 | ||||
| ## Requesting an eviction | ||||
| 
 | ||||
| If you are writing infrastructure software that wants to produce these voluntary | ||||
| evictions, you will need to use the eviction API.  The eviction subresource of a | ||||
| pod can be thought of as a kind of policy-controlled DELETE operation on the pod | ||||
| itself.  To attempt an eviction (perhaps more REST-precisely, to attempt to | ||||
| *create* an eviction), you POST an attempted operation.  Here's an example: | ||||
| 
 | ||||
| ```json | ||||
| { | ||||
|   "apiVersion": "policy/v1alpha1", | ||||
|   "kind": "Eviction", | ||||
|   "name": "quux", | ||||
|   "namespace": "default" | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| and here is how you would attempt this with `curl` | ||||
| 
 | ||||
| ```bash | ||||
| curl -v -X POST -H 'Content-type: application/json' | ||||
| http://127.0.0.1:8080/api/v1/namespaces/default/pods/quux/eviction -d | ||||
| eviction.json | ||||
| ``` | ||||
| 
 | ||||
| The API can respond in one of three ways. | ||||
| 
 | ||||
|  1. If the eviction is granted, then the pod is deleted just as if you had sent | ||||
|     a `DELETE` request to the pod's URL and you get back `200 OK`. | ||||
|  2. If the current state of affairs wouldn't allow an eviction by the rules set | ||||
|     forth in the budget, you get back `429 Too Many Requests`.  This is | ||||
|     typically used for generic rate limiting of *any* requests, but here we mean | ||||
|     that this request isn't allowed *right now* but it may be allowed later. | ||||
|     Currently, callers do not get any `Retry-After` advice, but they may in | ||||
|     future versions. | ||||
|  3. If there is some kind of misconfiguration, like multiple budgets pointing at | ||||
|     the same pod, you will get `500 Internal Server Error`. | ||||
| 
 | ||||
| For a given eviction request, there are two cases. | ||||
| 
 | ||||
|  1. There is no budget that matches this pod.  In this case, the server always | ||||
|     returns `200 OK`. | ||||
|  2. There is at least one budget.  In this case, any of the three above responses may | ||||
|     apply. | ||||
|  | @ -20,64 +20,75 @@ federation-apiserver | |||
| ### Options | ||||
| 
 | ||||
| ``` | ||||
|       --admission-control="AlwaysAdmit": Ordered list of plug-ins to do admission control of resources into cluster. Comma-delimited list of: AlwaysAdmit, AlwaysDeny | ||||
|       --admission-control-config-file="": File with admission control configuration. | ||||
|       --advertise-address=<nil>: The IP address on which to advertise the apiserver to members of the cluster. This address must be reachable by the rest of the cluster. If blank, the --bind-address will be used. If --bind-address is unspecified, the host's default interface will be used. | ||||
|       --apiserver-count=1: The number of apiservers running in the cluster | ||||
|       --authorization-mode="AlwaysAllow": Ordered list of plug-ins to do authorization on secure port. Comma-delimited list of: AlwaysAllow,AlwaysDeny,ABAC,Webhook,RBAC | ||||
|       --authorization-policy-file="": File with authorization policy in csv format, used with --authorization-mode=ABAC, on the secure port. | ||||
|       --authorization-rbac-super-user="": If specified, a username which avoids RBAC authorization checks and role binding privilege escalation checks, to be used with --authorization-mode=RBAC. | ||||
|       --authorization-webhook-cache-authorized-ttl=5m0s: The duration to cache 'authorized' responses from the webhook authorizer. Default is 5m. | ||||
|       --authorization-webhook-cache-unauthorized-ttl=30s: The duration to cache 'unauthorized' responses from the webhook authorizer. Default is 30s. | ||||
|       --authorization-webhook-config-file="": File with webhook configuration in kubeconfig format, used with --authorization-mode=Webhook. The API server will query the remote service to determine access on the API server's secure port. | ||||
|       --basic-auth-file="": If set, the file that will be used to admit requests to the secure port of the API server via http basic authentication. | ||||
|       --bind-address=0.0.0.0: The IP address on which to listen for the --secure-port port. The associated interface(s) must be reachable by the rest of the cluster, and by CLI/web clients. If blank, all interfaces will be used (0.0.0.0). | ||||
|       --cert-dir="/var/run/kubernetes": The directory where the TLS certs are located (by default /var/run/kubernetes). If --tls-cert-file and --tls-private-key-file are provided, this flag will be ignored. | ||||
|       --client-ca-file="": If set, any request presenting a client certificate signed by one of the authorities in the client-ca-file is authenticated with an identity corresponding to the CommonName of the client certificate. | ||||
|       --cloud-config="": The path to the cloud provider configuration file.  Empty string for no configuration file. | ||||
|       --cloud-provider="": The provider for cloud services.  Empty string for no provider. | ||||
|       --cors-allowed-origins=[]: List of allowed origins for CORS, comma separated.  An allowed origin can be a regular expression to support subdomain matching.  If this list is empty CORS will not be enabled. | ||||
|       --delete-collection-workers=1: Number of workers spawned for DeleteCollection call. These are used to speed up namespace cleanup. | ||||
|       --deserialization-cache-size=50000: Number of deserialized json objects to cache in memory. | ||||
|       --enable-swagger-ui[=false]: Enables swagger ui on the apiserver at /swagger-ui | ||||
|       --etcd-cafile="": SSL Certificate Authority file used to secure etcd communication | ||||
|       --etcd-certfile="": SSL certification file used to secure etcd communication | ||||
|       --etcd-keyfile="": SSL key file used to secure etcd communication | ||||
|       --etcd-prefix="/registry": The prefix for all resource paths in etcd. | ||||
|       --etcd-quorum-read[=false]: If true, enable quorum read | ||||
|       --etcd-servers=[]: List of etcd servers to connect with (http://ip:port), comma separated. | ||||
|       --etcd-servers-overrides=[]: Per-resource etcd servers overrides, comma separated. The individual override format: group/resource#servers, where servers are http://ip:port, semicolon separated. | ||||
|       --experimental-keystone-url="": If passed, activates the keystone authentication plugin | ||||
|       --external-hostname="": The hostname to use when generating externalized URLs for this master (e.g. Swagger API Docs.) | ||||
|       --insecure-bind-address=127.0.0.1: The IP address on which to serve the --insecure-port (set to 0.0.0.0 for all interfaces). Defaults to localhost. | ||||
|       --insecure-port=8080: The port on which to serve unsecured, unauthenticated access. Default 8080. It is assumed that firewall rules are set up such that this port is not reachable from outside of the cluster and that port 443 on the cluster's public address is proxied to this port. This is performed by nginx in the default setup. | ||||
|       --kubernetes-service-node-port=0: If non-zero, the Kubernetes master service (which apiserver creates/maintains) will be of type NodePort, using this as the value of the port. If zero, the Kubernetes master service will be of type ClusterIP. | ||||
|       --log-flush-frequency=5s: Maximum number of seconds between log flushes | ||||
|       --long-running-request-regexp="(/|^)((watch|proxy)(/|$)|(logs?|portforward|exec|attach)/?$)": A regular expression matching long running requests which should be excluded from maximum inflight request handling. | ||||
|       --master-service-namespace="default": The namespace from which the kubernetes master services should be injected into pods | ||||
|       --max-requests-inflight=400: The maximum number of requests in flight at a given time.  When the server exceeds this, it rejects requests.  Zero for no limit. | ||||
|       --min-request-timeout=1800: An optional field indicating the minimum number of seconds a handler must keep a request open before timing it out. Currently only honored by the watch request handler, which picks a randomized value above this number as the connection timeout, to spread out load. | ||||
|       --oidc-ca-file="": If set, the OpenID server's certificate will be verified by one of the authorities in the oidc-ca-file, otherwise the host's root CA set will be used | ||||
|       --oidc-client-id="": The client ID for the OpenID Connect client, must be set if oidc-issuer-url is set | ||||
|       --oidc-groups-claim="": If provided, the name of a custom OpenID Connect claim for specifying user groups. The claim value is expected to be an array of strings. This flag is experimental, please see the authentication documentation for further details. | ||||
|       --oidc-issuer-url="": The URL of the OpenID issuer, only HTTPS scheme will be accepted. If set, it will be used to verify the OIDC JSON Web Token (JWT) | ||||
|       --oidc-username-claim="sub": The OpenID claim to use as the user name. Note that claims other than the default ('sub') is not guaranteed to be unique and immutable. This flag is experimental, please see the authentication documentation for further details. | ||||
|       --profiling[=true]: Enable profiling via web interface host:port/debug/pprof/ | ||||
|       --runtime-config=: A set of key=value pairs that describe runtime configuration that may be passed to apiserver. apis/<groupVersion> key can be used to turn on/off specific api versions. apis/<groupVersion>/<resource> can be used to turn on/off specific resources. api/all and api/legacy are special keys to control all and legacy api versions respectively. | ||||
|       --secure-port=6443: The port on which to serve HTTPS with authentication and authorization. If 0, don't serve HTTPS at all. | ||||
|       --service-cluster-ip-range=<nil>: A CIDR notation IP range from which to assign service cluster IPs. This must not overlap with any IP ranges assigned to nodes for pods. | ||||
|       --service-node-port-range=: A port range to reserve for services with NodePort visibility.  Example: '30000-32767'.  Inclusive at both ends of the range. | ||||
|       --storage-backend="": The storage backend for persistence. Options: 'etcd2' (default), 'etcd3'. | ||||
|       --storage-media-type="application/json": The media type to use to store objects in storage. Defaults to application/json. Some resources may only support a specific media type and will ignore this setting. | ||||
|       --storage-versions="apps/v1alpha1,authentication.k8s.io/v1beta1,authorization.k8s.io/v1beta1,autoscaling/v1,batch/v1,componentconfig/v1alpha1,extensions/v1beta1,federation/v1beta1,policy/v1alpha1,rbac.authorization.k8s.io/v1alpha1,v1": The per-group version to store resources in. Specified in the format "group1/version1,group2/version2,...". In the case where objects are moved from one group to the other, you may specify the format "group1=group2/v1beta1,group3/v1beta1,...". You only need to pass the groups you wish to change from the defaults. It defaults to a list of preferred versions of all registered groups, which is derived from the KUBE_API_VERSIONS environment variable. | ||||
|       --tls-cert-file="": File containing x509 Certificate for HTTPS.  (CA cert, if any, concatenated after server cert). If HTTPS serving is enabled, and --tls-cert-file and --tls-private-key-file are not provided, a self-signed certificate and key are generated for the public address and saved to /var/run/kubernetes. | ||||
|       --tls-private-key-file="": File containing x509 private key matching --tls-cert-file. | ||||
|       --token-auth-file="": If set, the file that will be used to secure the secure port of the API server via token authentication. | ||||
|       --watch-cache[=true]: Enable watch caching in the apiserver | ||||
|       --watch-cache-sizes=[]: List of watch cache sizes for every resource (pods, nodes, etc.), comma separated. The individual override format: resource#size, where size is a number. It takes effect when watch-cache is enabled. | ||||
|       --admission-control string                                Ordered list of plug-ins to do admission control of resources into cluster. Comma-delimited list of: AlwaysAdmit, AlwaysDeny, NamespaceLifecycle. (default "AlwaysAdmit") | ||||
|       --admission-control-config-file string                    File with admission control configuration. | ||||
|       --advertise-address value                                 The IP address on which to advertise the apiserver to members of the cluster. This address must be reachable by the rest of the cluster. If blank, the --bind-address will be used. If --bind-address is unspecified, the host's default interface will be used. | ||||
|       --apiserver-count int                                     The number of apiservers running in the cluster. (default 1) | ||||
|       --audit-log-maxage int                                    The maximum number of days to retain old audit log files based on the timestamp encoded in their filename. | ||||
|       --audit-log-maxbackup int                                 The maximum number of old audit log files to retain. | ||||
|       --audit-log-maxsize int                                   The maximum size in megabytes of the audit log file before it gets rotated. Defaults to 100MB. | ||||
|       --audit-log-path string                                   If set, all requests coming to the apiserver will be logged to this file. | ||||
|       --authorization-mode string                               Ordered list of plug-ins to do authorization on secure port. Comma-delimited list of: AlwaysAllow,AlwaysDeny,ABAC,Webhook,RBAC. (default "AlwaysAllow") | ||||
|       --authorization-policy-file string                        File with authorization policy in csv format, used with --authorization-mode=ABAC, on the secure port. | ||||
|       --authorization-rbac-super-user string                    If specified, a username which avoids RBAC authorization checks and role binding privilege escalation checks, to be used with --authorization-mode=RBAC. | ||||
|       --authorization-webhook-cache-authorized-ttl duration     The duration to cache 'authorized' responses from the webhook authorizer. Default is 5m. (default 5m0s) | ||||
|       --authorization-webhook-cache-unauthorized-ttl duration   The duration to cache 'unauthorized' responses from the webhook authorizer. Default is 30s. (default 30s) | ||||
|       --authorization-webhook-config-file string                File with webhook configuration in kubeconfig format, used with --authorization-mode=Webhook. The API server will query the remote service to determine access on the API server's secure port. | ||||
|       --basic-auth-file string                                  If set, the file that will be used to admit requests to the secure port of the API server via http basic authentication. | ||||
|       --bind-address value                                      The IP address on which to listen for the --secure-port port. The associated interface(s) must be reachable by the rest of the cluster, and by CLI/web clients. If blank, all interfaces will be used (0.0.0.0). (default 0.0.0.0) | ||||
|       --cert-dir string                                         The directory where the TLS certs are located (by default /var/run/kubernetes). If --tls-cert-file and --tls-private-key-file are provided, this flag will be ignored. (default "/var/run/kubernetes") | ||||
|       --client-ca-file string                                   If set, any request presenting a client certificate signed by one of the authorities in the client-ca-file is authenticated with an identity corresponding to the CommonName of the client certificate. | ||||
|       --cloud-config string                                     The path to the cloud provider configuration file. Empty string for no configuration file. | ||||
|       --cloud-provider string                                   The provider for cloud services. Empty string for no provider. | ||||
|       --cors-allowed-origins value                              List of allowed origins for CORS, comma separated.  An allowed origin can be a regular expression to support subdomain matching. If this list is empty CORS will not be enabled. (default []) | ||||
|       --delete-collection-workers int                           Number of workers spawned for DeleteCollection call. These are used to speed up namespace cleanup. (default 1) | ||||
|       --deserialization-cache-size int                          Number of deserialized json objects to cache in memory. (default 50000) | ||||
|       --enable-swagger-ui                                       Enables swagger ui on the apiserver at /swagger-ui | ||||
|       --etcd-cafile string                                      SSL Certificate Authority file used to secure etcd communication. | ||||
|       --etcd-certfile string                                    SSL certification file used to secure etcd communication. | ||||
|       --etcd-keyfile string                                     SSL key file used to secure etcd communication. | ||||
|       --etcd-prefix string                                      The prefix for all resource paths in etcd. (default "/registry") | ||||
|       --etcd-quorum-read                                        If true, enable quorum read. | ||||
|       --etcd-servers value                                      List of etcd servers to connect with (http://ip:port), comma separated. (default []) | ||||
|       --etcd-servers-overrides value                            Per-resource etcd servers overrides, comma separated. The individual override format: group/resource#servers, where servers are http://ip:port, semicolon separated. (default []) | ||||
|       --event-ttl duration                                      Amount of time to retain events. Default is 1h. (default 1h0m0s) | ||||
|       --experimental-keystone-url string                        If passed, activates the keystone authentication plugin. | ||||
|       --external-hostname string                                The hostname to use when generating externalized URLs for this master (e.g. Swagger API Docs). | ||||
|       --feature-gates value                                     A set of key=value pairs that describe feature gates for alpha/experimental features. Options are: | ||||
| AllAlpha=true|false (ALPHA - default=false) | ||||
| AllowExtTrafficLocalEndpoints=true|false (ALPHA - default=false) | ||||
| AppArmor=true|false (BETA - default=true) | ||||
| DynamicKubeletConfig=true|false (ALPHA - default=false) | ||||
| DynamicVolumeProvisioning=true|false (ALPHA - default=true) | ||||
|       --insecure-bind-address value                             The IP address on which to serve the --insecure-port (set to 0.0.0.0 for all interfaces). Defaults to localhost. (default 127.0.0.1) | ||||
|       --insecure-port int                                       The port on which to serve unsecured, unauthenticated access. Default 8080. It is assumed that firewall rules are set up such that this port is not reachable from outside of the cluster and that port 443 on the cluster's public address is proxied to this port. This is performed by nginx in the default setup. (default 8080) | ||||
|       --kubernetes-service-node-port int                        If non-zero, the Kubernetes master service (which apiserver creates/maintains) will be of type NodePort, using this as the value of the port. If zero, the Kubernetes master service will be of type ClusterIP. | ||||
|       --long-running-request-regexp string                      A regular expression matching long running requests which should be excluded from maximum inflight request handling. (default "(/|^)((watch|proxy)(/|$)|(logs?|portforward|exec|attach)/?$)") | ||||
|       --master-service-namespace string                         The namespace from which the kubernetes master services should be injected into pods. (default "default") | ||||
|       --max-requests-inflight int                               The maximum number of requests in flight at a given time. When the server exceeds this, it rejects requests. Zero for no limit. (default 400) | ||||
|       --min-request-timeout int                                 An optional field indicating the minimum number of seconds a handler must keep a request open before timing it out. Currently only honored by the watch request handler, which picks a randomized value above this number as the connection timeout, to spread out load. (default 1800) | ||||
|       --oidc-ca-file string                                     If set, the OpenID server's certificate will be verified by one of the authorities in the oidc-ca-file, otherwise the host's root CA set will be used. | ||||
|       --oidc-client-id string                                   The client ID for the OpenID Connect client, must be set if oidc-issuer-url is set. | ||||
|       --oidc-groups-claim string                                If provided, the name of a custom OpenID Connect claim for specifying user groups. The claim value is expected to be an array of strings. This flag is experimental, please see the authentication documentation for further details. | ||||
|       --oidc-issuer-url string                                  The URL of the OpenID issuer, only HTTPS scheme will be accepted. If set, it will be used to verify the OIDC JSON Web Token (JWT). | ||||
|       --oidc-username-claim string                              The OpenID claim to use as the user name. Note that claims other than the default ('sub') is not guaranteed to be unique and immutable. This flag is experimental, please see the authentication documentation for further details. (default "sub") | ||||
|       --profiling                                               Enable profiling via web interface host:port/debug/pprof/ (default true) | ||||
|       --runtime-config value                                    A set of key=value pairs that describe runtime configuration that may be passed to apiserver. apis/<groupVersion> key can be used to turn on/off specific api versions. apis/<groupVersion>/<resource> can be used to turn on/off specific resources. api/all and api/legacy are special keys to control all and legacy api versions respectively. | ||||
|       --secure-port int                                         The port on which to serve HTTPS with authentication and authorization. If 0, don't serve HTTPS at all. (default 6443) | ||||
|       --service-cluster-ip-range value                          A CIDR notation IP range from which to assign service cluster IPs. This must not overlap with any IP ranges assigned to nodes for pods. | ||||
|       --service-node-port-range value                           A port range to reserve for services with NodePort visibility. Example: '30000-32767'. Inclusive at both ends of the range. (default 30000-32767) | ||||
|       --storage-backend string                                  The storage backend for persistence. Options: 'etcd2' (default), 'etcd3'. | ||||
|       --storage-media-type string                               The media type to use to store objects in storage. Defaults to application/json. Some resources may only support a specific media type and will ignore this setting. (default "application/json") | ||||
|       --storage-versions string                                 The per-group version to store resources in. Specified in the format "group1/version1,group2/version2,...". In the case where objects are moved from one group to the other, you may specify the format "group1=group2/v1beta1,group3/v1beta1,...". You only need to pass the groups you wish to change from the defaults. It defaults to a list of preferred versions of all registered groups, which is derived from the KUBE_API_VERSIONS environment variable. (default "apps/v1alpha1,authentication.k8s.io/v1beta1,authorization.k8s.io/v1beta1,autoscaling/v1,batch/v1,certificates/v1alpha1,componentconfig/v1alpha1,extensions/v1beta1,federation/v1beta1,policy/v1alpha1,rbac.authorization.k8s.io/v1alpha1,v1") | ||||
|       --target-ram-mb int                                       Memory limit for apiserver in MB (used to configure sizes of caches, etc.) | ||||
|       --tls-cert-file string                                    File containing x509 Certificate for HTTPS. (CA cert, if any, concatenated after server cert). If HTTPS serving is enabled, and --tls-cert-file and --tls-private-key-file are not provided, a self-signed certificate and key are generated for the public address and saved to /var/run/kubernetes. | ||||
|       --tls-private-key-file string                             File containing x509 private key matching --tls-cert-file. | ||||
|       --token-auth-file string                                  If set, the file that will be used to secure the secure port of the API server via token authentication. | ||||
|       --watch-cache                                             Enable watch caching in the apiserver (default true) | ||||
|       --watch-cache-sizes value                                 List of watch cache sizes for every resource (pods, nodes, etc.), comma separated. The individual override format: resource#size, where size is a number. It takes effect when watch-cache is enabled. (default []) | ||||
| ``` | ||||
| 
 | ||||
| ###### Auto generated by spf13/cobra on 12-Aug-2016 | ||||
| ###### Auto generated by spf13/cobra on 2-Sep-2016 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -23,28 +23,28 @@ federation-controller-manager | |||
| ### Options | ||||
| 
 | ||||
| ``` | ||||
|       --address=0.0.0.0: The IP address to serve on (set to 0.0.0.0 for all interfaces) | ||||
|       --cluster-monitor-period=40s: The period for syncing ClusterStatus in ClusterController. | ||||
|       --concurrent-service-syncs=10: The number of service syncing operations that will be done concurrently. Larger number = faster endpoint updating, but more CPU (and network) load | ||||
|       --dns-provider="": DNS provider. Valid values are: ["aws-route53" "google-clouddns"] | ||||
|       --dns-provider-config="": Path to config file for configuring DNS provider. | ||||
|       --federated-api-burst=30: Burst to use while talking with federation apiserver | ||||
|       --federated-api-qps=20: QPS to use while talking with federation apiserver | ||||
|       --federation-name="": Federation name. | ||||
|       --kube-api-content-type="": ContentType of requests sent to apiserver. Passing application/vnd.kubernetes.protobuf is an experimental feature now. | ||||
|       --kubeconfig="": Path to kubeconfig file with authorization and master location information. | ||||
|       --leader-elect[=false]: Start a leader election client and gain leadership before executing the main loop. Enable this when running replicated components for high availability. | ||||
|       --leader-elect-lease-duration=15s: The duration that non-leader candidates will wait after observing a leadership renewal until attempting to acquire leadership of a led but unrenewed leader slot. This is effectively the maximum duration that a leader can be stopped before it is replaced by another candidate. This is only applicable if leader election is enabled. | ||||
|       --leader-elect-renew-deadline=10s: The interval between attempts by the acting master to renew a leadership slot before it stops leading. This must be less than or equal to the lease duration. This is only applicable if leader election is enabled. | ||||
|       --leader-elect-retry-period=2s: The duration the clients should wait between attempting acquisition and renewal of a leadership. This is only applicable if leader election is enabled. | ||||
|       --log-flush-frequency=5s: Maximum number of seconds between log flushes | ||||
|       --master="": The address of the federation API server (overrides any value in kubeconfig) | ||||
|       --port=10253: The port that the controller-manager's http service runs on | ||||
|       --profiling[=true]: Enable profiling via web interface host:port/debug/pprof/ | ||||
|       --zone-name="": Zone name, like example.com. | ||||
|       --address value                          The IP address to serve on (set to 0.0.0.0 for all interfaces) (default 0.0.0.0) | ||||
|       --cluster-monitor-period duration        The period for syncing ClusterStatus in ClusterController. (default 40s) | ||||
|       --concurrent-replicaset-syncs int        The number of ReplicaSets syncing operations that will be done concurrently. Larger number = faster endpoint updating, but more CPU (and network) load (default 10) | ||||
|       --concurrent-service-syncs int           The number of service syncing operations that will be done concurrently. Larger number = faster endpoint updating, but more CPU (and network) load (default 10) | ||||
|       --dns-provider string                    DNS provider. Valid values are: ["aws-route53" "google-clouddns"] | ||||
|       --dns-provider-config string             Path to config file for configuring DNS provider. | ||||
|       --federated-api-burst int                Burst to use while talking with federation apiserver (default 30) | ||||
|       --federated-api-qps value                QPS to use while talking with federation apiserver (default 20) | ||||
|       --federation-name string                 Federation name. | ||||
|       --kube-api-content-type string           ContentType of requests sent to apiserver. Passing application/vnd.kubernetes.protobuf is an experimental feature now. | ||||
|       --kubeconfig string                      Path to kubeconfig file with authorization and master location information. | ||||
|       --leader-elect                           Start a leader election client and gain leadership before executing the main loop. Enable this when running replicated components for high availability. | ||||
|       --leader-elect-lease-duration duration   The duration that non-leader candidates will wait after observing a leadership renewal until attempting to acquire leadership of a led but unrenewed leader slot. This is effectively the maximum duration that a leader can be stopped before it is replaced by another candidate. This is only applicable if leader election is enabled. (default 15s) | ||||
|       --leader-elect-renew-deadline duration   The interval between attempts by the acting master to renew a leadership slot before it stops leading. This must be less than or equal to the lease duration. This is only applicable if leader election is enabled. (default 10s) | ||||
|       --leader-elect-retry-period duration     The duration the clients should wait between attempting acquisition and renewal of a leadership. This is only applicable if leader election is enabled. (default 2s) | ||||
|       --master string                          The address of the federation API server (overrides any value in kubeconfig) | ||||
|       --port int                               The port that the controller-manager's http service runs on (default 10253) | ||||
|       --profiling                              Enable profiling via web interface host:port/debug/pprof/ (default true) | ||||
|       --zone-name string                       Zone name, like example.com. | ||||
| ``` | ||||
| 
 | ||||
| ###### Auto generated by spf13/cobra on 12-Aug-2016 | ||||
| ###### Auto generated by spf13/cobra on 2-Sep-2016 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,4 +1,5 @@ | |||
| assignees: | ||||
| - madhusudancs | ||||
| - mml | ||||
| - nikhiljindal | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,5 +1,6 @@ | |||
| --- | ||||
| assignees: | ||||
| - madhusudancs | ||||
| - mml | ||||
| - nikhiljindal | ||||
| 
 | ||||
|  | @ -12,72 +13,131 @@ This guide explains how to set up cluster federation that lets us control multip | |||
| 
 | ||||
| ## Prerequisites | ||||
| 
 | ||||
| This guide assumes that we have a running Kubernetes cluster. | ||||
| This guide assumes that you have a running Kubernetes cluster. | ||||
| If not, then head over to the [getting started guides](/docs/getting-started-guides/) to bring up a cluster. | ||||
| 
 | ||||
| This guide also assumes that we have the Kubernetes source code that can be | ||||
| [downloaded from here](/docs/getting-started-guides/binary_release/). | ||||
| This guide also assumes that you have a Kubernetes release | ||||
| [downloaded from here](/docs/getting-started-guides/binary_release/), | ||||
| extracted into a directory and all the commands in this guide are run from | ||||
| that directory. | ||||
| 
 | ||||
| ```shell | ||||
| $ curl -L https://github.com/kubernetes/kubernetes/releases/download/v1.4.0/kubernetes.tar.gz | tar xvzf - | ||||
| $ cd kubernetes | ||||
| ``` | ||||
| 
 | ||||
| This guide also assumes that you have an installation of Docker running | ||||
| locally, i.e. on the machine where you run the commands described in this | ||||
| guide. | ||||
| 
 | ||||
| ## Setting up a federation control plane | ||||
| 
 | ||||
| Setting up federation requires running the federation control plane which | ||||
| consists of etcd, federation-apiserver and federation-controller-manager. | ||||
| We can run these binaries as pods on an existing Kubernetes cluster. | ||||
| consists of etcd, federation-apiserver (via the hyperkube binary) and | ||||
| federation-controller-manager (also via the hyperkube binary). You can run | ||||
| these binaries as pods on an existing Kubernetes cluster. | ||||
| 
 | ||||
| Note: This is a new mechanism to turn up Kubernetes Cluster Federation. If | ||||
| you want to follow the old mechanism, please refer to the section | ||||
| [Previous Federation turn up mechanism](#previous-federation-turn-up-mechanism) | ||||
| at the end of this guide. | ||||
| 
 | ||||
| ### Initial setup | ||||
| 
 | ||||
| Create a directory to store the configs required to turn up federation | ||||
| and export that directory path in the environment variable | ||||
| `FEDERATION_OUTPUT_ROOT`. This can be an existing directory, but it is | ||||
| highly recommended to create a separate directory so that it is easier | ||||
| to clean up later. | ||||
| 
 | ||||
| ```shell | ||||
| $ export FEDERATION_OUTPUT_ROOT="${PWD}/_output/federation" | ||||
| $ mkdir -p "${FEDERATION_OUTPUT_ROOT}" | ||||
| ``` | ||||
| 
 | ||||
| Initialize the setup. | ||||
| 
 | ||||
| ```shell | ||||
| $ federation/deploy/deploy.sh init | ||||
| ``` | ||||
| 
 | ||||
| Optionally, you can create/edit `${FEDERATION_OUTPUT_ROOT}/values.yaml` to | ||||
| customize any value in | ||||
| [federation/federation/manifests/federation/values.yaml](https://github.com/madhusudancs/kubernetes-anywhere/blob/federation/federation/manifests/federation/values.yaml). Example: | ||||
| 
 | ||||
| ```yaml | ||||
| apiserverRegistry: "gcr.io/myrepository" | ||||
| apiserverVersion: "v1.5.0-alpha.0.1010+892a6d7af59c0b" | ||||
| controllerManagerRegistry: "gcr.io/myrepository" | ||||
| controllerManagerVersion: "v1.5.0-alpha.0.1010+892a6d7af59c0b" | ||||
| ``` | ||||
| 
 | ||||
| Assuming you have built and pushed the `hyperkube` image to the repository | ||||
| with the given tag in the example above. | ||||
| 
 | ||||
| ### Getting images | ||||
| 
 | ||||
| To run these as pods, we first need images for all the components. We can use | ||||
| official release images or we can build from HEAD. | ||||
| To run the federation control plane components as pods, you first need the | ||||
| images for all the components. You can either use the official release | ||||
| images or you can build them yourself from HEAD. | ||||
| 
 | ||||
| #### Using official release images | ||||
| ### Using official release images | ||||
| 
 | ||||
| As part of every release, images are pushed to `gcr.io/google_containers`. To use | ||||
| these images, we set env var `FEDERATION_PUSH_REPO_BASE=gcr.io/google_containers` | ||||
| This will always use the latest image. | ||||
| To use federation-apiserver and federation-controller-manager images from a specific release, we can set `FEDERATION_IMAGE_TAG`. | ||||
| As part of every Kubernetes release, official release images are pushed to | ||||
| `gcr.io/google_containers`. To use the images in this repository, you can | ||||
| set the container image fields in the following configs to point to the | ||||
| images in this repository. `gcr.io/google_containers/hyperkube` image | ||||
| includes the federation-apiserver and federation-controller-manager | ||||
| binaries, so you can point the corresponding configs for those components | ||||
| to the hyperkube image. | ||||
| 
 | ||||
| #### Building and pushing images from HEAD | ||||
| ### Building and pushing images from HEAD | ||||
| 
 | ||||
| To build the binaries, check out the | ||||
| [Kubernetes repository](https://github.com/kubernetes/kubernetes) and | ||||
| run the following commands from the root of the source directory: | ||||
| 
 | ||||
| To run the code from HEAD, we need to build and push our own images. | ||||
| We can build the images using the following command: | ||||
| 
 | ||||
| ```shell | ||||
| $ FEDERATION=true KUBE_RELEASE_RUN_TESTS=n make quick-release | ||||
| $ federation/develop/develop.sh build_binaries | ||||
| ``` | ||||
| 
 | ||||
| Next, we need to push these images to a registry such as Google Container Registry or Docker Hub, so that our cluster can pull them. | ||||
| If Kubernetes cluster is running on Google Compute Engine (GCE), then we can push the images to `gcr.io/<gce-project-name>`. | ||||
| The command to push the images will look like: | ||||
| To build the image and push it to the repository, run: | ||||
| 
 | ||||
| ```shell | ||||
| $ FEDERATION=true FEDERATION_PUSH_REPO_BASE=gcr.io/<gce-project-name> ./build/push-federation-images.sh | ||||
| $ KUBE_REGISTRY="gcr.io/myrepository" federation/develop/develop.sh build_image | ||||
| $ KUBE_REGISTRY="gcr.io/myrepository" federation/develop/develop.sh push | ||||
| ``` | ||||
| 
 | ||||
| Note: This is going to overwite the values you might have set for | ||||
| `apiserverRegistry`, `apiserverVersion`, `controllerManagerRegistry` and | ||||
| `controllerManagerVersion` in your `${FEDERATION_OUTPUT_ROOT}/values.yaml` | ||||
| file. Hence, it is not recommend to customize these values in | ||||
| `${FEDERATION_OUTPUT_ROOT}/values.yaml` if you are building the | ||||
| images from source. | ||||
| 
 | ||||
| ### Running the federation control plane | ||||
| 
 | ||||
| Once we have the images, we can run these as pods on our existing kubernetes cluster. | ||||
| The command to run these pods on an existing GCE cluster will look like: | ||||
| Once you have the images, you can turn up the federation control plane by | ||||
| running: | ||||
| 
 | ||||
| ```shell | ||||
| $ KUBERNETES_PROVIDER=gce FEDERATION_DNS_PROVIDER=google-clouddns FEDERATION_NAME=myfederation DNS_ZONE_NAME=myfederation.example FEDERATION_PUSH_REPO_BASE=gcr.io/google_containers ./federation/cluster/federation-up.sh | ||||
| $ federation/deploy/deploy.sh deploy_federation | ||||
| ``` | ||||
| 
 | ||||
| `KUBERNETES_PROVIDER` is the cloud provider. | ||||
| This spins up the federation control components as pods managed by | ||||
| [`Deployments`](http://kubernetes.io/docs/user-guide/deployments/) on your | ||||
| existing Kubernetes cluster. It also starts a | ||||
| [`type: LoadBalancer`](http://kubernetes.io/docs/user-guide/services/#type-loadbalancer) | ||||
| [`Service`](http://kubernetes.io/docs/user-guide/services/) for the | ||||
| `federation-apiserver` and a | ||||
| [`PVC`](http://kubernetes.io/docs/user-guide/persistent-volumes/) backed | ||||
| by a dynamically provisioned | ||||
| [`PV`](http://kubernetes.io/docs/user-guide/persistent-volumes/) for | ||||
|  `etcd`. All these components are created in the `federation` namespace. | ||||
| 
 | ||||
| `FEDERATION_DNS_PROVIDER` can be `google-clouddns` or `aws-route53`. It will be | ||||
| set appropriately if it is missing and `KUBERNETES_PROVIDER` is one of `gce`, `gke` and `aws`. | ||||
| This is used to resolve DNS requests for federation services. The service | ||||
| controller keeps DNS records with the provider updated as services/pods are | ||||
| updated in underlying kubernetes clusters. | ||||
| 
 | ||||
| `FEDERATION_NAME` is a name we can choose for our federation. This is the name that will appear in DNS routes. | ||||
| 
 | ||||
| `DNS_ZONE_NAME` is the domain to be used for DNS records. This is a domain that we | ||||
| need to buy and then configure it such that DNS queries for that domain are | ||||
| routed to the appropriate provider as per `FEDERATION_DNS_PROVIDER`. | ||||
| 
 | ||||
| Running that command creates a namespace `federation` and creates 2 deployments: `federation-apiserver` and `federation-controller-manager`. | ||||
| We can verify that the pods are available by running the following command: | ||||
| You can verify that the pods are available by running the following | ||||
| command: | ||||
| 
 | ||||
| ```shell | ||||
| $ kubectl get deployments --namespace=federation | ||||
|  | @ -86,23 +146,21 @@ federation-apiserver            1         1         1            1           1m | |||
| federation-controller-manager   1         1         1            1           1m | ||||
| ``` | ||||
| 
 | ||||
| Running `federation-up.sh` also creates a new record in our kubeconfig for us | ||||
| to be able to talk to federation apiserver. We can view this by running | ||||
| Running `deploy.sh` also creates a new record in your kubeconfig for us | ||||
| to be able to talk to federation apiserver. You can view this by running | ||||
| `kubectl config view`. | ||||
| 
 | ||||
| Note: `federation-up.sh` creates the federation-apiserver pod with an etcd | ||||
| container that is backed by a persistent volume, so as to persist data. This | ||||
| currently works only on AWS, GKE, and GCE.  You can edit | ||||
| `federation/manifests/federation-apiserver-deployment.yaml` to suit your needs, | ||||
| if required. | ||||
| Note: Dynamic provisioning for persistent volume currently works only on | ||||
| AWS, GKE, and GCE. However, you can edit the created `Deployments` to suit | ||||
| your needs, if required. | ||||
| 
 | ||||
| ## Registering Kubernetes clusters for federation | ||||
| ## Registering Kubernetes clusters with federation | ||||
| 
 | ||||
| Now that we have the federation control plane up and running, we can start registering Kubernetes clusters. | ||||
| Now that you have the federation control plane up and running, you can start registering Kubernetes clusters. | ||||
| 
 | ||||
| First of all, we need to create a secret containing kubeconfig for that Kubernetes cluster, which federation control plane will use to talk to that Kubernetes cluster. | ||||
| For now, we create this secret in the host Kubernetes cluster (that hosts federation control plane). When we start supporting secrets in federation control plane, we will create this secret there. | ||||
| Suppose that our kubeconfig for Kubernetes cluster is at `/cluster1/kubeconfig`, we can run the following command to create the secret: | ||||
| First of all, you need to create a secret containing kubeconfig for that Kubernetes cluster, which federation control plane will use to talk to that Kubernetes cluster. | ||||
| For now, you can create this secret in the host Kubernetes cluster (that hosts federation control plane). When federation starts supporting secrets, you will be able to create this secret there. | ||||
| Suppose that your kubeconfig for Kubernetes cluster is at `/cluster1/kubeconfig`, you can run the following command to create the secret: | ||||
| 
 | ||||
| ```shell | ||||
| $ kubectl create secret generic cluster1 --namespace=federation --from-file=/cluster1/kubeconfig | ||||
|  | @ -110,7 +168,7 @@ $ kubectl create secret generic cluster1 --namespace=federation --from-file=/clu | |||
| 
 | ||||
| Note that the file name should be `kubeconfig` since file name determines the name of the key in the secret. | ||||
| 
 | ||||
| Now that the secret is created, we are ready to register the cluster. The YAML file for cluster will look like: | ||||
| Now that the secret is created, you are ready to register the cluster. The YAML file for cluster will look like: | ||||
| 
 | ||||
| ```yaml | ||||
| apiVersion: federation/v1beta1 | ||||
|  | @ -125,16 +183,16 @@ spec: | |||
|     name: <secret-name> | ||||
| ``` | ||||
| 
 | ||||
| We need to insert the appropriate values for `<client-cidr>`, `<apiserver-address>` and `<secret-name>`. | ||||
| `<secret-name>` here is name of the secret that we just created. | ||||
| You need to insert the appropriate values for `<client-cidr>`, `<apiserver-address>` and `<secret-name>`. | ||||
| `<secret-name>` here is name of the secret that you just created. | ||||
| serverAddressByClientCIDRs contains the various server addresses that clients | ||||
| can use as per their CIDR. We can set the server's public IP address with CIDR | ||||
| `"0.0.0.0/0"` which all clients will match. In addition, if we want internal | ||||
| clients to use server's clusterIP, we can set that as serverAddress. The client | ||||
| can use as per their CIDR. You can set the server's public IP address with CIDR | ||||
| `"0.0.0.0/0"` which all clients will match. In addition, if you want internal | ||||
| clients to use server's clusterIP, you can set that as serverAddress. The client | ||||
| CIDR in that case will be a CIDR that only matches IPs of pods running in that | ||||
| cluster. | ||||
| 
 | ||||
| Assuming our YAML file is located at `/cluster1/cluster.yaml`, we can run the following command to register this cluster: | ||||
| Assuming your YAML file is located at `/cluster1/cluster.yaml`, you can run the following command to register this cluster: | ||||
| 
 | ||||
| <!-- TODO(madhusudancs): Make the kubeconfig context configurable with default set to `federation` --> | ||||
| ```shell | ||||
|  | @ -142,8 +200,9 @@ $ kubectl create -f /cluster1/cluster.yaml --context=federation-cluster | |||
| 
 | ||||
| ``` | ||||
| 
 | ||||
| By specifying `--context=federation-cluster`, we direct the request to federation apiserver. | ||||
| we can ensure that the cluster registration was successful by running: | ||||
| By specifying `--context=federation-cluster`, you direct the request to | ||||
| federation apiserver. You can ensure that the cluster registration was | ||||
| successful by running: | ||||
| 
 | ||||
| ```shell | ||||
| $ kubectl get clusters --context=federation-cluster | ||||
|  | @ -151,10 +210,10 @@ NAME       STATUS    VERSION   AGE | |||
| cluster1   Ready               3m | ||||
| ``` | ||||
| 
 | ||||
| ### Updating KubeDNS | ||||
| ## Updating KubeDNS | ||||
| 
 | ||||
| Once the cluster is registered with the federation, we are all ready to use it. | ||||
| But for the cluster to be able to route federation service requests, we need to restart | ||||
| Once the cluster is registered with the federation, you are all set to use it. | ||||
| But for the cluster to be able to route federation service requests, you need to restart | ||||
| KubeDNS and pass it a `--federations` flag which tells it about valid federation DNS hostnames. | ||||
| Format of the flag is like this: | ||||
| 
 | ||||
|  | @ -162,7 +221,7 @@ Format of the flag is like this: | |||
| --federations=${FEDERATION_NAME}=${DNS_DOMAIN_NAME} | ||||
| ``` | ||||
| 
 | ||||
| To update KubeDNS with federations flag, we can edit the existing kubedns replication controller to | ||||
| To update KubeDNS with federations flag, you can edit the existing kubedns replication controller to | ||||
| include that flag in pod template spec and then delete the existing pod. Replication controller will | ||||
| recreate the pod with updated template. | ||||
| 
 | ||||
|  | @ -193,7 +252,99 @@ And then delete it by running: | |||
| $ kubectl delete pods <pod-name> --namespace=kube-system | ||||
| ``` | ||||
| 
 | ||||
| We are now all set to start using federation. | ||||
| You are now all set to start using federation. | ||||
| 
 | ||||
| ## Turn down | ||||
| 
 | ||||
| In order to turn the federation control plane down run the following | ||||
| command: | ||||
| 
 | ||||
| ```shell | ||||
| $ federation/deploy/deploy.sh destroy_federation | ||||
| ``` | ||||
| 
 | ||||
| ## Previous Federation turn up mechanism | ||||
| 
 | ||||
| This describes the previous mechanism we had to turn up Kubernetes Cluster | ||||
| Federation. It is recommended to use the new turn up mechanism. If you would | ||||
| like to use this mechanism instead of the new one, please let us know | ||||
| why the new mechanism doesn't work for your case by filing an issue here - | ||||
| [https://github.com/kubernetes/kubernetes/issues/new](https://github.com/kubernetes/kubernetes/issues/new) | ||||
| 
 | ||||
| ### Getting images | ||||
| 
 | ||||
| To run these as pods, you first need images for all the components. You can use | ||||
| official release images or you can build from HEAD. | ||||
| 
 | ||||
| #### Using official release images | ||||
| 
 | ||||
| As part of every release, images are pushed to `gcr.io/google_containers`. To use | ||||
| these images, set env var `FEDERATION_PUSH_REPO_BASE=gcr.io/google_containers` | ||||
| This will always use the latest image. | ||||
| To use the hyperkube image which includes federation-apiserver and | ||||
| federation-controller-manager from a specific release, set the | ||||
| `FEDERATION_IMAGE_TAG` environment variable. | ||||
| 
 | ||||
| #### Building and pushing images from HEAD | ||||
| 
 | ||||
| To run the code from HEAD, you need to build and push your own images. | ||||
| You can build the images using the following command: | ||||
| 
 | ||||
| ```shell | ||||
| $ FEDERATION=true KUBE_RELEASE_RUN_TESTS=n make quick-release | ||||
| ``` | ||||
| 
 | ||||
| Next, you need to push these images to a registry such as Google Container Registry or Docker Hub, so that your cluster can pull them. | ||||
| If Kubernetes cluster is running on Google Compute Engine (GCE), then you can push the images to `gcr.io/<gce-project-name>`. | ||||
| The command to push the images will look like: | ||||
| 
 | ||||
| ```shell | ||||
| $ FEDERATION=true FEDERATION_PUSH_REPO_BASE=gcr.io/<gce-project-name> ./build/push-federation-images.sh | ||||
| ``` | ||||
| 
 | ||||
| ### Running the federation control plane | ||||
| 
 | ||||
| Once you have the images, you can run these as pods on your existing kubernetes cluster. | ||||
| The command to run these pods on an existing GCE cluster will look like: | ||||
| 
 | ||||
| ```shell | ||||
| $ KUBERNETES_PROVIDER=gce FEDERATION_DNS_PROVIDER=google-clouddns FEDERATION_NAME=myfederation DNS_ZONE_NAME=myfederation.example FEDERATION_PUSH_REPO_BASE=gcr.io/google_containers ./federation/cluster/federation-up.sh | ||||
| ``` | ||||
| 
 | ||||
| `KUBERNETES_PROVIDER` is the cloud provider. | ||||
| 
 | ||||
| `FEDERATION_DNS_PROVIDER` can be `google-clouddns` or `aws-route53`. It will be | ||||
| set appropriately if it is missing and `KUBERNETES_PROVIDER` is one of `gce`, `gke` and `aws`. | ||||
| This is used to resolve DNS requests for federation services. The service | ||||
| controller keeps DNS records with the provider updated as services/pods are | ||||
| updated in underlying kubernetes clusters. | ||||
| 
 | ||||
| `FEDERATION_NAME` is a name you can choose for your federation. This is the name that will appear in DNS routes. | ||||
| 
 | ||||
| `DNS_ZONE_NAME` is the domain to be used for DNS records. This is a domain that you | ||||
| need to buy and then configure it such that DNS queries for that domain are | ||||
| routed to the appropriate provider as per `FEDERATION_DNS_PROVIDER`. | ||||
| 
 | ||||
| Running that command creates a namespace `federation` and creates 2 deployments: `federation-apiserver` and `federation-controller-manager`. | ||||
| You can verify that the pods are available by running the following command: | ||||
| 
 | ||||
| ```shell | ||||
| $ kubectl get deployments --namespace=federation | ||||
| NAME                            DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE | ||||
| federation-apiserver            1         1         1            1           1m | ||||
| federation-controller-manager   1         1         1            1           1m | ||||
| ``` | ||||
| 
 | ||||
| Running `federation-up.sh` also creates a new record in your kubeconfig for us | ||||
| to be able to talk to federation apiserver. You can view this by running | ||||
| `kubectl config view`. | ||||
| 
 | ||||
| Note: `federation-up.sh` creates the federation-apiserver pod with an etcd | ||||
| container that is backed by a persistent volume, so as to persist data. This | ||||
| currently works only on AWS, GKE, and GCE.  You can edit | ||||
| `federation/manifests/federation-apiserver-deployment.yaml` to suit your needs, | ||||
| if required. | ||||
| 
 | ||||
| 
 | ||||
| ## For more information | ||||
| 
 | ||||
|  |  | |||
|  | @ -79,4 +79,8 @@ project](/docs/admin/salt). | |||
| 
 | ||||
| * **Authorization** [authorization](/docs/admin/authorization) | ||||
| 
 | ||||
| * **Admission Controllers** [admission_controllers](/docs/admin/admission-controllers) | ||||
| * **Admission Controllers** [admission controllers](/docs/admin/admission-controllers) | ||||
| 
 | ||||
| * **Sysctls** [sysctls](/docs/admin/sysctls.md) | ||||
| 
 | ||||
| * **Audit** [audit](/docs/admin/audit) | ||||
|  |  | |||
|  | @ -20,81 +20,91 @@ kube-apiserver | |||
| ### Options | ||||
| 
 | ||||
| ``` | ||||
|       --admission-control="AlwaysAdmit": Ordered list of plug-ins to do admission control of resources into cluster. Comma-delimited list of: AlwaysAdmit, AlwaysDeny, AlwaysPullImages, DenyEscalatingExec, DenyExecOnPrivileged, InitialResources, LimitPodHardAntiAffinityTopology, LimitRanger, NamespaceAutoProvision, NamespaceExists, NamespaceLifecycle, PersistentVolumeLabel, PodSecurityPolicy, ResourceQuota, SecurityContextDeny, ServiceAccount | ||||
|       --admission-control-config-file="": File with admission control configuration. | ||||
|       --advertise-address=<nil>: The IP address on which to advertise the apiserver to members of the cluster. This address must be reachable by the rest of the cluster. If blank, the --bind-address will be used. If --bind-address is unspecified, the host's default interface will be used. | ||||
|       --allow-privileged[=false]: If true, allow privileged containers. | ||||
|       --apiserver-count=1: The number of apiservers running in the cluster | ||||
|       --authentication-token-webhook-cache-ttl=2m0s: The duration to cache responses from the webhook token authenticator. Default is 2m | ||||
|       --authentication-token-webhook-config-file="": File with webhook configuration for token authentication in kubeconfig format. The API server will query the remote service to determine authentication for bearer tokens. | ||||
|       --authorization-mode="AlwaysAllow": Ordered list of plug-ins to do authorization on secure port. Comma-delimited list of: AlwaysAllow,AlwaysDeny,ABAC,Webhook,RBAC | ||||
|       --authorization-policy-file="": File with authorization policy in csv format, used with --authorization-mode=ABAC, on the secure port. | ||||
|       --authorization-rbac-super-user="": If specified, a username which avoids RBAC authorization checks and role binding privilege escalation checks, to be used with --authorization-mode=RBAC. | ||||
|       --authorization-webhook-cache-authorized-ttl=5m0s: The duration to cache 'authorized' responses from the webhook authorizer. Default is 5m. | ||||
|       --authorization-webhook-cache-unauthorized-ttl=30s: The duration to cache 'unauthorized' responses from the webhook authorizer. Default is 30s. | ||||
|       --authorization-webhook-config-file="": File with webhook configuration in kubeconfig format, used with --authorization-mode=Webhook. The API server will query the remote service to determine access on the API server's secure port. | ||||
|       --basic-auth-file="": If set, the file that will be used to admit requests to the secure port of the API server via http basic authentication. | ||||
|       --bind-address=0.0.0.0: The IP address on which to listen for the --secure-port port. The associated interface(s) must be reachable by the rest of the cluster, and by CLI/web clients. If blank, all interfaces will be used (0.0.0.0). | ||||
|       --cert-dir="/var/run/kubernetes": The directory where the TLS certs are located (by default /var/run/kubernetes). If --tls-cert-file and --tls-private-key-file are provided, this flag will be ignored. | ||||
|       --client-ca-file="": If set, any request presenting a client certificate signed by one of the authorities in the client-ca-file is authenticated with an identity corresponding to the CommonName of the client certificate. | ||||
|       --cloud-config="": The path to the cloud provider configuration file.  Empty string for no configuration file. | ||||
|       --cloud-provider="": The provider for cloud services.  Empty string for no provider. | ||||
|       --cors-allowed-origins=[]: List of allowed origins for CORS, comma separated.  An allowed origin can be a regular expression to support subdomain matching.  If this list is empty CORS will not be enabled. | ||||
|       --delete-collection-workers=1: Number of workers spawned for DeleteCollection call. These are used to speed up namespace cleanup. | ||||
|       --deserialization-cache-size=50000: Number of deserialized json objects to cache in memory. | ||||
|       --enable-garbage-collector[=false]: Enables the generic garbage collector. MUST be synced with the corresponding flag of the kube-controller-manager. | ||||
|       --enable-swagger-ui[=false]: Enables swagger ui on the apiserver at /swagger-ui | ||||
|       --etcd-cafile="": SSL Certificate Authority file used to secure etcd communication | ||||
|       --etcd-certfile="": SSL certification file used to secure etcd communication | ||||
|       --etcd-keyfile="": SSL key file used to secure etcd communication | ||||
|       --etcd-prefix="/registry": The prefix for all resource paths in etcd. | ||||
|       --etcd-quorum-read[=false]: If true, enable quorum read | ||||
|       --etcd-servers=[]: List of etcd servers to connect with (http://ip:port), comma separated. | ||||
|       --etcd-servers-overrides=[]: Per-resource etcd servers overrides, comma separated. The individual override format: group/resource#servers, where servers are http://ip:port, semicolon separated. | ||||
|       --event-ttl=1h0m0s: Amount of time to retain events. Default 1 hour. | ||||
|       --experimental-keystone-url="": If passed, activates the keystone authentication plugin | ||||
|       --external-hostname="": The hostname to use when generating externalized URLs for this master (e.g. Swagger API Docs.) | ||||
|       --google-json-key="": The Google Cloud Platform Service Account JSON Key to use for authentication. | ||||
|       --insecure-bind-address=127.0.0.1: The IP address on which to serve the --insecure-port (set to 0.0.0.0 for all interfaces). Defaults to localhost. | ||||
|       --insecure-port=8080: The port on which to serve unsecured, unauthenticated access. Default 8080. It is assumed that firewall rules are set up such that this port is not reachable from outside of the cluster and that port 443 on the cluster's public address is proxied to this port. This is performed by nginx in the default setup. | ||||
|       --kubelet-certificate-authority="": Path to a cert. file for the certificate authority. | ||||
|       --kubelet-client-certificate="": Path to a client cert file for TLS. | ||||
|       --kubelet-client-key="": Path to a client key file for TLS. | ||||
|       --kubelet-https[=true]: Use https for kubelet connections | ||||
|       --kubelet-timeout=5s: Timeout for kubelet operations | ||||
|       --kubernetes-service-node-port=0: If non-zero, the Kubernetes master service (which apiserver creates/maintains) will be of type NodePort, using this as the value of the port. If zero, the Kubernetes master service will be of type ClusterIP. | ||||
|       --log-flush-frequency=5s: Maximum number of seconds between log flushes | ||||
|       --long-running-request-regexp="(/|^)((watch|proxy)(/|$)|(logs?|portforward|exec|attach)/?$)": A regular expression matching long running requests which should be excluded from maximum inflight request handling. | ||||
|       --master-service-namespace="default": The namespace from which the kubernetes master services should be injected into pods | ||||
|       --max-connection-bytes-per-sec=0: If non-zero, throttle each user connection to this number of bytes/sec.  Currently only applies to long-running requests | ||||
|       --max-requests-inflight=400: The maximum number of requests in flight at a given time.  When the server exceeds this, it rejects requests.  Zero for no limit. | ||||
|       --min-request-timeout=1800: An optional field indicating the minimum number of seconds a handler must keep a request open before timing it out. Currently only honored by the watch request handler, which picks a randomized value above this number as the connection timeout, to spread out load. | ||||
|       --oidc-ca-file="": If set, the OpenID server's certificate will be verified by one of the authorities in the oidc-ca-file, otherwise the host's root CA set will be used | ||||
|       --oidc-client-id="": The client ID for the OpenID Connect client, must be set if oidc-issuer-url is set | ||||
|       --oidc-groups-claim="": If provided, the name of a custom OpenID Connect claim for specifying user groups. The claim value is expected to be an array of strings. This flag is experimental, please see the authentication documentation for further details. | ||||
|       --oidc-issuer-url="": The URL of the OpenID issuer, only HTTPS scheme will be accepted. If set, it will be used to verify the OIDC JSON Web Token (JWT) | ||||
|       --oidc-username-claim="sub": The OpenID claim to use as the user name. Note that claims other than the default ('sub') is not guaranteed to be unique and immutable. This flag is experimental, please see the authentication documentation for further details. | ||||
|       --profiling[=true]: Enable profiling via web interface host:port/debug/pprof/ | ||||
|       --repair-malformed-updates[=true]: If true, server will do its best to fix the update request to pass the validation, e.g., setting empty UID in update request to its existing value. This flag can be turned off after we fix all the clients that send malformed updates. | ||||
|       --runtime-config=: A set of key=value pairs that describe runtime configuration that may be passed to apiserver. apis/<groupVersion> key can be used to turn on/off specific api versions. apis/<groupVersion>/<resource> can be used to turn on/off specific resources. api/all and api/legacy are special keys to control all and legacy api versions respectively. | ||||
|       --secure-port=6443: The port on which to serve HTTPS with authentication and authorization. If 0, don't serve HTTPS at all. | ||||
|       --service-account-key-file="": File containing PEM-encoded x509 RSA private or public key, used to verify ServiceAccount tokens. If unspecified, --tls-private-key-file is used. | ||||
|       --service-account-lookup[=false]: If true, validate ServiceAccount tokens exist in etcd as part of authentication. | ||||
|       --service-cluster-ip-range=<nil>: A CIDR notation IP range from which to assign service cluster IPs. This must not overlap with any IP ranges assigned to nodes for pods. | ||||
|       --service-node-port-range=: A port range to reserve for services with NodePort visibility.  Example: '30000-32767'.  Inclusive at both ends of the range. | ||||
|       --ssh-keyfile="": If non-empty, use secure SSH proxy to the nodes, using this user keyfile | ||||
|       --ssh-user="": If non-empty, use secure SSH proxy to the nodes, using this user name | ||||
|       --storage-backend="": The storage backend for persistence. Options: 'etcd2' (default), 'etcd3'. | ||||
|       --storage-media-type="application/json": The media type to use to store objects in storage. Defaults to application/json. Some resources may only support a specific media type and will ignore this setting. | ||||
|       --storage-versions="apps/v1alpha1,authentication.k8s.io/v1beta1,authorization.k8s.io/v1beta1,autoscaling/v1,batch/v1,componentconfig/v1alpha1,extensions/v1beta1,policy/v1alpha1,rbac.authorization.k8s.io/v1alpha1,v1": The per-group version to store resources in. Specified in the format "group1/version1,group2/version2,...". In the case where objects are moved from one group to the other, you may specify the format "group1=group2/v1beta1,group3/v1beta1,...". You only need to pass the groups you wish to change from the defaults. It defaults to a list of preferred versions of all registered groups, which is derived from the KUBE_API_VERSIONS environment variable. | ||||
|       --tls-cert-file="": File containing x509 Certificate for HTTPS.  (CA cert, if any, concatenated after server cert). If HTTPS serving is enabled, and --tls-cert-file and --tls-private-key-file are not provided, a self-signed certificate and key are generated for the public address and saved to /var/run/kubernetes. | ||||
|       --tls-private-key-file="": File containing x509 private key matching --tls-cert-file. | ||||
|       --token-auth-file="": If set, the file that will be used to secure the secure port of the API server via token authentication. | ||||
|       --watch-cache[=true]: Enable watch caching in the apiserver | ||||
|       --watch-cache-sizes=[]: List of watch cache sizes for every resource (pods, nodes, etc.), comma separated. The individual override format: resource#size, where size is a number. It takes effect when watch-cache is enabled. | ||||
|       --admission-control string                                Ordered list of plug-ins to do admission control of resources into cluster. Comma-delimited list of: AlwaysAdmit, AlwaysDeny, AlwaysPullImages, DefaultStorageClass, DenyEscalatingExec, DenyExecOnPrivileged, ImagePolicyWebhook, InitialResources, LimitPodHardAntiAffinityTopology, LimitRanger, NamespaceAutoProvision, NamespaceExists, NamespaceLifecycle, PersistentVolumeLabel, PodSecurityPolicy, ResourceQuota, SecurityContextDeny, ServiceAccount. (default "AlwaysAdmit") | ||||
|       --admission-control-config-file string                    File with admission control configuration. | ||||
|       --advertise-address value                                 The IP address on which to advertise the apiserver to members of the cluster. This address must be reachable by the rest of the cluster. If blank, the --bind-address will be used. If --bind-address is unspecified, the host's default interface will be used. | ||||
|       --allow-privileged                                        If true, allow privileged containers. | ||||
|       --apiserver-count int                                     The number of apiservers running in the cluster. (default 1) | ||||
|       --audit-log-maxage int                                    The maximum number of days to retain old audit log files based on the timestamp encoded in their filename. | ||||
|       --audit-log-maxbackup int                                 The maximum number of old audit log files to retain. | ||||
|       --audit-log-maxsize int                                   The maximum size in megabytes of the audit log file before it gets rotated. Defaults to 100MB. | ||||
|       --audit-log-path string                                   If set, all requests coming to the apiserver will be logged to this file. | ||||
|       --authentication-token-webhook-cache-ttl duration         The duration to cache responses from the webhook token authenticator. Default is 2m. (default 2m0s) | ||||
|       --authentication-token-webhook-config-file string         File with webhook configuration for token authentication in kubeconfig format. The API server will query the remote service to determine authentication for bearer tokens. | ||||
|       --authorization-mode string                               Ordered list of plug-ins to do authorization on secure port. Comma-delimited list of: AlwaysAllow,AlwaysDeny,ABAC,Webhook,RBAC. (default "AlwaysAllow") | ||||
|       --authorization-policy-file string                        File with authorization policy in csv format, used with --authorization-mode=ABAC, on the secure port. | ||||
|       --authorization-rbac-super-user string                    If specified, a username which avoids RBAC authorization checks and role binding privilege escalation checks, to be used with --authorization-mode=RBAC. | ||||
|       --authorization-webhook-cache-authorized-ttl duration     The duration to cache 'authorized' responses from the webhook authorizer. Default is 5m. (default 5m0s) | ||||
|       --authorization-webhook-cache-unauthorized-ttl duration   The duration to cache 'unauthorized' responses from the webhook authorizer. Default is 30s. (default 30s) | ||||
|       --authorization-webhook-config-file string                File with webhook configuration in kubeconfig format, used with --authorization-mode=Webhook. The API server will query the remote service to determine access on the API server's secure port. | ||||
|       --basic-auth-file string                                  If set, the file that will be used to admit requests to the secure port of the API server via http basic authentication. | ||||
|       --bind-address value                                      The IP address on which to listen for the --secure-port port. The associated interface(s) must be reachable by the rest of the cluster, and by CLI/web clients. If blank, all interfaces will be used (0.0.0.0). (default 0.0.0.0) | ||||
|       --cert-dir string                                         The directory where the TLS certs are located (by default /var/run/kubernetes). If --tls-cert-file and --tls-private-key-file are provided, this flag will be ignored. (default "/var/run/kubernetes") | ||||
|       --client-ca-file string                                   If set, any request presenting a client certificate signed by one of the authorities in the client-ca-file is authenticated with an identity corresponding to the CommonName of the client certificate. | ||||
|       --cloud-config string                                     The path to the cloud provider configuration file. Empty string for no configuration file. | ||||
|       --cloud-provider string                                   The provider for cloud services. Empty string for no provider. | ||||
|       --cors-allowed-origins value                              List of allowed origins for CORS, comma separated.  An allowed origin can be a regular expression to support subdomain matching. If this list is empty CORS will not be enabled. (default []) | ||||
|       --delete-collection-workers int                           Number of workers spawned for DeleteCollection call. These are used to speed up namespace cleanup. (default 1) | ||||
|       --deserialization-cache-size int                          Number of deserialized json objects to cache in memory. (default 50000) | ||||
|       --enable-garbage-collector                                Enables the generic garbage collector. MUST be synced with the corresponding flag of the kube-controller-manager. (default true) | ||||
|       --enable-swagger-ui                                       Enables swagger ui on the apiserver at /swagger-ui | ||||
|       --etcd-cafile string                                      SSL Certificate Authority file used to secure etcd communication. | ||||
|       --etcd-certfile string                                    SSL certification file used to secure etcd communication. | ||||
|       --etcd-keyfile string                                     SSL key file used to secure etcd communication. | ||||
|       --etcd-prefix string                                      The prefix for all resource paths in etcd. (default "/registry") | ||||
|       --etcd-quorum-read                                        If true, enable quorum read. | ||||
|       --etcd-servers value                                      List of etcd servers to connect with (http://ip:port), comma separated. (default []) | ||||
|       --etcd-servers-overrides value                            Per-resource etcd servers overrides, comma separated. The individual override format: group/resource#servers, where servers are http://ip:port, semicolon separated. (default []) | ||||
|       --event-ttl duration                                      Amount of time to retain events. Default is 1h. (default 1h0m0s) | ||||
|       --experimental-keystone-url string                        If passed, activates the keystone authentication plugin. | ||||
|       --external-hostname string                                The hostname to use when generating externalized URLs for this master (e.g. Swagger API Docs). | ||||
|       --feature-gates value                                     A set of key=value pairs that describe feature gates for alpha/experimental features. Options are: | ||||
| AllAlpha=true|false (ALPHA - default=false) | ||||
| AllowExtTrafficLocalEndpoints=true|false (ALPHA - default=false) | ||||
| AppArmor=true|false (BETA - default=true) | ||||
| DynamicKubeletConfig=true|false (ALPHA - default=false) | ||||
| DynamicVolumeProvisioning=true|false (ALPHA - default=true) | ||||
|       --google-json-key string                                  The Google Cloud Platform Service Account JSON Key to use for authentication. | ||||
|       --insecure-bind-address value                             The IP address on which to serve the --insecure-port (set to 0.0.0.0 for all interfaces). Defaults to localhost. (default 127.0.0.1) | ||||
|       --insecure-port int                                       The port on which to serve unsecured, unauthenticated access. Default 8080. It is assumed that firewall rules are set up such that this port is not reachable from outside of the cluster and that port 443 on the cluster's public address is proxied to this port. This is performed by nginx in the default setup. (default 8080) | ||||
|       --kubelet-certificate-authority string                    Path to a cert file for the certificate authority. | ||||
|       --kubelet-client-certificate string                       Path to a client cert file for TLS. | ||||
|       --kubelet-client-key string                               Path to a client key file for TLS. | ||||
|       --kubelet-https                                           Use https for kubelet connections. (default true) | ||||
|       --kubelet-timeout duration                                Timeout for kubelet operations. (default 5s) | ||||
|       --kubernetes-service-node-port int                        If non-zero, the Kubernetes master service (which apiserver creates/maintains) will be of type NodePort, using this as the value of the port. If zero, the Kubernetes master service will be of type ClusterIP. | ||||
|       --long-running-request-regexp string                      A regular expression matching long running requests which should be excluded from maximum inflight request handling. (default "(/|^)((watch|proxy)(/|$)|(logs?|portforward|exec|attach)/?$)") | ||||
|       --master-service-namespace string                         The namespace from which the kubernetes master services should be injected into pods. (default "default") | ||||
|       --max-connection-bytes-per-sec int                        If non-zero, throttle each user connection to this number of bytes/sec. Currently only applies to long-running requests. | ||||
|       --max-requests-inflight int                               The maximum number of requests in flight at a given time. When the server exceeds this, it rejects requests. Zero for no limit. (default 400) | ||||
|       --min-request-timeout int                                 An optional field indicating the minimum number of seconds a handler must keep a request open before timing it out. Currently only honored by the watch request handler, which picks a randomized value above this number as the connection timeout, to spread out load. (default 1800) | ||||
|       --oidc-ca-file string                                     If set, the OpenID server's certificate will be verified by one of the authorities in the oidc-ca-file, otherwise the host's root CA set will be used. | ||||
|       --oidc-client-id string                                   The client ID for the OpenID Connect client, must be set if oidc-issuer-url is set. | ||||
|       --oidc-groups-claim string                                If provided, the name of a custom OpenID Connect claim for specifying user groups. The claim value is expected to be an array of strings. This flag is experimental, please see the authentication documentation for further details. | ||||
|       --oidc-issuer-url string                                  The URL of the OpenID issuer, only HTTPS scheme will be accepted. If set, it will be used to verify the OIDC JSON Web Token (JWT). | ||||
|       --oidc-username-claim string                              The OpenID claim to use as the user name. Note that claims other than the default ('sub') is not guaranteed to be unique and immutable. This flag is experimental, please see the authentication documentation for further details. (default "sub") | ||||
|       --profiling                                               Enable profiling via web interface host:port/debug/pprof/ (default true) | ||||
|       --repair-malformed-updates                                If true, server will do its best to fix the update request to pass the validation, e.g., setting empty UID in update request to its existing value. This flag can be turned off after we fix all the clients that send malformed updates. (default true) | ||||
|       --runtime-config value                                    A set of key=value pairs that describe runtime configuration that may be passed to apiserver. apis/<groupVersion> key can be used to turn on/off specific api versions. apis/<groupVersion>/<resource> can be used to turn on/off specific resources. api/all and api/legacy are special keys to control all and legacy api versions respectively. | ||||
|       --secure-port int                                         The port on which to serve HTTPS with authentication and authorization. If 0, don't serve HTTPS at all. (default 6443) | ||||
|       --service-account-key-file string                         File containing PEM-encoded x509 RSA private or public key, used to verify ServiceAccount tokens. If unspecified, --tls-private-key-file is used. | ||||
|       --service-account-lookup                                  If true, validate ServiceAccount tokens exist in etcd as part of authentication. | ||||
|       --service-cluster-ip-range value                          A CIDR notation IP range from which to assign service cluster IPs. This must not overlap with any IP ranges assigned to nodes for pods. | ||||
|       --service-node-port-range value                           A port range to reserve for services with NodePort visibility. Example: '30000-32767'. Inclusive at both ends of the range. (default 30000-32767) | ||||
|       --ssh-keyfile string                                      If non-empty, use secure SSH proxy to the nodes, using this user keyfile | ||||
|       --ssh-user string                                         If non-empty, use secure SSH proxy to the nodes, using this user name | ||||
|       --storage-backend string                                  The storage backend for persistence. Options: 'etcd2' (default), 'etcd3'. | ||||
|       --storage-media-type string                               The media type to use to store objects in storage. Defaults to application/json. Some resources may only support a specific media type and will ignore this setting. (default "application/json") | ||||
|       --storage-versions string                                 The per-group version to store resources in. Specified in the format "group1/version1,group2/version2,...". In the case where objects are moved from one group to the other, you may specify the format "group1=group2/v1beta1,group3/v1beta1,...". You only need to pass the groups you wish to change from the defaults. It defaults to a list of preferred versions of all registered groups, which is derived from the KUBE_API_VERSIONS environment variable. (default "apps/v1alpha1,authentication.k8s.io/v1beta1,authorization.k8s.io/v1beta1,autoscaling/v1,batch/v1,certificates/v1alpha1,componentconfig/v1alpha1,extensions/v1beta1,imagepolicy.k8s.io/v1alpha1,policy/v1alpha1,rbac.authorization.k8s.io/v1alpha1,v1") | ||||
|       --target-ram-mb int                                       Memory limit for apiserver in MB (used to configure sizes of caches, etc.) | ||||
|       --tls-cert-file string                                    File containing x509 Certificate for HTTPS. (CA cert, if any, concatenated after server cert). If HTTPS serving is enabled, and --tls-cert-file and --tls-private-key-file are not provided, a self-signed certificate and key are generated for the public address and saved to /var/run/kubernetes. | ||||
|       --tls-private-key-file string                             File containing x509 private key matching --tls-cert-file. | ||||
|       --token-auth-file string                                  If set, the file that will be used to secure the secure port of the API server via token authentication. | ||||
|       --watch-cache                                             Enable watch caching in the apiserver (default true) | ||||
|       --watch-cache-sizes value                                 List of watch cache sizes for every resource (pods, nodes, etc.), comma separated. The individual override format: resource#size, where size is a number. It takes effect when watch-cache is enabled. (default []) | ||||
| ``` | ||||
| 
 | ||||
| ###### Auto generated by spf13/cobra on 12-Aug-2016 | ||||
| ###### Auto generated by spf13/cobra on 2-Sep-2016 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -24,68 +24,81 @@ kube-controller-manager | |||
| ### Options | ||||
| 
 | ||||
| ``` | ||||
|       --address=0.0.0.0: The IP address to serve on (set to 0.0.0.0 for all interfaces) | ||||
|       --allocate-node-cidrs[=false]: Should CIDRs for Pods be allocated and set on the cloud provider. | ||||
|       --cloud-config="": The path to the cloud provider configuration file.  Empty string for no configuration file. | ||||
|       --cloud-provider="": The provider for cloud services.  Empty string for no provider. | ||||
|       --cluster-cidr="": CIDR Range for Pods in cluster. | ||||
|       --cluster-name="kubernetes": The instance prefix for the cluster | ||||
|       --concurrent-deployment-syncs=5: The number of deployment objects that are allowed to sync concurrently. Larger number = more responsive deployments, but more CPU (and network) load | ||||
|       --concurrent-endpoint-syncs=5: The number of endpoint syncing operations that will be done concurrently. Larger number = faster endpoint updating, but more CPU (and network) load | ||||
|       --concurrent-namespace-syncs=2: The number of namespace objects that are allowed to sync concurrently. Larger number = more responsive namespace termination, but more CPU (and network) load | ||||
|       --concurrent-replicaset-syncs=5: The number of replica sets that are allowed to sync concurrently. Larger number = more responsive replica management, but more CPU (and network) load | ||||
|       --concurrent-resource-quota-syncs=5: The number of resource quotas that are allowed to sync concurrently. Larger number = more responsive quota management, but more CPU (and network) load | ||||
|       --concurrent_rc_syncs=5: The number of replication controllers that are allowed to sync concurrently. Larger number = more responsive replica management, but more CPU (and network) load | ||||
|       --configure-cloud-routes[=true]: Should CIDRs allocated by allocate-node-cidrs be configured on the cloud provider. | ||||
|       --controller-start-interval=0: Interval between starting controller managers. | ||||
|       --daemonset-lookup-cache-size=1024: The the size of lookup cache for daemonsets. Larger number = more responsive daemonsets, but more MEM load. | ||||
|       --deleting-pods-burst=1: Number of nodes on which pods are bursty deleted in case of node failure. For more details look into RateLimiter. | ||||
|       --deleting-pods-qps=0.1: Number of nodes per second on which pods are deleted in case of node failure. | ||||
|       --deployment-controller-sync-period=30s: Period for syncing the deployments. | ||||
|       --enable-dynamic-provisioning[=true]: Enable dynamic provisioning for environments that support it. | ||||
|       --enable-garbage-collector[=false]: Enables the generic garbage collector. MUST be synced with the corresponding flag of the kube-apiserver. WARNING: the generic garbage collector is an alpha feature. | ||||
|       --enable-hostpath-provisioner[=false]: Enable HostPath PV provisioning when running without a cloud provider. This allows testing and development of provisioning features.  HostPath provisioning is not supported in any way, won't work in a multi-node cluster, and should not be used for anything other than testing or development. | ||||
|       --flex-volume-plugin-dir="/usr/libexec/kubernetes/kubelet-plugins/volume/exec/": Full path of the directory in which the flex volume plugin should search for additional third party volume plugins. | ||||
|       --google-json-key="": The Google Cloud Platform Service Account JSON Key to use for authentication. | ||||
|       --horizontal-pod-autoscaler-sync-period=30s: The period for syncing the number of pods in horizontal pod autoscaler. | ||||
|       --kube-api-burst=30: Burst to use while talking with kubernetes apiserver | ||||
|       --kube-api-content-type="application/vnd.kubernetes.protobuf": Content type of requests sent to apiserver. | ||||
|       --kube-api-qps=20: QPS to use while talking with kubernetes apiserver | ||||
|       --kubeconfig="": Path to kubeconfig file with authorization and master location information. | ||||
|       --leader-elect[=false]: Start a leader election client and gain leadership before executing the main loop. Enable this when running replicated components for high availability. | ||||
|       --leader-elect-lease-duration=15s: The duration that non-leader candidates will wait after observing a leadership renewal until attempting to acquire leadership of a led but unrenewed leader slot. This is effectively the maximum duration that a leader can be stopped before it is replaced by another candidate. This is only applicable if leader election is enabled. | ||||
|       --leader-elect-renew-deadline=10s: The interval between attempts by the acting master to renew a leadership slot before it stops leading. This must be less than or equal to the lease duration. This is only applicable if leader election is enabled. | ||||
|       --leader-elect-retry-period=2s: The duration the clients should wait between attempting acquisition and renewal of a leadership. This is only applicable if leader election is enabled. | ||||
|       --log-flush-frequency=5s: Maximum number of seconds between log flushes | ||||
|       --master="": The address of the Kubernetes API server (overrides any value in kubeconfig) | ||||
|       --min-resync-period=12h0m0s: The resync period in reflectors will be random between MinResyncPeriod and 2*MinResyncPeriod | ||||
|       --namespace-sync-period=5m0s: The period for syncing namespace life-cycle updates | ||||
|       --node-cidr-mask-size=24: Mask size for node cidr in cluster. | ||||
|       --node-monitor-grace-period=40s: Amount of time which we allow running Node to be unresponsive before marking it unhealty. Must be N times more than kubelet's nodeStatusUpdateFrequency, where N means number of retries allowed for kubelet to post node status. | ||||
|       --node-monitor-period=5s: The period for syncing NodeStatus in NodeController. | ||||
|       --node-startup-grace-period=1m0s: Amount of time which we allow starting Node to be unresponsive before marking it unhealty. | ||||
|       --node-sync-period=10s: The period for syncing nodes from cloudprovider. Longer periods will result in fewer calls to cloud provider, but may delay addition of new nodes to cluster. | ||||
|       --pod-eviction-timeout=5m0s: The grace period for deleting pods on failed nodes. | ||||
|       --port=10252: The port that the controller-manager's http service runs on | ||||
|       --profiling[=true]: Enable profiling via web interface host:port/debug/pprof/ | ||||
|       --pv-recycler-increment-timeout-nfs=30: the increment of time added per Gi to ActiveDeadlineSeconds for an NFS scrubber pod | ||||
|       --pv-recycler-minimum-timeout-hostpath=60: The minimum ActiveDeadlineSeconds to use for a HostPath Recycler pod.  This is for development and testing only and will not work in a multi-node cluster. | ||||
|       --pv-recycler-minimum-timeout-nfs=300: The minimum ActiveDeadlineSeconds to use for an NFS Recycler pod | ||||
|       --pv-recycler-pod-template-filepath-hostpath="": The file path to a pod definition used as a template for HostPath persistent volume recycling. This is for development and testing only and will not work in a multi-node cluster. | ||||
|       --pv-recycler-pod-template-filepath-nfs="": The file path to a pod definition used as a template for NFS persistent volume recycling | ||||
|       --pv-recycler-timeout-increment-hostpath=30: the increment of time added per Gi to ActiveDeadlineSeconds for a HostPath scrubber pod.  This is for development and testing only and will not work in a multi-node cluster. | ||||
|       --pvclaimbinder-sync-period=15s: The period for syncing persistent volumes and persistent volume claims | ||||
|       --replicaset-lookup-cache-size=4096: The the size of lookup cache for replicatsets. Larger number = more responsive replica management, but more MEM load. | ||||
|       --replication-controller-lookup-cache-size=4096: The the size of lookup cache for replication controllers. Larger number = more responsive replica management, but more MEM load. | ||||
|       --resource-quota-sync-period=5m0s: The period for syncing quota usage status in the system | ||||
|       --root-ca-file="": If set, this root certificate authority will be included in service account's token secret. This must be a valid PEM-encoded CA bundle. | ||||
|       --service-account-private-key-file="": Filename containing a PEM-encoded private RSA key used to sign service account tokens. | ||||
|       --service-cluster-ip-range="": CIDR Range for Services in cluster. | ||||
|       --service-sync-period=5m0s: The period for syncing services with their external load balancers | ||||
|       --terminated-pod-gc-threshold=12500: Number of terminated pods that can exist before the terminated pod garbage collector starts deleting terminated pods. If <= 0, the terminated pod garbage collector is disabled. | ||||
|       --address value                                                     The IP address to serve on (set to 0.0.0.0 for all interfaces) (default 0.0.0.0) | ||||
|       --allocate-node-cidrs                                               Should CIDRs for Pods be allocated and set on the cloud provider. | ||||
|       --cloud-config string                                               The path to the cloud provider configuration file.  Empty string for no configuration file. | ||||
|       --cloud-provider string                                             The provider for cloud services.  Empty string for no provider. | ||||
|       --cluster-cidr string                                               CIDR Range for Pods in cluster. | ||||
|       --cluster-name string                                               The instance prefix for the cluster (default "kubernetes") | ||||
|       --cluster-signing-cert-file string                                  Filename containing a PEM-encoded X509 CA certificate used to issue cluster-scoped certificates (default "/etc/kubernetes/ca/ca.pem") | ||||
|       --cluster-signing-key-file string                                   Filename containing a PEM-encoded RSA or ECDSA private key used to sign cluster-scoped certificates (default "/etc/kubernetes/ca/ca.key") | ||||
|       --concurrent-deployment-syncs value                                 The number of deployment objects that are allowed to sync concurrently. Larger number = more responsive deployments, but more CPU (and network) load (default 5) | ||||
|       --concurrent-endpoint-syncs value                                   The number of endpoint syncing operations that will be done concurrently. Larger number = faster endpoint updating, but more CPU (and network) load (default 5) | ||||
|       --concurrent-gc-syncs value                                         The number of garbage collector workers that are allowed to sync concurrently. (default 20) | ||||
|       --concurrent-namespace-syncs value                                  The number of namespace objects that are allowed to sync concurrently. Larger number = more responsive namespace termination, but more CPU (and network) load (default 2) | ||||
|       --concurrent-replicaset-syncs value                                 The number of replica sets that are allowed to sync concurrently. Larger number = more responsive replica management, but more CPU (and network) load (default 5) | ||||
|       --concurrent-resource-quota-syncs value                             The number of resource quotas that are allowed to sync concurrently. Larger number = more responsive quota management, but more CPU (and network) load (default 5) | ||||
|       --concurrent-service-syncs value                                    The number of services that are allowed to sync concurrently. Larger number = more responsive service management, but more CPU (and network) load (default 1) | ||||
|       --concurrent-serviceaccount-token-syncs value                       The number of service account token objects that are allowed to sync concurrently. Larger number = more responsive token generation, but more CPU (and network) load (default 5) | ||||
|       --concurrent_rc_syncs value                                         The number of replication controllers that are allowed to sync concurrently. Larger number = more responsive replica management, but more CPU (and network) load (default 5) | ||||
|       --configure-cloud-routes                                            Should CIDRs allocated by allocate-node-cidrs be configured on the cloud provider. (default true) | ||||
|       --controller-start-interval duration                                Interval between starting controller managers. | ||||
|       --daemonset-lookup-cache-size value                                 The the size of lookup cache for daemonsets. Larger number = more responsive daemonsets, but more MEM load. (default 1024) | ||||
|       --deployment-controller-sync-period duration                        Period for syncing the deployments. (default 30s) | ||||
|       --enable-dynamic-provisioning                                       Enable dynamic provisioning for environments that support it. (default true) | ||||
|       --enable-garbage-collector                                          Enables the generic garbage collector. MUST be synced with the corresponding flag of the kube-apiserver. (default true) | ||||
|       --enable-hostpath-provisioner                                       Enable HostPath PV provisioning when running without a cloud provider. This allows testing and development of provisioning features.  HostPath provisioning is not supported in any way, won't work in a multi-node cluster, and should not be used for anything other than testing or development. | ||||
|       --feature-gates value                                               A set of key=value pairs that describe feature gates for alpha/experimental features. Options are: | ||||
| AllAlpha=true|false (ALPHA - default=false) | ||||
| AllowExtTrafficLocalEndpoints=true|false (ALPHA - default=false) | ||||
| AppArmor=true|false (BETA - default=true) | ||||
| DynamicKubeletConfig=true|false (ALPHA - default=false) | ||||
| DynamicVolumeProvisioning=true|false (ALPHA - default=true) | ||||
|       --flex-volume-plugin-dir string                                     Full path of the directory in which the flex volume plugin should search for additional third party volume plugins. (default "/usr/libexec/kubernetes/kubelet-plugins/volume/exec/") | ||||
|       --google-json-key string                                            The Google Cloud Platform Service Account JSON Key to use for authentication. | ||||
|       --horizontal-pod-autoscaler-sync-period duration                    The period for syncing the number of pods in horizontal pod autoscaler. (default 30s) | ||||
|       --insecure-experimental-approve-all-kubelet-csrs-for-group string   The group for which the controller-manager will auto approve all CSRs for kubelet client certificates. | ||||
|       --kube-api-burst value                                              Burst to use while talking with kubernetes apiserver (default 30) | ||||
|       --kube-api-content-type string                                      Content type of requests sent to apiserver. (default "application/vnd.kubernetes.protobuf") | ||||
|       --kube-api-qps value                                                QPS to use while talking with kubernetes apiserver (default 20) | ||||
|       --kubeconfig string                                                 Path to kubeconfig file with authorization and master location information. | ||||
|       --large-cluster-size-threshold value                                Number of nodes from which NodeController treats the cluster as large for the eviction logic purposes. --secondary-node-eviction-rate is implicitly overridden to 0 for clusters this size or smaller. (default 50) | ||||
|       --leader-elect                                                      Start a leader election client and gain leadership before executing the main loop. Enable this when running replicated components for high availability. (default true) | ||||
|       --leader-elect-lease-duration duration                              The duration that non-leader candidates will wait after observing a leadership renewal until attempting to acquire leadership of a led but unrenewed leader slot. This is effectively the maximum duration that a leader can be stopped before it is replaced by another candidate. This is only applicable if leader election is enabled. (default 15s) | ||||
|       --leader-elect-renew-deadline duration                              The interval between attempts by the acting master to renew a leadership slot before it stops leading. This must be less than or equal to the lease duration. This is only applicable if leader election is enabled. (default 10s) | ||||
|       --leader-elect-retry-period duration                                The duration the clients should wait between attempting acquisition and renewal of a leadership. This is only applicable if leader election is enabled. (default 2s) | ||||
|       --master string                                                     The address of the Kubernetes API server (overrides any value in kubeconfig) | ||||
|       --min-resync-period duration                                        The resync period in reflectors will be random between MinResyncPeriod and 2*MinResyncPeriod (default 12h0m0s) | ||||
|       --namespace-sync-period duration                                    The period for syncing namespace life-cycle updates (default 5m0s) | ||||
|       --node-cidr-mask-size value                                         Mask size for node cidr in cluster. (default 24) | ||||
|       --node-eviction-rate value                                          Number of nodes per second on which pods are deleted in case of node failure when a zone is healthy (see --unhealthy-zone-threshold for definition of healthy/unhealthy). Zone refers to entire cluster in non-multizone clusters. (default 0.1) | ||||
|       --node-monitor-grace-period duration                                Amount of time which we allow running Node to be unresponsive before marking it unhealthy. Must be N times more than kubelet's nodeStatusUpdateFrequency, where N means number of retries allowed for kubelet to post node status. (default 40s) | ||||
|       --node-monitor-period duration                                      The period for syncing NodeStatus in NodeController. (default 5s) | ||||
|       --node-startup-grace-period duration                                Amount of time which we allow starting Node to be unresponsive before marking it unhealthy. (default 1m0s) | ||||
|       --node-sync-period duration                                         The period for syncing nodes from cloudprovider. Longer periods will result in fewer calls to cloud provider, but may delay addition of new nodes to cluster. (default 10s) | ||||
|       --pod-eviction-timeout duration                                     The grace period for deleting pods on failed nodes. (default 5m0s) | ||||
|       --port value                                                        The port that the controller-manager's http service runs on (default 10252) | ||||
|       --profiling                                                         Enable profiling via web interface host:port/debug/pprof/ (default true) | ||||
|       --pv-recycler-increment-timeout-nfs value                           the increment of time added per Gi to ActiveDeadlineSeconds for an NFS scrubber pod (default 30) | ||||
|       --pv-recycler-minimum-timeout-hostpath value                        The minimum ActiveDeadlineSeconds to use for a HostPath Recycler pod.  This is for development and testing only and will not work in a multi-node cluster. (default 60) | ||||
|       --pv-recycler-minimum-timeout-nfs value                             The minimum ActiveDeadlineSeconds to use for an NFS Recycler pod (default 300) | ||||
|       --pv-recycler-pod-template-filepath-hostpath string                 The file path to a pod definition used as a template for HostPath persistent volume recycling. This is for development and testing only and will not work in a multi-node cluster. | ||||
|       --pv-recycler-pod-template-filepath-nfs string                      The file path to a pod definition used as a template for NFS persistent volume recycling | ||||
|       --pv-recycler-timeout-increment-hostpath value                      the increment of time added per Gi to ActiveDeadlineSeconds for a HostPath scrubber pod.  This is for development and testing only and will not work in a multi-node cluster. (default 30) | ||||
|       --pvclaimbinder-sync-period duration                                The period for syncing persistent volumes and persistent volume claims (default 15s) | ||||
|       --replicaset-lookup-cache-size value                                The the size of lookup cache for replicatsets. Larger number = more responsive replica management, but more MEM load. (default 4096) | ||||
|       --replication-controller-lookup-cache-size value                    The the size of lookup cache for replication controllers. Larger number = more responsive replica management, but more MEM load. (default 4096) | ||||
|       --resource-quota-sync-period duration                               The period for syncing quota usage status in the system (default 5m0s) | ||||
|       --root-ca-file string                                               If set, this root certificate authority will be included in service account's token secret. This must be a valid PEM-encoded CA bundle. | ||||
|       --secondary-node-eviction-rate value                                Number of nodes per second on which pods are deleted in case of node failure when a zone is unhealthy (see --unhealthy-zone-threshold for definition of healthy/unhealthy). Zone refers to entire cluster in non-multizone clusters. This value is implicitly overridden to 0 if the cluster size is smaller than --large-cluster-size-threshold. (default 0.01) | ||||
|       --service-account-private-key-file string                           Filename containing a PEM-encoded private RSA key used to sign service account tokens. | ||||
|       --service-cluster-ip-range string                                   CIDR Range for Services in cluster. | ||||
|       --service-sync-period duration                                      The period for syncing services with their external load balancers (default 5m0s) | ||||
|       --terminated-pod-gc-threshold value                                 Number of terminated pods that can exist before the terminated pod garbage collector starts deleting terminated pods. If <= 0, the terminated pod garbage collector is disabled. (default 12500) | ||||
|       --unhealthy-zone-threshold value                                    Fraction of Nodes in a zone which needs to be not Ready (minimum 3) for zone to be treated as unhealthy.  (default 0.55) | ||||
| ``` | ||||
| 
 | ||||
| ###### Auto generated by spf13/cobra on 12-Aug-2016 | ||||
| ###### Auto generated by spf13/cobra on 2-Sep-2016 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -23,33 +23,38 @@ kube-proxy | |||
| ### Options | ||||
| 
 | ||||
| ``` | ||||
|       --bind-address=0.0.0.0: The IP address for the proxy server to serve on (set to 0.0.0.0 for all interfaces) | ||||
|       --cleanup-iptables[=false]: If true cleanup iptables rules and exit. | ||||
|       --cluster-cidr="": The CIDR range of pods in the cluster. It is used to bridge traffic coming from outside of the cluster. If not provided, no off-cluster bridging will be performed. | ||||
|       --config-sync-period=15m0s: How often configuration from the apiserver is refreshed.  Must be greater than 0. | ||||
|       --conntrack-max=0: Maximum number of NAT connections to track (0 to leave as-is). | ||||
|       --conntrack-max-per-core=32768: Maximum number of NAT connections to track per CPU core (0 to leave as-is). This is only considered if conntrack-max is 0. | ||||
|       --conntrack-tcp-timeout-established=24h0m0s: Idle timeout for established TCP connections (0 to leave as-is) | ||||
|       --google-json-key="": The Google Cloud Platform Service Account JSON Key to use for authentication. | ||||
|       --healthz-bind-address=127.0.0.1: The IP address for the health check server to serve on, defaulting to 127.0.0.1 (set to 0.0.0.0 for all interfaces) | ||||
|       --healthz-port=10249: The port to bind the health check server. Use 0 to disable. | ||||
|       --hostname-override="": If non-empty, will use this string as identification instead of the actual hostname. | ||||
|       --iptables-masquerade-bit=14: If using the pure iptables proxy, the bit of the fwmark space to mark packets requiring SNAT with.  Must be within the range [0, 31]. | ||||
|       --iptables-sync-period=30s: How often iptables rules are refreshed (e.g. '5s', '1m', '2h22m').  Must be greater than 0. | ||||
|       --kube-api-burst=10: Burst to use while talking with kubernetes apiserver | ||||
|       --kube-api-content-type="application/vnd.kubernetes.protobuf": Content type of requests sent to apiserver. | ||||
|       --kube-api-qps=5: QPS to use while talking with kubernetes apiserver | ||||
|       --kubeconfig="": Path to kubeconfig file with authorization information (the master location is set by the master flag). | ||||
|       --log-flush-frequency=5s: Maximum number of seconds between log flushes | ||||
|       --masquerade-all[=false]: If using the pure iptables proxy, SNAT everything | ||||
|       --master="": The address of the Kubernetes API server (overrides any value in kubeconfig) | ||||
|       --oom-score-adj=-999: The oom-score-adj value for kube-proxy process. Values must be within the range [-1000, 1000] | ||||
|       --proxy-mode=: Which proxy mode to use: 'userspace' (older) or 'iptables' (faster). If blank, look at the Node object on the Kubernetes API and respect the 'net.experimental.kubernetes.io/proxy-mode' annotation if provided.  Otherwise use the best-available proxy (currently iptables).  If the iptables proxy is selected, regardless of how, but the system's kernel or iptables versions are insufficient, this always falls back to the userspace proxy. | ||||
|       --proxy-port-range=: Range of host ports (beginPort-endPort, inclusive) that may be consumed in order to proxy service traffic. If unspecified (0-0) then ports will be randomly chosen. | ||||
|       --udp-timeout=250ms: How long an idle UDP connection will be kept open (e.g. '250ms', '2s').  Must be greater than 0. Only applicable for proxy-mode=userspace | ||||
|       --bind-address value                           The IP address for the proxy server to serve on (set to 0.0.0.0 for all interfaces) (default 0.0.0.0) | ||||
|       --cleanup-iptables                             If true cleanup iptables rules and exit. | ||||
|       --cluster-cidr string                          The CIDR range of pods in the cluster. It is used to bridge traffic coming from outside of the cluster. If not provided, no off-cluster bridging will be performed. | ||||
|       --config-sync-period duration                  How often configuration from the apiserver is refreshed.  Must be greater than 0. (default 15m0s) | ||||
|       --conntrack-max value                          Maximum number of NAT connections to track (0 to leave as-is). | ||||
|       --conntrack-max-per-core value                 Maximum number of NAT connections to track per CPU core (0 to leave as-is). This is only considered if conntrack-max is 0. (default 32768) | ||||
|       --conntrack-tcp-timeout-established duration   Idle timeout for established TCP connections (0 to leave as-is) (default 24h0m0s) | ||||
|       --feature-gates value                          A set of key=value pairs that describe feature gates for alpha/experimental features. Options are: | ||||
| AllAlpha=true|false (ALPHA - default=false) | ||||
| AllowExtTrafficLocalEndpoints=true|false (ALPHA - default=false) | ||||
| AppArmor=true|false (BETA - default=true) | ||||
| DynamicKubeletConfig=true|false (ALPHA - default=false) | ||||
| DynamicVolumeProvisioning=true|false (ALPHA - default=true) | ||||
|       --google-json-key string                       The Google Cloud Platform Service Account JSON Key to use for authentication. | ||||
|       --healthz-bind-address value                   The IP address for the health check server to serve on, defaulting to 127.0.0.1 (set to 0.0.0.0 for all interfaces) (default 127.0.0.1) | ||||
|       --healthz-port value                           The port to bind the health check server. Use 0 to disable. (default 10249) | ||||
|       --hostname-override string                     If non-empty, will use this string as identification instead of the actual hostname. | ||||
|       --iptables-masquerade-bit value                If using the pure iptables proxy, the bit of the fwmark space to mark packets requiring SNAT with.  Must be within the range [0, 31]. (default 14) | ||||
|       --iptables-sync-period duration                How often iptables rules are refreshed (e.g. '5s', '1m', '2h22m').  Must be greater than 0. (default 30s) | ||||
|       --kube-api-burst value                         Burst to use while talking with kubernetes apiserver (default 10) | ||||
|       --kube-api-content-type string                 Content type of requests sent to apiserver. (default "application/vnd.kubernetes.protobuf") | ||||
|       --kube-api-qps value                           QPS to use while talking with kubernetes apiserver (default 5) | ||||
|       --kubeconfig string                            Path to kubeconfig file with authorization information (the master location is set by the master flag). | ||||
|       --masquerade-all                               If using the pure iptables proxy, SNAT everything | ||||
|       --master string                                The address of the Kubernetes API server (overrides any value in kubeconfig) | ||||
|       --oom-score-adj value                          The oom-score-adj value for kube-proxy process. Values must be within the range [-1000, 1000] (default -999) | ||||
|       --proxy-mode value                             Which proxy mode to use: 'userspace' (older) or 'iptables' (faster). If blank, look at the Node object on the Kubernetes API and respect the 'net.experimental.kubernetes.io/proxy-mode' annotation if provided.  Otherwise use the best-available proxy (currently iptables).  If the iptables proxy is selected, regardless of how, but the system's kernel or iptables versions are insufficient, this always falls back to the userspace proxy. | ||||
|       --proxy-port-range value                       Range of host ports (beginPort-endPort, inclusive) that may be consumed in order to proxy service traffic. If unspecified (0-0) then ports will be randomly chosen. | ||||
|       --udp-timeout duration                         How long an idle UDP connection will be kept open (e.g. '250ms', '2s').  Must be greater than 0. Only applicable for proxy-mode=userspace (default 250ms) | ||||
| ``` | ||||
| 
 | ||||
| ###### Auto generated by spf13/cobra on 12-Aug-2016 | ||||
| ###### Auto generated by spf13/cobra on 2-Sep-2016 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -23,28 +23,33 @@ kube-scheduler | |||
| ### Options | ||||
| 
 | ||||
| ``` | ||||
|       --address="0.0.0.0": The IP address to serve on (set to 0.0.0.0 for all interfaces) | ||||
|       --algorithm-provider="DefaultProvider": The scheduling algorithm provider to use, one of: DefaultProvider | ||||
|       --failure-domains="kubernetes.io/hostname,failure-domain.beta.kubernetes.io/zone,failure-domain.beta.kubernetes.io/region": Indicate the "all topologies" set for an empty topologyKey when it's used for PreferredDuringScheduling pod anti-affinity. | ||||
|       --google-json-key="": The Google Cloud Platform Service Account JSON Key to use for authentication. | ||||
|       --hard-pod-affinity-symmetric-weight=1: RequiredDuringScheduling affinity is not symmetric, but there is an implicit PreferredDuringScheduling affinity rule corresponding to every RequiredDuringScheduling affinity rule. --hard-pod-affinity-symmetric-weight represents the weight of implicit PreferredDuringScheduling affinity rule. | ||||
|       --kube-api-burst=100: Burst to use while talking with kubernetes apiserver | ||||
|       --kube-api-content-type="application/vnd.kubernetes.protobuf": Content type of requests sent to apiserver. | ||||
|       --kube-api-qps=50: QPS to use while talking with kubernetes apiserver | ||||
|       --kubeconfig="": Path to kubeconfig file with authorization and master location information. | ||||
|       --leader-elect[=false]: Start a leader election client and gain leadership before executing the main loop. Enable this when running replicated components for high availability. | ||||
|       --leader-elect-lease-duration=15s: The duration that non-leader candidates will wait after observing a leadership renewal until attempting to acquire leadership of a led but unrenewed leader slot. This is effectively the maximum duration that a leader can be stopped before it is replaced by another candidate. This is only applicable if leader election is enabled. | ||||
|       --leader-elect-renew-deadline=10s: The interval between attempts by the acting master to renew a leadership slot before it stops leading. This must be less than or equal to the lease duration. This is only applicable if leader election is enabled. | ||||
|       --leader-elect-retry-period=2s: The duration the clients should wait between attempting acquisition and renewal of a leadership. This is only applicable if leader election is enabled. | ||||
|       --log-flush-frequency=5s: Maximum number of seconds between log flushes | ||||
|       --master="": The address of the Kubernetes API server (overrides any value in kubeconfig) | ||||
|       --policy-config-file="": File with scheduler policy configuration | ||||
|       --port=10251: The port that the scheduler's http service runs on | ||||
|       --profiling[=true]: Enable profiling via web interface host:port/debug/pprof/ | ||||
|       --scheduler-name="default-scheduler": Name of the scheduler, used to select which pods will be processed by this scheduler, based on pod's annotation with key 'scheduler.alpha.kubernetes.io/name' | ||||
|       --address string                           The IP address to serve on (set to 0.0.0.0 for all interfaces) (default "0.0.0.0") | ||||
|       --algorithm-provider string                The scheduling algorithm provider to use, one of: DefaultProvider | ClusterAutoscalerProvider (default "DefaultProvider") | ||||
|       --failure-domains string                   Indicate the "all topologies" set for an empty topologyKey when it's used for PreferredDuringScheduling pod anti-affinity. (default "kubernetes.io/hostname,failure-domain.beta.kubernetes.io/zone,failure-domain.beta.kubernetes.io/region") | ||||
|       --feature-gates value                      A set of key=value pairs that describe feature gates for alpha/experimental features. Options are: | ||||
| DynamicKubeletConfig=true|false (ALPHA - default=false) | ||||
| DynamicVolumeProvisioning=true|false (ALPHA - default=true) | ||||
| AllAlpha=true|false (ALPHA - default=false) | ||||
| AllowExtTrafficLocalEndpoints=true|false (ALPHA - default=false) | ||||
| AppArmor=true|false (BETA - default=true) | ||||
|       --google-json-key string                   The Google Cloud Platform Service Account JSON Key to use for authentication. | ||||
|       --hard-pod-affinity-symmetric-weight int   RequiredDuringScheduling affinity is not symmetric, but there is an implicit PreferredDuringScheduling affinity rule corresponding to every RequiredDuringScheduling affinity rule. --hard-pod-affinity-symmetric-weight represents the weight of implicit PreferredDuringScheduling affinity rule. (default 1) | ||||
|       --kube-api-burst value                     Burst to use while talking with kubernetes apiserver (default 100) | ||||
|       --kube-api-content-type string             Content type of requests sent to apiserver. (default "application/vnd.kubernetes.protobuf") | ||||
|       --kube-api-qps value                       QPS to use while talking with kubernetes apiserver (default 50) | ||||
|       --kubeconfig string                        Path to kubeconfig file with authorization and master location information. | ||||
|       --leader-elect                             Start a leader election client and gain leadership before executing the main loop. Enable this when running replicated components for high availability. (default true) | ||||
|       --leader-elect-lease-duration duration     The duration that non-leader candidates will wait after observing a leadership renewal until attempting to acquire leadership of a led but unrenewed leader slot. This is effectively the maximum duration that a leader can be stopped before it is replaced by another candidate. This is only applicable if leader election is enabled. (default 15s) | ||||
|       --leader-elect-renew-deadline duration     The interval between attempts by the acting master to renew a leadership slot before it stops leading. This must be less than or equal to the lease duration. This is only applicable if leader election is enabled. (default 10s) | ||||
|       --leader-elect-retry-period duration       The duration the clients should wait between attempting acquisition and renewal of a leadership. This is only applicable if leader election is enabled. (default 2s) | ||||
|       --master string                            The address of the Kubernetes API server (overrides any value in kubeconfig) | ||||
|       --policy-config-file string                File with scheduler policy configuration | ||||
|       --port value                               The port that the scheduler's http service runs on (default 10251) | ||||
|       --profiling                                Enable profiling via web interface host:port/debug/pprof/ (default true) | ||||
|       --scheduler-name string                    Name of the scheduler, used to select which pods will be processed by this scheduler, based on pod's annotation with key 'scheduler.alpha.kubernetes.io/name' (default "default-scheduler") | ||||
| ``` | ||||
| 
 | ||||
| ###### Auto generated by spf13/cobra on 12-Aug-2016 | ||||
| ###### Auto generated by spf13/cobra on 2-Sep-2016 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -12,7 +12,8 @@ The kubelet is the primary "node agent" that runs on each | |||
| node. The kubelet works in terms of a PodSpec. A PodSpec is a YAML or JSON object | ||||
| that describes a pod. The kubelet takes a set of PodSpecs that are provided through | ||||
| various mechanisms (primarily through the apiserver) and ensures that the containers | ||||
| described in those PodSpecs are running and healthy. | ||||
| described in those PodSpecs are running and healthy. The kubelet doesn't manage | ||||
| containers which were not created by Kubernetes. | ||||
| 
 | ||||
| Other than from an PodSpec from the apiserver, there are three ways that a container | ||||
| manifest can be provided to the Kubelet. | ||||
|  | @ -33,107 +34,119 @@ kubelet | |||
| ### Options | ||||
| 
 | ||||
| ``` | ||||
|       --address=0.0.0.0: The IP address for the Kubelet to serve on (set to 0.0.0.0 for all interfaces) | ||||
|       --allow-privileged[=false]: If true, allow containers to request privileged mode. [default=false] | ||||
|       --api-servers=[]: List of Kubernetes API servers for publishing events, and reading pods and services. (ip:port), comma separated. | ||||
|       --cadvisor-port=4194: The port of the localhost cAdvisor endpoint | ||||
|       --cert-dir="/var/run/kubernetes": The directory where the TLS certs are located (by default /var/run/kubernetes). If --tls-cert-file and --tls-private-key-file are provided, this flag will be ignored. | ||||
|       --cgroup-root="": Optional root cgroup to use for pods. This is handled by the container runtime on a best effort basis. Default: '', which means use the container runtime default. | ||||
|       --chaos-chance=0: If > 0.0, introduce random client errors and latency. Intended for testing. [default=0.0] | ||||
|       --cloud-config="": The path to the cloud provider configuration file.  Empty string for no configuration file. | ||||
|       --cloud-provider="auto-detect": The provider for cloud services. By default, kubelet will attempt to auto-detect the cloud provider. Specify empty string for running with no cloud provider. [default=auto-detect] | ||||
|       --cluster-dns="": IP address for a cluster DNS server.  This value is used for containers' DNS server in case of Pods with "dnsPolicy=ClusterFirst" | ||||
|       --cluster-domain="": Domain for this cluster.  If set, kubelet will configure all containers to search this domain in addition to the host's search domains | ||||
|       --config="": Path to the config file or directory of files | ||||
|       --configure-cbr0[=false]: If true, kubelet will configure cbr0 based on Node.Spec.PodCIDR. | ||||
|       --container-runtime="docker": The container runtime to use. Possible values: 'docker', 'rkt'. Default: 'docker'. | ||||
|       --containerized[=false]: Experimental support for running kubelet in a container.  Intended for testing. [default=false] | ||||
|       --cpu-cfs-quota[=true]: Enable CPU CFS quota enforcement for containers that specify CPU limits | ||||
|       --docker-endpoint="": If non-empty, use this for the docker endpoint to communicate with | ||||
|       --docker-exec-handler="native": Handler to use when executing a command in a container. Valid values are 'native' and 'nsenter'. Defaults to 'native'. | ||||
|       --enable-controller-attach-detach[=true]: Enables the Attach/Detach controller to manage attachment/detachment of volumes scheduled to this node, and disables kubelet from executing any attach/detach operations | ||||
|       --enable-custom-metrics[=false]: Support for gathering custom metrics. | ||||
|       --enable-debugging-handlers[=true]: Enables server endpoints for log collection and local running of containers and commands | ||||
|       --enable-server[=true]: Enable the Kubelet's server | ||||
|       --event-burst=10: Maximum size of a bursty event records, temporarily allows event records to burst to this number, while still not exceeding event-qps. Only used if --event-qps > 0 | ||||
|       --event-qps=5: If > 0, limit event creations per second to this value. If 0, unlimited. | ||||
|       --eviction-hard="": A set of eviction thresholds (e.g. memory.available<1Gi) that if met would trigger a pod eviction. | ||||
|       --eviction-max-pod-grace-period=0: Maximum allowed grace period (in seconds) to use when terminating pods in response to a soft eviction threshold being met.  If negative, defer to pod specified value. | ||||
|       --eviction-pressure-transition-period=5m0s: Duration for which the kubelet has to wait before transitioning out of an eviction pressure condition. | ||||
|       --eviction-soft="": A set of eviction thresholds (e.g. memory.available<1.5Gi) that if met over a corresponding grace period would trigger a pod eviction. | ||||
|       --eviction-soft-grace-period="": A set of eviction grace periods (e.g. memory.available=1m30s) that correspond to how long a soft eviction threshold must hold before triggering a pod eviction. | ||||
|       --exit-on-lock-contention[=false]: Whether kubelet should exit upon lock-file contention. | ||||
|       --experimental-flannel-overlay[=false]: Experimental support for starting the kubelet with the default overlay network (flannel). Assumes flanneld is already running in client mode. [default=false] | ||||
|       --experimental-nvidia-gpus=0: Number of NVIDIA GPU devices on this node. Only 0 (default) and 1 are currently supported. | ||||
|       --file-check-frequency=20s: Duration between checking config files for new data | ||||
|       --google-json-key="": The Google Cloud Platform Service Account JSON Key to use for authentication. | ||||
|       --hairpin-mode="promiscuous-bridge": How should the kubelet setup hairpin NAT. This allows endpoints of a Service to loadbalance back to themselves if they should try to access their own Service. Valid values are "promiscuous-bridge", "hairpin-veth" and "none". | ||||
|       --healthz-bind-address=127.0.0.1: The IP address for the healthz server to serve on, defaulting to 127.0.0.1 (set to 0.0.0.0 for all interfaces) | ||||
|       --healthz-port=10248: The port of the localhost healthz endpoint | ||||
|       --host-ipc-sources="*": Comma-separated list of sources from which the Kubelet allows pods to use the host ipc namespace. [default="*"] | ||||
|       --host-network-sources="*": Comma-separated list of sources from which the Kubelet allows pods to use of host network. [default="*"] | ||||
|       --host-pid-sources="*": Comma-separated list of sources from which the Kubelet allows pods to use the host pid namespace. [default="*"] | ||||
|       --hostname-override="": If non-empty, will use this string as identification instead of the actual hostname. | ||||
|       --http-check-frequency=20s: Duration between checking http for new data | ||||
|       --image-gc-high-threshold=90: The percent of disk usage after which image garbage collection is always run. Default: 90% | ||||
|       --image-gc-low-threshold=80: The percent of disk usage before which image garbage collection is never run. Lowest disk usage to garbage collect to. Default: 80% | ||||
|       --kube-api-burst=10: Burst to use while talking with kubernetes apiserver | ||||
|       --kube-api-content-type="application/vnd.kubernetes.protobuf": Content type of requests sent to apiserver. | ||||
|       --kube-api-qps=5: QPS to use while talking with kubernetes apiserver | ||||
|       --kube-reserved=: A set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=150G) pairs that describe resources reserved for kubernetes system components. Currently only cpu and memory are supported. See http://releases.k8s.io/release-1.3/docs/user-guide/compute-resources.md for more detail. [default=none] | ||||
|       --kubeconfig="/var/lib/kubelet/kubeconfig": Path to a kubeconfig file, specifying how to authenticate to API server (the master location is set by the api-servers flag). | ||||
|       --kubelet-cgroups="": Optional absolute name of cgroups to create and run the Kubelet in. | ||||
|       --lock-file="": <Warning: Alpha feature> The path to file for kubelet to use as a lock file. | ||||
|       --log-flush-frequency=5s: Maximum number of seconds between log flushes | ||||
|       --low-diskspace-threshold-mb=256: The absolute free disk space, in MB, to maintain. When disk space falls below this threshold, new pods would be rejected. Default: 256 | ||||
|       --manifest-url="": URL for accessing the container manifest | ||||
|       --manifest-url-header="": HTTP header to use when accessing the manifest URL, with the key separated from the value with a ':', as in 'key:value' | ||||
|       --master-service-namespace="default": The namespace from which the kubernetes master services should be injected into pods | ||||
|       --max-open-files=1000000: Number of files that can be opened by Kubelet process. [default=1000000] | ||||
|       --max-pods=110: Number of Pods that can run on this Kubelet. | ||||
|       --maximum-dead-containers=240: Maximum number of old instances of containers to retain globally.  Each container takes up some disk space.  Default: 100. | ||||
|       --maximum-dead-containers-per-container=2: Maximum number of old instances to retain per container.  Each container takes up some disk space.  Default: 2. | ||||
|       --minimum-container-ttl-duration=1m0s: Minimum age for a finished container before it is garbage collected.  Examples: '300ms', '10s' or '2h45m' | ||||
|       --minimum-image-ttl-duration=2m0s: Minimum age for a unused image before it is garbage collected.  Examples: '300ms', '10s' or '2h45m'. Default: '2m' | ||||
|       --network-plugin="": <Warning: Alpha feature> The name of the network plugin to be invoked for various events in kubelet/pod lifecycle | ||||
|       --network-plugin-dir="/usr/libexec/kubernetes/kubelet-plugins/net/exec/": <Warning: Alpha feature> The full path of the directory in which to search for network plugins | ||||
|       --node-ip="": IP address of the node. If set, kubelet will use this IP address for the node | ||||
|       --node-labels=: <Warning: Alpha feature> Labels to add when registering the node in the cluster.  Labels must be key=value pairs separated by ','. | ||||
|       --node-status-update-frequency=10s: Specifies how often kubelet posts node status to master. Note: be cautious when changing the constant, it must work with nodeMonitorGracePeriod in nodecontroller. Default: 10s | ||||
|       --non-masquerade-cidr="10.0.0.0/8": Traffic to IPs outside this range will use IP masquerade. | ||||
|       --oom-score-adj=-999: The oom-score-adj value for kubelet process. Values must be within the range [-1000, 1000] | ||||
|       --outofdisk-transition-frequency=5m0s: Duration for which the kubelet has to wait before transitioning out of out-of-disk node condition status. Default: 5m0s | ||||
|       --pod-cidr="": The CIDR to use for pod IP addresses, only used in standalone mode.  In cluster mode, this is obtained from the master. | ||||
|       --pod-infra-container-image="gcr.io/google_containers/pause-amd64:3.0": The image whose network/ipc namespaces containers in each pod will use. | ||||
|       --pods-per-core=0: Number of Pods per core that can run on this Kubelet. The total number of Pods on this Kubelet cannot exceed max-pods, so max-pods will be used if this calculation results in a larger number of Pods allowed on the Kubelet. A value of 0 disables this limit. | ||||
|       --port=10250: The port for the Kubelet to serve on. | ||||
|       --read-only-port=10255: The read-only port for the Kubelet to serve on with no authentication/authorization (set to 0 to disable) | ||||
|       --really-crash-for-testing[=false]: If true, when panics occur crash. Intended for testing. | ||||
|       --reconcile-cidr[=true]: Reconcile node CIDR with the CIDR specified by the API server. No-op if register-node or configure-cbr0 is false. [default=true] | ||||
|       --register-node[=true]: Register the node with the apiserver (defaults to true if --api-servers is set) | ||||
|       --register-schedulable[=true]: Register the node as schedulable. No-op if register-node is false. [default=true] | ||||
|       --registry-burst=10: Maximum size of a bursty pulls, temporarily allows pulls to burst to this number, while still not exceeding registry-qps.  Only used if --registry-qps > 0 | ||||
|       --registry-qps=5: If > 0, limit registry pull QPS to this value.  If 0, unlimited. [default=5.0] | ||||
|       --resolv-conf="/etc/resolv.conf": Resolver configuration file used as the basis for the container DNS resolution configuration. | ||||
|       --rkt-api-endpoint="localhost:15441": The endpoint of the rkt API service to communicate with. Only used if --container-runtime='rkt'. | ||||
|       --rkt-path="": Path of rkt binary. Leave empty to use the first rkt in $PATH.  Only used if --container-runtime='rkt'. | ||||
|       --root-dir="/var/lib/kubelet": Directory path for managing kubelet files (volume mounts,etc). | ||||
|       --runonce[=false]: If true, exit after spawning pods from local manifests or remote urls. Exclusive with --api-servers, and --enable-server | ||||
|       --runtime-cgroups="": Optional absolute name of cgroups to create and run the runtime in. | ||||
|       --runtime-request-timeout=2m0s: Timeout of all runtime requests except long running request - pull, logs, exec and attach. When timeout exceeded, kubelet will cancel the request, throw out an error and retry later. Default: 2m0s | ||||
|       --seccomp-profile-root="/var/lib/kubelet/seccomp": Directory path for seccomp profiles. | ||||
|       --serialize-image-pulls[=true]: Pull images one at a time. We recommend *not* changing the default value on nodes that run docker daemon with version < 1.9 or an Aufs storage backend. Issue #10959 has more details. [default=true] | ||||
|       --streaming-connection-idle-timeout=4h0m0s: Maximum time a streaming connection can be idle before the connection is automatically closed. 0 indicates no timeout. Example: '5m' | ||||
|       --sync-frequency=1m0s: Max period between synchronizing running containers and config | ||||
|       --system-cgroups="": Optional absolute name of cgroups in which to place all non-kernel processes that are not already inside a cgroup under `/`. Empty for no container. Rolling back the flag requires a reboot. (Default: ""). | ||||
|       --system-reserved=: A set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=150G) pairs that describe resources reserved for non-kubernetes components. Currently only cpu and memory are supported. See http://releases.k8s.io/release-1.3/docs/user-guide/compute-resources.md for more detail. [default=none] | ||||
|       --tls-cert-file="": File containing x509 Certificate for HTTPS.  (CA cert, if any, concatenated after server cert). If --tls-cert-file and --tls-private-key-file are not provided, a self-signed certificate and key are generated for the public address and saved to the directory passed to --cert-dir. | ||||
|       --tls-private-key-file="": File containing x509 private key matching --tls-cert-file. | ||||
|       --volume-plugin-dir="/usr/libexec/kubernetes/kubelet-plugins/volume/exec/": <Warning: Alpha feature> The full path of the directory in which to search for additional third party volume plugins | ||||
|       --volume-stats-agg-period=1m0s: Specifies interval for kubelet to calculate and cache the volume disk usage for all pods and volumes.  To disable volume calculations, set to 0.  Default: '1m' | ||||
|       --address value                                  The IP address for the Kubelet to serve on (set to 0.0.0.0 for all interfaces) (default 0.0.0.0) | ||||
|       --allow-privileged                               If true, allow containers to request privileged mode. [default=false] | ||||
|       --cadvisor-port value                            The port of the localhost cAdvisor endpoint (default 4194) | ||||
|       --cert-dir string                                The directory where the TLS certs are located (by default /var/run/kubernetes). If --tls-cert-file and --tls-private-key-file are provided, this flag will be ignored. (default "/var/run/kubernetes") | ||||
|       --cgroup-root string                             Optional root cgroup to use for pods. This is handled by the container runtime on a best effort basis. Default: '', which means use the container runtime default. | ||||
|       --chaos-chance float                             If > 0.0, introduce random client errors and latency. Intended for testing. [default=0.0] | ||||
|       --cloud-config string                            The path to the cloud provider configuration file.  Empty string for no configuration file. | ||||
|       --cloud-provider string                          The provider for cloud services. By default, kubelet will attempt to auto-detect the cloud provider. Specify empty string for running with no cloud provider. [default=auto-detect] (default "auto-detect") | ||||
|       --cluster-dns string                             IP address for a cluster DNS server.  This value is used for containers' DNS server in case of Pods with "dnsPolicy=ClusterFirst" | ||||
|       --cluster-domain string                          Domain for this cluster.  If set, kubelet will configure all containers to search this domain in addition to the host's search domains | ||||
|       --configure-cbr0                                 If true, kubelet will configure cbr0 based on Node.Spec.PodCIDR. | ||||
|       --container-runtime string                       The container runtime to use. Possible values: 'docker', 'rkt'. Default: 'docker'. (default "docker") | ||||
|       --container-runtime-endpoint string              The unix socket endpoint of remote runtime service. If not empty, this option will override --container-runtime. This is an experimental feature. Intended for testing only. | ||||
|       --containerized                                  Experimental support for running kubelet in a container.  Intended for testing. [default=false] | ||||
|       --cpu-cfs-quota                                  Enable CPU CFS quota enforcement for containers that specify CPU limits (default true) | ||||
|       --docker-endpoint string                         Use this for the docker endpoint to communicate with (default "unix:///var/run/docker.sock") | ||||
|       --docker-exec-handler string                     Handler to use when executing a command in a container. Valid values are 'native' and 'nsenter'. Defaults to 'native'. (default "native") | ||||
|       --enable-controller-attach-detach                Enables the Attach/Detach controller to manage attachment/detachment of volumes scheduled to this node, and disables kubelet from executing any attach/detach operations (default true) | ||||
|       --enable-custom-metrics                          Support for gathering custom metrics. | ||||
|       --enable-debugging-handlers                      Enables server endpoints for log collection and local running of containers and commands (default true) | ||||
|       --enable-server                                  Enable the Kubelet's server (default true) | ||||
|       --event-burst value                              Maximum size of a bursty event records, temporarily allows event records to burst to this number, while still not exceeding event-qps. Only used if --event-qps > 0 (default 10) | ||||
|       --event-qps value                                If > 0, limit event creations per second to this value. If 0, unlimited. (default 5) | ||||
|       --eviction-hard string                           A set of eviction thresholds (e.g. memory.available<1Gi) that if met would trigger a pod eviction. (default "memory.available<100Mi") | ||||
|       --eviction-max-pod-grace-period value            Maximum allowed grace period (in seconds) to use when terminating pods in response to a soft eviction threshold being met.  If negative, defer to pod specified value. | ||||
|       --eviction-minimum-reclaim string                A set of minimum reclaims (e.g. imagefs.available=2Gi) that describes the minimum amount of resource the kubelet will reclaim when performing a pod eviction if that resource is under pressure. | ||||
|       --eviction-pressure-transition-period duration   Duration for which the kubelet has to wait before transitioning out of an eviction pressure condition. (default 5m0s) | ||||
|       --eviction-soft string                           A set of eviction thresholds (e.g. memory.available<1.5Gi) that if met over a corresponding grace period would trigger a pod eviction. | ||||
|       --eviction-soft-grace-period string              A set of eviction grace periods (e.g. memory.available=1m30s) that correspond to how long a soft eviction threshold must hold before triggering a pod eviction. | ||||
|       --exit-on-lock-contention                        Whether kubelet should exit upon lock-file contention. | ||||
|       --experimental-allowed-unsafe-sysctls value      Comma-separated whitelist of unsafe sysctls or unsafe sysctl patterns (ending in *). Use these at your own risk. (default []) | ||||
|       --experimental-bootstrap-kubeconfig string       <Warning: Experimental feature> Path to a kubeconfig file that will be used to get client certificate for kubelet. If the file specified by --kubeconfig does not exist, the bootstrap kubeconfig is used to request a client certificate from the API server. On success, a kubeconfig file referencing the generated key and obtained certificate is written to the path specified by --kubeconfig. The certificate and key file will be stored in the directory pointed by --cert-dir. | ||||
|       --experimental-flannel-overlay                   Experimental support for starting the kubelet with the default overlay network (flannel). Assumes flanneld is already running in client mode. [default=false] | ||||
|       --experimental-nvidia-gpus value                 Number of NVIDIA GPU devices on this node. Only 0 (default) and 1 are currently supported. | ||||
|       --feature-gates value                            A set of key=value pairs that describe feature gates for alpha/experimental features. Options are: | ||||
| AllAlpha=true|false (ALPHA - default=false) | ||||
| AllowExtTrafficLocalEndpoints=true|false (ALPHA - default=false) | ||||
| AppArmor=true|false (BETA - default=true) | ||||
| DynamicKubeletConfig=true|false (ALPHA - default=false) | ||||
| DynamicVolumeProvisioning=true|false (ALPHA - default=true) | ||||
|       --file-check-frequency duration                  Duration between checking config files for new data (default 20s) | ||||
|       --google-json-key string                         The Google Cloud Platform Service Account JSON Key to use for authentication. | ||||
|       --hairpin-mode string                            How should the kubelet setup hairpin NAT. This allows endpoints of a Service to loadbalance back to themselves if they should try to access their own Service. Valid values are "promiscuous-bridge", "hairpin-veth" and "none". (default "promiscuous-bridge") | ||||
|       --healthz-bind-address value                     The IP address for the healthz server to serve on, defaulting to 127.0.0.1 (set to 0.0.0.0 for all interfaces) (default 127.0.0.1) | ||||
|       --healthz-port value                             The port of the localhost healthz endpoint (default 10248) | ||||
|       --host-ipc-sources value                         Comma-separated list of sources from which the Kubelet allows pods to use the host ipc namespace. [default="*"] (default [*]) | ||||
|       --host-network-sources value                     Comma-separated list of sources from which the Kubelet allows pods to use of host network. [default="*"] (default [*]) | ||||
|       --host-pid-sources value                         Comma-separated list of sources from which the Kubelet allows pods to use the host pid namespace. [default="*"] (default [*]) | ||||
|       --hostname-override string                       If non-empty, will use this string as identification instead of the actual hostname. | ||||
|       --http-check-frequency duration                  Duration between checking http for new data (default 20s) | ||||
|       --image-gc-high-threshold value                  The percent of disk usage after which image garbage collection is always run. Default: 90% (default 90) | ||||
|       --image-gc-low-threshold value                   The percent of disk usage before which image garbage collection is never run. Lowest disk usage to garbage collect to. Default: 80% (default 80) | ||||
|       --image-service-endpoint string                  The unix socket endpoint of remote image service. If not specified, it will be the same with container-runtime-endpoint by default. This is an experimental feature. Intended for testing only. | ||||
|       --iptables-drop-bit value                        The bit of the fwmark space to mark packets for dropping. Must be within the range [0, 31]. (default 15) | ||||
|       --iptables-masquerade-bit value                  The bit of the fwmark space to mark packets for SNAT. Must be within the range [0, 31]. Please match this parameter with corresponding parameter in kube-proxy. (default 14) | ||||
|       --kube-api-burst value                           Burst to use while talking with kubernetes apiserver (default 10) | ||||
|       --kube-api-content-type string                   Content type of requests sent to apiserver. (default "application/vnd.kubernetes.protobuf") | ||||
|       --kube-api-qps value                             QPS to use while talking with kubernetes apiserver (default 5) | ||||
|       --kube-reserved value                            A set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=150G) pairs that describe resources reserved for kubernetes system components. Currently only cpu and memory are supported. See http://releases.k8s.io/release-1.4/docs/user-guide/compute-resources.md for more detail. [default=none] | ||||
|       --kubeconfig value                               Path to a kubeconfig file, specifying how to connect to the API server. --api-servers will be used for the location unless --require-kubeconfig is set. (default "/var/lib/kubelet/kubeconfig") | ||||
|       --kubelet-cgroups string                         Optional absolute name of cgroups to create and run the Kubelet in. | ||||
|       --lock-file string                               <Warning: Alpha feature> The path to file for kubelet to use as a lock file. | ||||
|       --low-diskspace-threshold-mb value               The absolute free disk space, in MB, to maintain. When disk space falls below this threshold, new pods would be rejected. Default: 256 (default 256) | ||||
|       --make-iptables-util-chains                      If true, kubelet will ensure iptables utility rules are present on host. (default true) | ||||
|       --manifest-url string                            URL for accessing the container manifest | ||||
|       --manifest-url-header string                     HTTP header to use when accessing the manifest URL, with the key separated from the value with a ':', as in 'key:value' | ||||
|       --master-service-namespace string                The namespace from which the kubernetes master services should be injected into pods (default "default") | ||||
|       --max-open-files int                             Number of files that can be opened by Kubelet process. [default=1000000] (default 1000000) | ||||
|       --max-pods value                                 Number of Pods that can run on this Kubelet. (default 110) | ||||
|       --minimum-image-ttl-duration duration            Minimum age for an unused image before it is garbage collected.  Examples: '300ms', '10s' or '2h45m'. Default: '2m' (default 2m0s) | ||||
|       --network-plugin string                          <Warning: Alpha feature> The name of the network plugin to be invoked for various events in kubelet/pod lifecycle | ||||
|       --network-plugin-dir string                      <Warning: Alpha feature> The full path of the directory in which to search for network plugins (default "/usr/libexec/kubernetes/kubelet-plugins/net/exec/") | ||||
|       --network-plugin-mtu value                       <Warning: Alpha feature> The MTU to be passed to the network plugin, to override the default. Set to 0 to use the default 1460 MTU. | ||||
|       --node-ip string                                 IP address of the node. If set, kubelet will use this IP address for the node | ||||
|       --node-labels value                              <Warning: Alpha feature> Labels to add when registering the node in the cluster.  Labels must be key=value pairs separated by ','. | ||||
|       --node-status-update-frequency duration          Specifies how often kubelet posts node status to master. Note: be cautious when changing the constant, it must work with nodeMonitorGracePeriod in nodecontroller. Default: 10s (default 10s) | ||||
|       --non-masquerade-cidr string                     Traffic to IPs outside this range will use IP masquerade. (default "10.0.0.0/8") | ||||
|       --oom-score-adj value                            The oom-score-adj value for kubelet process. Values must be within the range [-1000, 1000] (default -999) | ||||
|       --outofdisk-transition-frequency duration        Duration for which the kubelet has to wait before transitioning out of out-of-disk node condition status. Default: 5m0s (default 5m0s) | ||||
|       --pod-cidr string                                The CIDR to use for pod IP addresses, only used in standalone mode.  In cluster mode, this is obtained from the master. | ||||
|       --pod-infra-container-image string               The image whose network/ipc namespaces containers in each pod will use. (default "gcr.io/google_containers/pause-amd64:3.0") | ||||
|       --pod-manifest-path string                       Path to to the directory containing pod manifest files to run, or the path to a single pod manifest file. | ||||
|       --pods-per-core value                            Number of Pods per core that can run on this Kubelet. The total number of Pods on this Kubelet cannot exceed max-pods, so max-pods will be used if this calculation results in a larger number of Pods allowed on the Kubelet. A value of 0 disables this limit. | ||||
|       --port value                                     The port for the Kubelet to serve on. (default 10250) | ||||
|       --protect-kernel-defaults                        Default kubelet behaviour for kernel tuning. If set, kubelet errors if any of kernel tunables is different than kubelet defaults. | ||||
|       --read-only-port value                           The read-only port for the Kubelet to serve on with no authentication/authorization (set to 0 to disable) (default 10255) | ||||
|       --really-crash-for-testing                       If true, when panics occur crash. Intended for testing. | ||||
|       --reconcile-cidr                                 Reconcile node CIDR with the CIDR specified by the API server. No-op if register-node or configure-cbr0 is false. [default=true] (default true) | ||||
|       --register-node                                  Register the node with the apiserver (defaults to true if --api-servers is set) (default true) | ||||
|       --register-schedulable                           Register the node as schedulable. No-op if register-node is false. [default=true] (default true) | ||||
|       --registry-burst value                           Maximum size of a bursty pulls, temporarily allows pulls to burst to this number, while still not exceeding registry-qps.  Only used if --registry-qps > 0 (default 10) | ||||
|       --registry-qps value                             If > 0, limit registry pull QPS to this value.  If 0, unlimited. [default=5.0] (default 5) | ||||
|       --require-kubeconfig                             If true the Kubelet will exit if there are configuration errors, and will ignore the value of --api-servers in favor of the server defined in the kubeconfig file. | ||||
|       --resolv-conf string                             Resolver configuration file used as the basis for the container DNS resolution configuration. (default "/etc/resolv.conf") | ||||
|       --rkt-api-endpoint string                        The endpoint of the rkt API service to communicate with. Only used if --container-runtime='rkt'. (default "localhost:15441") | ||||
|       --rkt-path string                                Path of rkt binary. Leave empty to use the first rkt in $PATH.  Only used if --container-runtime='rkt'. | ||||
|       --root-dir string                                Directory path for managing kubelet files (volume mounts,etc). (default "/var/lib/kubelet") | ||||
|       --runonce                                        If true, exit after spawning pods from local manifests or remote urls. Exclusive with --api-servers, and --enable-server | ||||
|       --runtime-cgroups string                         Optional absolute name of cgroups to create and run the runtime in. | ||||
|       --runtime-request-timeout duration               Timeout of all runtime requests except long running request - pull, logs, exec and attach. When timeout exceeded, kubelet will cancel the request, throw out an error and retry later. Default: 2m0s (default 2m0s) | ||||
|       --seccomp-profile-root string                    Directory path for seccomp profiles. | ||||
|       --serialize-image-pulls                          Pull images one at a time. We recommend *not* changing the default value on nodes that run docker daemon with version < 1.9 or an Aufs storage backend. Issue #10959 has more details. [default=true] (default true) | ||||
|       --streaming-connection-idle-timeout duration     Maximum time a streaming connection can be idle before the connection is automatically closed. 0 indicates no timeout. Example: '5m' (default 4h0m0s) | ||||
|       --sync-frequency duration                        Max period between synchronizing running containers and config (default 1m0s) | ||||
|       --system-cgroups /                               Optional absolute name of cgroups in which to place all non-kernel processes that are not already inside a cgroup under /. Empty for no container. Rolling back the flag requires a reboot. (Default: ""). | ||||
|       --system-reserved value                          A set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=150G) pairs that describe resources reserved for non-kubernetes components. Currently only cpu and memory are supported. See http://releases.k8s.io/release-1.4/docs/user-guide/compute-resources.md for more detail. [default=none] | ||||
|       --tls-cert-file string                           File containing x509 Certificate for HTTPS.  (CA cert, if any, concatenated after server cert). If --tls-cert-file and --tls-private-key-file are not provided, a self-signed certificate and key are generated for the public address and saved to the directory passed to --cert-dir. | ||||
|       --tls-private-key-file string                    File containing x509 private key matching --tls-cert-file. | ||||
|       --volume-plugin-dir string                       <Warning: Alpha feature> The full path of the directory in which to search for additional third party volume plugins (default "/usr/libexec/kubernetes/kubelet-plugins/volume/exec/") | ||||
|       --volume-stats-agg-period duration               Specifies interval for kubelet to calculate and cache the volume disk usage for all pods and volumes.  To disable volume calculations, set to 0.  Default: '1m' (default 1m0s) | ||||
| ``` | ||||
| 
 | ||||
| ###### Auto generated by spf13/cobra on 12-Aug-2016 | ||||
| ###### Auto generated by spf13/cobra on 2-Sep-2016 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -83,3 +83,83 @@ cluster (connecting to the ssh server listening on port 22) and passes all | |||
| traffic destined for a kubelet, node, pod, or service through the tunnel. | ||||
| This tunnel ensures that the traffic is not exposed outside of the private | ||||
| GCE network in which the cluster is running. | ||||
| 
 | ||||
| ### Kubelet TLS Bootstrap  | ||||
| 
 | ||||
| Kubernetes 1.4 introduces an experimental API for requesting certificates from a cluster-level  | ||||
| Certificate Authority (CA). The first supported use of this API is the provisioning of TLS client  | ||||
| certificates for kubelets. The proposal can be found [here](https://github.com/kubernetes/kubernetes/pull/20439) | ||||
| and progress on the feature is being tracked as [feature #43](https://github.com/kubernetes/features/issues/43).  | ||||
| 
 | ||||
| ##### apiserver configuration | ||||
| You must provide a token file which specifies at least one "bootstrap token" assigned to a kubelet boostrap-specific group. | ||||
| This group will later be used in the controller-manager configuration to scope approvals in the default approval | ||||
| controller. As this feature matures, you should ensure tokens are bound to an RBAC policy which limits requests | ||||
| using the bootstrap token to only be able to make requests related to certificate provisioning. When RBAC policy | ||||
| is in place, scoping the tokens to a group will allow great flexibility (e.g. you could disable a particular | ||||
| bootstrap group's access when you are done provisioning the nodes).  | ||||
| 
 | ||||
| ##### Token auth file  | ||||
| Tokens are arbitrary but should represent at least 128 bits of entropy derived from a secure random number  | ||||
| generator (such as /dev/urandom on most modern systems). There are multiple ways you can generate a token. For example:  | ||||
| 
 | ||||
| `head -c 16 /dev/urandom | od -An -t x | tr -d ' '`  | ||||
| 
 | ||||
| will generate tokens that look like `02b50b05283e98dd0fd71db496ef01e8`  | ||||
| 
 | ||||
| The token file will look like the following example, where the first three values can be anything and the quoted group  | ||||
| name should be as depicted:  | ||||
| 
 | ||||
| ``` | ||||
| 02b50b05283e98dd0fd71db496ef01e8,kubelet-bootstrap,10001,"system:kubelet-bootstrap" | ||||
| ```  | ||||
| 
 | ||||
| Add the `--token-auth-file=FILENAME` flag to the apiserver command to enable the token file.  | ||||
| See docs at http://kubernetes.io/docs/admin/authentication/#static-token-file for further details. | ||||
| 
 | ||||
| #### controller-manager configuration | ||||
| The API for requesting certificates adds a certificate-issuing control loop to the KCM. This takes the form of a  | ||||
| [cfssl](https://blog.cloudflare.com/introducing-cfssl/) local signer using assets on disk.  | ||||
| Currently, all certificates issued have one year validity and a default set of key usages.  | ||||
| 
 | ||||
| ##### Signing assets  | ||||
| You must provide a Certificate Authority in order to provide the cryptographic materials necessary to issue certificates.  | ||||
| This CA should be trusted by the apiserver for authentication with the `--client-ca-file=SOMEFILE` flag. The management | ||||
| of the CA is beyond the scope of this document but it is recommended that you generate a dedicated CA for Kubernetes. | ||||
| Both certificate and key are assumed to be PEM-encoded.  | ||||
| 
 | ||||
| The new controller-manager flags are:  | ||||
| ``` | ||||
| --cluster-signing-cert-file="/etc/path/to/kubernetes/ca/ca.crt" --cluster-signing-key-file="/etc/path/to/kubernetes/ca/ca.key" | ||||
| ```  | ||||
| 
 | ||||
| ##### Auto-approval  | ||||
| To ease deployment and testing, the alpha version of the certificate request API includes a flag to approve all certificate  | ||||
| requests made by users in a certain group. The intended use of this is to whitelist only the group corresponding to the bootstrap | ||||
| token in the token file above. Use of this flag circumvents makes the "approval" process described below and is not recommended | ||||
| for production use.  | ||||
| 
 | ||||
| The flag is:  | ||||
| ``` | ||||
| --insecure-experimental-approve-all-kubelet-csrs-for-group="system:kubelet-bootstrap" | ||||
| ```  | ||||
| 
 | ||||
| #### kubelet configuration  | ||||
| To use request a client cert from the certificate request API, the kubelet needs a path to a kubeconfig file that contains the | ||||
| bootstrap auth token. If the file specified by `--kubeconfig` does not exist, the bootstrap kubeconfig is used to request a | ||||
| client certificate from the API server. On success, a kubeconfig file referencing the generated key and obtained certificate | ||||
| is written to the path specified by `--kubeconfig`. The certificate and key file will be stored in the directory pointed  | ||||
| by `--cert-dir`.  The new flag is:  | ||||
| 
 | ||||
| ``` | ||||
| --experimental-bootstrap-kubeconfig="/path/to/bootstrap/kubeconfig" | ||||
| ```  | ||||
| 
 | ||||
| #### kubectl approval  | ||||
| The signing controller does not immediately sign all certificate requests. Instead, it waits until they have been flagged with an  | ||||
| "Approved" status by an appropriately-privileged user. This is intended to eventually be an automated process handled by an external | ||||
| approval controller, but for the alpha version of the API it can be done manually by a cluster administrator using kubectl.  | ||||
| An administrator can list CSRs with `kubectl get csr`, describe one in detail with `kubectl describe <name>`. There are  | ||||
| [currently no direct approve/deny commands](https://github.com/kubernetes/kubernetes/issues/30163) so an approver will need to update | ||||
| the Status field directly. A rough example of how to do this in bash which should only be used until the porcelain merges is available | ||||
| at https://github.com/gtank/csrctl. | ||||
|  |  | |||
|  | @ -0,0 +1,114 @@ | |||
| --- | ||||
| assignees: | ||||
| - Random-Liu | ||||
| 
 | ||||
| --- | ||||
| 
 | ||||
| * TOC | ||||
| {:toc} | ||||
| 
 | ||||
| ## Node Conformance Test | ||||
| 
 | ||||
| *Node conformance test* is a test framework validating whether a node meets the | ||||
| minimum requirement of Kubernetes with a set of system verification and | ||||
| functionality test. A node which passes the tests is qualified to join a | ||||
| Kubernetes cluster. | ||||
| 
 | ||||
| ## Limitations | ||||
| 
 | ||||
| There are following limitations in the current implementation of node | ||||
| conformance test. They'll be improved in future version. | ||||
| 
 | ||||
| * Node conformance test only supports Docker as the container runtime. | ||||
| * Node conformance test doesn't validate network related system configurations | ||||
|   and functionalities. | ||||
| 
 | ||||
| ## Prerequisite | ||||
| 
 | ||||
| Node conformance test is used to test whether a node is ready to join a | ||||
| Kubernetes cluster, so the prerequisite is the same with a standard Kubernetes | ||||
| node. At least, the node should have properly installed: | ||||
| 
 | ||||
| * Container Runtime (Docker) | ||||
| * Kubelet | ||||
| 
 | ||||
| Node conformance test validates kernel configurations. If the kenrel module | ||||
| `configs` is built as module in your environment, it must be loaded before the | ||||
| test. (See [Caveats #3](#caveats) for more information) | ||||
| 
 | ||||
| ## Usage | ||||
| 
 | ||||
| ### Run Node Conformance Test | ||||
| 
 | ||||
| * **Step 1:** Point your Kubelet to localhost `--api-servers="http://localhost:8080"`, | ||||
| because the test framework starts a local master to test Kubelet. | ||||
| 
 | ||||
| * **Step 2:** Run the node conformance test with command: | ||||
| 
 | ||||
| ```shell | ||||
| # $CONFIG_DIR is the pod manifest path of your kubelet. | ||||
| # $LOG_DIR is the test output path. | ||||
| sudo docker run -it --rm --privileged --net=host \ | ||||
|   -v /:/rootfs:ro -v /var/run:/var/run \ | ||||
|   -v $CONFIG_DIR:/etc/manifest -v $LOG_DIR:/var/result \ | ||||
|   gcr.io/google_containers/node-test-amd64:v0.1 | ||||
| ``` | ||||
| 
 | ||||
| ### Run Node Conformance Test for Other Architectures | ||||
| 
 | ||||
| We also build node conformance test docker images for other architectures: | ||||
| 
 | ||||
|   Arch  |       Image       | | ||||
| --------|:-----------------:| | ||||
|  amd64  |  node-test-amd64  | | ||||
|   arm   |    node-test-arm  | | ||||
|  arm64  |  node-test-arm64  | | ||||
| 
 | ||||
| ### Run Selected Test | ||||
| 
 | ||||
| In fact, Node conformance test is a containerized version of [node e2e | ||||
| test](https://github.com/kubernetes/kubernetes/blob/release-1.4/docs/devel/e2e-node-tests.md). | ||||
| By default, it runs all conformance test. | ||||
| 
 | ||||
| Theoretically, you can run any node e2e test if you configure the container and | ||||
| mount required volumes properly. But **it is strongly recommended to only run conformance | ||||
| test**, because the non-conformance test needs much more complex framework configuration. | ||||
| 
 | ||||
| To run specific tests, overwrite the environment variable `FOCUS` with the | ||||
| regular expression of tests you want to run. | ||||
| 
 | ||||
| ```shell | ||||
| sudo docker run -it --rm --privileged --net=host \ | ||||
|   -v /:/rootfs:ro -v /var/run:/var/run \ | ||||
|   -v $CONFIG_DIR:/etc/manifest -v $LOG_DIR:/var/result \ | ||||
|   -e FOCUS=MirrorPod \ # Only run MirrorPod test | ||||
|   gcr.io/google_containers/node-test-amd64:v0.1 | ||||
| ``` | ||||
| 
 | ||||
| To skip specific tests, overwrite the environment variable `SKIP` with the | ||||
| regular expression of tests you want to skip. | ||||
| 
 | ||||
| ```shell | ||||
| sudo docker run -it --rm --privileged --net=host \ | ||||
|   -v /:/rootfs:ro -v /var/run:/var/run \ | ||||
|   -v $CONFIG_DIR:/etc/manifest -v $LOG_DIR:/var/result \ | ||||
|   -e SKIP=MirrorPod \ # Run all conformance test and skip MirrorPod test | ||||
|   gcr.io/google_containers/node-test-amd64:v0.1 | ||||
| ``` | ||||
| 
 | ||||
| ### Caveats | ||||
| 
 | ||||
| * The test will leave some docker images on the node, including the node | ||||
|   conformance test image and images of containers used in the functionality | ||||
|   test. | ||||
| * The test will leave dead containers on the node, these containers are created | ||||
|   during the functionality test. | ||||
| * Node conformance test validates kernel configuration. However, in some os | ||||
|   distro the kernel module `configs` may not be loaded by default, and you will get | ||||
|   the error `no config path in [POSSIBLE KERNEL CONFIG FILE PATHS] is | ||||
|   available`. In that case please do either of the followings: | ||||
|   * Manually load/unload `configs` kernel module: run `sudo modprobe configs` to | ||||
|     load the kernel module, and `sudo modprobe -r configs` to unload it after the test. | ||||
|   * Mount `modprobe` into the container: Add option `-v /bin/kmod:/bin/kmod | ||||
|     -v /sbin/modprobe:/sbin/modprobe -v /lib/modules:/lib/modules` when starting | ||||
|     the test container. | ||||
|  | @ -36,7 +36,7 @@ it to [support other log format](/docs/admin/node-problem/#support-other-log-for | |||
| 
 | ||||
| ## Enable/Disable in GCE cluster | ||||
| 
 | ||||
| Node problem detector is [running as a cluster addon](cluster-large.md/#Addon-Resources) enabled by default in the | ||||
| Node problem detector is [running as a cluster addon](cluster-large.md/#addon-resources) enabled by default in the | ||||
| gce cluster. | ||||
| 
 | ||||
| You can enable/disable it by setting the environment variable | ||||
|  |  | |||
|  | @ -120,25 +120,48 @@ Currently, there are three components that interact with the Kubernetes node int | |||
| ### Node Controller | ||||
| 
 | ||||
| Node controller is a component in Kubernetes master which manages Node | ||||
| objects. It performs two major functions: cluster-wide node synchronization | ||||
| and single node life-cycle management. | ||||
| objects. | ||||
| 
 | ||||
| Node controller has a sync loop that deletes Nodes from Kubernetes | ||||
| based on all matching VM instances listed from the cloud provider. The sync period | ||||
| can be controlled via flag `--node-sync-period`. If a new VM instance | ||||
| gets created, Node Controller creates a representation for it. If an existing | ||||
| instance gets deleted, Node Controller deletes the representation. Note however, | ||||
| that Node Controller is unable to provision the node for you, i.e. it won't install | ||||
| any binary; therefore, to | ||||
| join a node to a Kubernetes cluster, you as an admin need to make sure proper services are | ||||
| running in the node. In the future, we plan to automatically provision some node | ||||
| services. | ||||
| Node controller has mutliple roles in Node's life. First is assigning a CIDR block to | ||||
| the Node when it is registered (if CIDR assignment is turned on). Second is keeping the | ||||
| node controller's list of nodes up to date with the cloud provider's list of available | ||||
| machines. When running in cloud environment whenever a node is unhealthy node controller | ||||
| asks cloud provider if the VM for that node is still available. If not, the node | ||||
| controller deletes the node from its list of nodes. | ||||
| 
 | ||||
| In general, node controller is responsible for updating the NodeReady condition of node | ||||
| status to ConditionUnknown when a node becomes unreachable (e.g. due to the node being down), | ||||
| and then later evicting all the pods from the node (using graceful termination) if the node | ||||
| continues to be unreachable. (The current timeouts for those are 40s and 5m, respectively.) | ||||
| It also allocates CIDR blocks to the new nodes. | ||||
| Third responsibiliy is monitoring Node's health. Node controller is responsible for updating | ||||
| the NodeReady condition of NodeStatus to ConditionUnknown when a node becomes unreachable | ||||
| (i.e. node controller stops receiving heartbeats e.g. due to the node being down), and then | ||||
| later evicting all the pods from the node (using graceful termination) if the node continues | ||||
| to be unreachable (the current timeouts are 40s to start reporting ConditionUnknown and 5m | ||||
| after that to start evicting pods). Node controller checks the state of each node every | ||||
| `--node-monitor-period` seconds. | ||||
| 
 | ||||
| In 1.4 release we updated the logic of node controller to better handle cases when a | ||||
| big number of Nodes have problems with reaching the master machine (e.g. because | ||||
| master machine has networking problem). Starting with 1.4 node controller will look at the | ||||
| state of all Nodes in the cluster when making a decision about pod eviction. | ||||
| 
 | ||||
| In most cases, node controller limits the eviction rate to `--node-eviction-rate` (default 0.1) | ||||
| per second, meaning it won't evict pods from more than 1 node per 10 seconds. | ||||
| 
 | ||||
| The node eviction behavior changes when a node in a given availability zone becomes unhealthy, | ||||
| node controller checks what percentage of nodes in the zone are unhealthy (NodeReady condition | ||||
| is ConditionUnknown or ConditionFalse) at the same time. If the fraction of unhealthy nodes is | ||||
| at least `--unhealthy-zone-threshold` (default 0.55) then the eviction rate is  reduced: if | ||||
| the cluster is small (i.e. has less than or equal to `--large-cluster-size-threshold` | ||||
| nodes - default 50) then evictions are stopped, otherwise the eviction rate is reduced to | ||||
| `--secondary-node-eviction-rate` (default 0.01) per second. The reason these policies are | ||||
| implemented per availability zone is because one availability zone might become partitioned | ||||
| from the master while the others remain connected. If your cluster does not span multiple cloud | ||||
| provider availability zones, then there is only one availability zone, namely the whole cluster. | ||||
| 
 | ||||
| A key reason for spreading your nodes across availability zones is so that workload can be | ||||
| shifted to healthy zones when one entire zone goes down. To enable this behavior, if all | ||||
| nodes in a zone are unhealthy then node controller evicts at the normal rate `--node-eviction-rate`. | ||||
| The corner case for that is when all zones are completely unhealthy (i.e. there's no healthy node in | ||||
| the cluster). In such case node controller assumes that there's some problem with master machine | ||||
| connectivity and stops all evictions until any connectivity is restored. | ||||
| 
 | ||||
| ### Self-Registration of Nodes | ||||
| 
 | ||||
|  |  | |||
|  | @ -31,10 +31,25 @@ summary API. | |||
| | Eviction Signal  | Description                                                                     | | ||||
| |------------------|---------------------------------------------------------------------------------| | ||||
| | `memory.available` | `memory.available` := `node.status.capacity[memory]` - `node.stats.memory.workingSet` | | ||||
| | `nodefs.available` | `nodefs.available` := `node.stats.fs.available` | | ||||
| | `nodefs.inodesFree` | `nodefs.inodesFree` := `node.stats.fs.inodesFree` | | ||||
| | `imagefs.available` | `imagefs.available` := `node.stats.runtime.imagefs.available` | | ||||
| | `imagefs.inodesFree` | `imagefs.inodesFree` := `node.stats.runtime.imagefs.inodesFree` | | ||||
| 
 | ||||
| In future releases, the `kubelet` will support the ability to trigger eviction decisions based on disk pressure. | ||||
| Each of the above signals support either a literal or percentage based value.  The percentage based value | ||||
| is calculated relative to the total capacity associated with each signal. | ||||
| 
 | ||||
| Until that time, it is recommended users take advantage of [garbage collection](/docs/admin/garbage-collection/). | ||||
| `kubelet` supports only two filesystem partitions. | ||||
| 
 | ||||
| 1. The `nodefs` filesystem that kubelet uses for volumes, daemon logs, etc. | ||||
| 1. The `imagefs` filesystem that container runtimes uses for storing images and container writable layers. | ||||
| 
 | ||||
| `imagefs` is optional. `kubelet` auto-discovers these filesystems using cAdvisor.  `kubelet` does not care about any  | ||||
| other filesystems. Any other types of configurations are not currently supported by the kubelet. For example, it is | ||||
| *not OK* to store volumes and logs in a dedicated `filesystem`. | ||||
| 
 | ||||
| In future releases, the `kubelet` will deprecate the existing [garbage collection](/docs/admin/garbage-collection/) | ||||
| support in favor of eviction in response to disk pressure. | ||||
| 
 | ||||
| ### Eviction Thresholds | ||||
| 
 | ||||
|  | @ -47,6 +62,14 @@ Each threshold is of the following form: | |||
| * valid `eviction-signal` tokens as defined above. | ||||
| * valid `operator` tokens are `<` | ||||
| * valid `quantity` tokens must match the quantity representation used by Kubernetes | ||||
| * an eviction threshold can be expressed as a percentage if ends with `%` token. | ||||
| 
 | ||||
| For example, if a node has `10Gi` of memory, and the desire is to induce eviction | ||||
| if available memory falls below `1Gi`, an eviction threshold can be specified as either | ||||
| of the following (but not both). | ||||
| 
 | ||||
| * `memory.available<10%` | ||||
| * `memory.available<1Gi` | ||||
| 
 | ||||
| #### Soft Eviction Thresholds | ||||
| 
 | ||||
|  | @ -84,6 +107,10 @@ To configure hard eviction thresholds, the following flag is supported: | |||
| * `eviction-hard` describes a set of eviction thresholds (e.g. `memory.available<1Gi`) that if met | ||||
| would trigger a pod eviction. | ||||
| 
 | ||||
| The `kubelet` has the following default hard eviction thresholds: | ||||
| 
 | ||||
| * `--eviction-hard=memory.available<100Mi` | ||||
| 
 | ||||
| ### Eviction Monitoring Interval | ||||
| 
 | ||||
| The `kubelet` evaluates eviction thresholds per its configured housekeeping interval. | ||||
|  | @ -103,6 +130,7 @@ The following node conditions are defined that correspond to the specified evict | |||
| | Node Condition | Eviction Signal  | Description                                                      | | ||||
| |----------------|------------------|------------------------------------------------------------------| | ||||
| | `MemoryPressure` | `memory.available` | Available memory on the node has satisfied an eviction threshold | | ||||
| | `DiskPressure` | `nodefs.available`, `nodefs.inodesFree`, `imagefs.available`, or `imagefs.inodesFree` | Available disk space and inodes on either the node's root filesytem or image filesystem has satisfied an eviction threshold | | ||||
| 
 | ||||
| The `kubelet` will continue to report node status updates at the frequency specified by | ||||
| `--node-status-update-frequency` which defaults to `10s`. | ||||
|  | @ -124,15 +152,44 @@ The `kubelet` would ensure that it has not observed an eviction threshold being | |||
| for the specified pressure condition for the period specified before toggling the | ||||
| condition back to `false`. | ||||
| 
 | ||||
| ### Eviction of Pods | ||||
| ### Reclaiming node level resources | ||||
| 
 | ||||
| If an eviction threshold has been met and the grace period has passed, | ||||
| the `kubelet` will initiate the process of evicting pods until it has observed  | ||||
| the signal has gone below its defined threshold. | ||||
| the `kubelet` will initiate the process of reclaiming the pressured resource | ||||
| until it has observed the signal has gone below its defined threshold. | ||||
| 
 | ||||
| The `kubelet` ranks pods for eviction 1) by their quality of service, | ||||
| 2) and among those with the same quality of service by the consumption of the | ||||
| starved compute resource relative to the pods scheduling request. | ||||
| The `kubelet` attempts to reclaim node level resources prior to evicting end-user pods. If | ||||
| disk pressure is observed, the `kubelet` reclaims node level resources differently if the | ||||
| machine has a dedicated `imagefs` configured for the container runtime. | ||||
| 
 | ||||
| #### With Imagefs | ||||
| 
 | ||||
| If `nodefs` filesystem has met eviction thresholds, `kubelet` will free up disk space in the following order: | ||||
| 
 | ||||
| 1. Delete dead pods/containers | ||||
| 
 | ||||
| If `imagefs` filesystem has met eviction thresholds, `kubelet` will free up disk space in the following order: | ||||
| 
 | ||||
| 1. Delete all unused images | ||||
| 
 | ||||
| #### Without Imagefs | ||||
| 
 | ||||
| If `nodefs` filesystem has met eviction thresholds, `kubelet` will free up disk space in the following order: | ||||
| 
 | ||||
| 1. Delete dead pods/containers | ||||
| 1. Delete all unused images | ||||
| 
 | ||||
| ### Evicting end-user pods | ||||
| 
 | ||||
| If the `kubelet` is unable to reclaim sufficient resource on the node, | ||||
| it will begin evicting pods. | ||||
| 
 | ||||
| The `kubelet` ranks pods for eviction as follows: | ||||
| 
 | ||||
| * by their quality of service | ||||
| * by the consumption of the starved compute resource relative to the pods scheduling request. | ||||
| 
 | ||||
| As a result, pod eviction occurs in the following order: | ||||
| 
 | ||||
| * `BestEffort` pods that consume the most of the starved resource are failed | ||||
| first. | ||||
|  | @ -151,6 +208,49 @@ and the node only has `Guaranteed` pod(s) remaining, then the node must choose t | |||
| `Guaranteed` pod in order to preserve node stability, and to limit the impact | ||||
| of the unexpected consumption to other `Guaranteed` pod(s). | ||||
| 
 | ||||
| Local disk is a `BestEffort` resource.  If necessary, `kubelet` will evict pods one at a time to reclaim | ||||
| disk when `DiskPressure` is encountered.  The `kubelet` will rank pods by quality of service.  If the `kubelet` | ||||
| is responding to `inode` starvation, it will reclaim `inodes` by evicting pods with the lowest quality of service | ||||
| first.  If the `kubelet` is responding to lack of available disk, it will rank pods within a quality of service | ||||
| that consumes the largest amount of disk and kill those first. | ||||
| 
 | ||||
| #### With Imagefs | ||||
| 
 | ||||
| If `nodefs` is triggering evictions, `kubelet` will sort pods based on the usage on `nodefs` | ||||
| - local volumes + logs of all its containers. | ||||
| 
 | ||||
| If `imagefs` is triggering evictions, `kubelet` will sort pods based on the writable layer usage of all its containers. | ||||
| 
 | ||||
| #### Without Imagefs | ||||
| 
 | ||||
| If `nodefs` is triggering evictions, `kubelet` will sort pods based on their total disk usage | ||||
| - local volumes + logs & writable layer of all its containers. | ||||
| 
 | ||||
| ### Minimum eviction reclaim | ||||
| 
 | ||||
| In certain scenarios, eviction of pods could result in reclamation of small amount of resources. This can result in | ||||
| `kubelet` hitting eviction thresholds in repeated successions. In addition to that, eviction of resources like `disk`, | ||||
|  is time consuming. | ||||
| 
 | ||||
| To mitigate these issues, `kubelet` can have a per-resource `minimum-reclaim`. Whenever `kubelet` observes | ||||
| resource pressure, `kubelet` will attempt to reclaim at least `minimum-reclaim` amount of resource below | ||||
| the configured eviction threshold. | ||||
| 
 | ||||
| For example, with the following configuration: | ||||
| 
 | ||||
| ``` | ||||
| --eviction-hard=memory.available<500Mi,nodefs.available<1Gi,imagefs.available<100Gi | ||||
| --eviction-minimum-reclaim="memory.available=0Mi,nodefs.available=500Mi,imagefs.available=2Gi"` | ||||
| ``` | ||||
| 
 | ||||
| If an eviction threshold is triggered for `memory.available`, the `kubelet` will work to ensure | ||||
| that `memory.available` is at least `500Mi`.  For `nodefs.available`, the `kubelet` will work | ||||
| to ensure that `nodefs.available` is at least `1.5Gi`, and for `imagefs.available` it will | ||||
| work to ensure that `imagefs.available` is at least `102Gi` before no longer reporting pressure | ||||
| on their associated resources. | ||||
| 
 | ||||
| The default `eviction-minimum-reclaim` is `0` for all resources. | ||||
| 
 | ||||
| ### Scheduler | ||||
| 
 | ||||
| The node will report a condition when a compute resource is under pressure.  The | ||||
|  | @ -159,7 +259,8 @@ pods on the node. | |||
| 
 | ||||
| | Node Condition    | Scheduler Behavior                               | | ||||
| | ---------------- | ------------------------------------------------ | | ||||
| | `MemoryPressure` | `BestEffort` pods are not scheduled to the node. | | ||||
| | `MemoryPressure` | No new `BestEffort` pods are scheduled to the node. | | ||||
| | `DiskPressure` | No new pods are scheduled to the node. | | ||||
| 
 | ||||
| ## Node OOM Behavior | ||||
| 
 | ||||
|  | @ -223,3 +324,46 @@ candidate set of pods provided to the eviction strategy. | |||
| In general, it is strongly recommended that `DaemonSet` not | ||||
| create `BestEffort` pods to avoid being identified as a candidate pod | ||||
| for eviction. Instead `DaemonSet` should ideally launch `Guaranteed` pods. | ||||
| 
 | ||||
| ## Deprecation of existing feature flags to reclaim disk | ||||
| 
 | ||||
| `kubelet` has been freeing up disk space on demand to keep the node stable. | ||||
| 
 | ||||
| As disk based eviction matures, the following `kubelet` flags will be marked for deprecation | ||||
| in favor of the simpler configuation supported around eviction. | ||||
| 
 | ||||
| | Existing Flag | New Flag | | ||||
| | ------------- | -------- | | ||||
| | `--image-gc-high-threshold` | `--eviction-hard` or `eviction-soft` | | ||||
| | `--image-gc-low-threshold` | `--eviction-minimum-reclaim` | | ||||
| | `--maximum-dead-containers` | deprecated | | ||||
| | `--maximum-dead-containers-per-container` | deprecated | | ||||
| | `--minimum-container-ttl-duration` | deprecated | | ||||
| | `--low-diskspace-threshold-mb` | `--eviction-hard` or `eviction-soft` | | ||||
| | `--outofdisk-transition-frequency` | `--eviction-pressure-transition-period` | | ||||
| 
 | ||||
| ## Known issues | ||||
| 
 | ||||
| ### kubelet may not observe memory pressure right away | ||||
| 
 | ||||
| The `kubelet` currently polls `cAdvisor` to collect memory usage stats at a regular interval.  If memory usage | ||||
| increases within that window rapidly, the `kubelet` may not observe `MemoryPressure` fast enough, and the `OOMKiller` | ||||
| will still be invoked.  We intend to integrate with the `memcg` notification API in a future release to reduce this | ||||
| latency, and instead have the kernel tell us when a threshold has been crossed immmediately. | ||||
| 
 | ||||
| If you are not trying to achieve extreme utilization, but a sensible measure of overcommit, a viable workaround for | ||||
| this issue is to set eviction thresholds at approximately 75% capacity.  This increases the ability of this feature | ||||
| to prevent system OOMs, and promote eviction of workloads so cluster state can rebalance. | ||||
| 
 | ||||
| ### kubelet may evict more pods than needed | ||||
| 
 | ||||
| The pod eviction may evict more pods than needed due to stats collection timing gap. This can be mitigated by adding | ||||
| the ability to get root container stats on an on-demand basis (https://github.com/google/cadvisor/issues/1247) in the future. | ||||
| 
 | ||||
| ### How kubelet ranks pods for eviction in response to inode exhaustion | ||||
| 
 | ||||
| At this time, it is not possible to know how many inodes were consumed by a particular container.  If the `kubelet` observes | ||||
| inode exhaustion, it will evict pods by ranking them by quality of service.  The following issue has been opened in cadvisor | ||||
| to track per container inode consumption (https://github.com/google/cadvisor/issues/1422) which would allow us to rank pods | ||||
| by inode consumption.  For example, this would let us identify a container that created large numbers of 0 byte files, and evict | ||||
| that pod over others. | ||||
|  |  | |||
|  | @ -0,0 +1,58 @@ | |||
| --- | ||||
| assignees: | ||||
| - davidopp | ||||
| - filipg | ||||
| - piosz | ||||
| 
 | ||||
| --- | ||||
| 
 | ||||
| * TOC | ||||
| {:toc} | ||||
| 
 | ||||
| # "Guaranteed" scheduling of critical add-on pods | ||||
| 
 | ||||
| ## Critical add-ons | ||||
| 
 | ||||
| In addition to Kubernetes core components like api-server, scheduler, controller-manager running on a master machine | ||||
| there are a number of add-ons which, for various reasons, must run on a regular cluster node (rather than the Kubernetes master). | ||||
| Some of these add-ons are critical to a fully functional cluster, such as Heapster, DNS, and UI. | ||||
| A cluster may stop working properly if a critical add-on is evicted (either manually or as a side effect of another operation like upgrade) | ||||
| and becomes pending (for example when the cluster is highly utilized and either there are other pending pods that schedule into the space | ||||
| vacated by the evicted critical add-on pod or the amount of resources available on the node changed for some other reason). | ||||
| 
 | ||||
| ## Rescheduler: guaranteed scheduling of critical add-ons | ||||
| 
 | ||||
| Rescheduler ensures that critical add-ons are always scheduled | ||||
| (assuming the cluster has enough resources to run the critical add-on pods in the absence of regular pods). | ||||
| If the scheduler determines that no node has enough free resources to run the critical add-on pod | ||||
| given the pods that are already running in the cluster | ||||
| (indicated by critical add-on pod's pod condition PodScheduled set to false, the reason set to Unschedulable) | ||||
| the rescheduler tries to free up space for the add-on by evicting some pods; then the scheduler will schedule the add-on pod. | ||||
| 
 | ||||
| To avoid situation when another pod is scheduled into the space prepared for the critical add-on, | ||||
| the chosen node gets a temporary taint “CriticalAddonsOnly” before the eviction(s) | ||||
| (see [more details](https://github.com/kubernetes/kubernetes/blob/master/docs/design/taint-toleration-dedicated.md)). | ||||
| Each critical add-on has to tolerate it, | ||||
| the other pods shouldn't tolerate the taint. The tain is removed once the add-on is successfully scheduled. | ||||
| 
 | ||||
| *Warning:* currently there is no guarantee which node is chosen and which pods are being killed | ||||
| in order to schedule crical pod, so if rescheduler is enabled you pods might be occasionally | ||||
| killed for this purpose. | ||||
| 
 | ||||
| ## Config | ||||
| 
 | ||||
| Rescheduler doesn't have any user facing configuration (component config) or API. | ||||
| It's enabled by default. It can be disabled: | ||||
| * during cluster setup by setting `ENABLE_RESCHEDULER` flag to `false` | ||||
| * on running cluster by deleting its manifest from master node | ||||
| (default path `/etc/kubernetes/manifests/rescheduler.manifest`) | ||||
| 
 | ||||
| ### Marking add-on as critical | ||||
| 
 | ||||
| To be critical an add-on has to run in `kube-system` namespace (cofigurable via flag) | ||||
| and have the following annotations specified: | ||||
| * `scheduler.alpha.kubernetes.io/critical-pod` set to empty string | ||||
| * `scheduler.alpha.kubernetes.io/tolerations` set to `[{"key":"CriticalAddonsOnly", "operator":"Exists"}]` | ||||
| 
 | ||||
| The first one marks a pod a critical. The second one is required by Rescheduler algorithm. | ||||
| 
 | ||||
|  | @ -52,8 +52,10 @@ Resource Quota is enforced in a particular namespace when there is a | |||
| 
 | ||||
| ## Compute Resource Quota | ||||
| 
 | ||||
| The total sum of [compute resources](/docs/user-guide/compute-resources) requested by pods | ||||
| in a namespace can be limited.  The following compute resource types are supported: | ||||
| You can limit the total sum of [compute resources](/docs/user-guide/compute-resources) and [storage resources](/docs/user-guide/persistent-volumes) | ||||
| that can be requested in a given namespace. | ||||
|   | ||||
| The following resource types are supported: | ||||
| 
 | ||||
| | Resource Name | Description | | ||||
| | ------------ | ----------- | | ||||
|  | @ -63,6 +65,7 @@ in a namespace can be limited.  The following compute resource types are support | |||
| | `memory` | Across all pods in a non-terminal state, the sum of memory requests cannot exceed this value. | | ||||
| | `requests.cpu` | Across all pods in a non-terminal state, the sum of CPU requests cannot exceed this value. | | ||||
| | `requests.memory` | Across all pods in a non-terminal state, the sum of memory requests cannot exceed this value. | | ||||
| | `requests.storage` | Across all persistent volume claims, the sum of storage requests cannot exceed this value. | | ||||
| 
 | ||||
| ## Object Count Quota | ||||
| 
 | ||||
|  |  | |||
|  | @ -0,0 +1,122 @@ | |||
| --- | ||||
| assignees: | ||||
| - sttts | ||||
| 
 | ||||
| --- | ||||
| 
 | ||||
| * TOC | ||||
| {:toc} | ||||
| 
 | ||||
| This document describes how sysctls are used within a Kubernetes cluster. | ||||
| 
 | ||||
| ## What is a _Sysctl_? | ||||
| 
 | ||||
| In Linux, the sysctl interface allows an administrator to modify kernel | ||||
| parameters at runtime. Parameters are available via the `/proc/sys/` virtual | ||||
| process file system. The parameters cover various subsystems such as: | ||||
| 
 | ||||
| - kernel (common prefix: `kernel.`) | ||||
| - networking (common prefix: `net.`) | ||||
| - virtual memory (common prefix: `vm.`) | ||||
| - MDADM (common prefix: `dev.`) | ||||
| - More subsystems are described in [Kernel docs](https://www.kernel.org/doc/Documentation/sysctl/README). | ||||
| 
 | ||||
| To get a list of all parameters, you can run | ||||
| 
 | ||||
| ``` | ||||
| $ sudo sysctl -a | ||||
| ``` | ||||
| 
 | ||||
| ## Namespaced vs. Node-Level Sysctls | ||||
| 
 | ||||
| A number of sysctls are _namespaced_ in today's Linux kernels. This means that | ||||
| they can be set independently for each pod on a node. Being namespaced is a | ||||
| requirement for sysctls to be accessible in a pod context within Kubernetes. | ||||
| 
 | ||||
| The following sysctls are known to be _namespaced_: | ||||
| 
 | ||||
| - `kernel.shm*`, | ||||
| - `kernel.msg*`, | ||||
| - `kernel.sem`, | ||||
| - `fs.mqueue.*`, | ||||
| - `net.*`. | ||||
| 
 | ||||
| Sysctls which are not namespaced are called _node-level_ and must be set | ||||
| manually by the cluster admin, either by means of the underlying Linux | ||||
| distribution of the nodes (e.g. via `/etc/sysctls.conf`) or using a DaemonSet | ||||
| with privileged containers. | ||||
| 
 | ||||
| **Note**: it is good practice to consider nodes with special sysctl settings as | ||||
| _tainted_ within a cluster, and only schedule pods onto them which need those | ||||
| sysctl settings. It is suggested to use the Kubernetes [_taints and toleration_ | ||||
| feature](/docs/user-guide/kubectl/kubectl_taint.md) to implement this. | ||||
| 
 | ||||
| ## Safe vs. Unsafe Sysctls | ||||
| 
 | ||||
| Sysctls are grouped into _safe_  and _unsafe_ sysctls. In addition to proper | ||||
| namespacing a _safe_ sysctl must be properly _isolated_ between pods on the same | ||||
| node. This means that setting a _safe_ sysctl for one pod | ||||
| 
 | ||||
| - must not have any influence on any other pod on the node | ||||
| - must not allow to harm the node's health | ||||
| - must not allow to gain CPU or memory resources outside of the resource limits | ||||
|   of a pod. | ||||
| 
 | ||||
| By far, most of the _namespaced_ sysctls are not necessarily considered _safe_. | ||||
| 
 | ||||
| For Kubernetes 1.4, the following sysctls are supported in the _safe_ set: | ||||
| 
 | ||||
| - `kernel.shm_rmid_forced`, | ||||
| - `net.ipv4.ip_local_port_range`, | ||||
| - `net.ipv4.tcp_syncookies`. | ||||
| 
 | ||||
| This list will be extended in future Kubernetes versions when the kubelet | ||||
| supports better isolation mechanisms. | ||||
| 
 | ||||
| All _safe_ sysctls are enabled by default. | ||||
| 
 | ||||
| All _unsafe_ sysctls are disabled by default and must be allowed manually by the | ||||
| cluster admin on a per-node basis. Pods with disabled unsafe sysctls will be | ||||
| scheduled, but will fail to launch. | ||||
| 
 | ||||
| **Warning**: Due to their nature of being _unsafe_, the use of _unsafe_ sysctls | ||||
| is at-your-own-risk and can lead to severe problems like wrong behavior of | ||||
| containers, resource shortage or complete breakage of a node. | ||||
| 
 | ||||
| ## Enabling Unsafe Sysctls | ||||
| 
 | ||||
| With the warning above in mind, the cluster admin can allow certain _unsafe_ | ||||
| sysctls for very special situations like e.g. high-performance or real-time | ||||
| application tuning. _Unsafe_ sysctls are enabled on a node-by-node basis with a | ||||
| flag of the kubelet, e.g.: | ||||
| 
 | ||||
| ```shell | ||||
| $ kubelet --experimental-allowed-unsafe-sysctls 'kernel.msg*,net.ipv4.route.min_pmtu' ... | ||||
| ``` | ||||
| 
 | ||||
| Only _namespaced_ sysctls can be enabled this way. | ||||
| 
 | ||||
| ## Setting Sysctls for a Pod | ||||
| 
 | ||||
| The sysctl feature is an alpha API in Kubernetes 1.4. Therefore, sysctls are set | ||||
| using annotations on pods. They apply to all containers in the same pod. | ||||
| 
 | ||||
| Here is an example, with different annotations for _safe_ and _unsafe_ sysctls: | ||||
| 
 | ||||
| ```yaml | ||||
| apiVersion: v1 | ||||
| kind: Pod | ||||
| metadata: | ||||
|   name: sysctl-example | ||||
|   annotations: | ||||
|     security.alpha.kubernetes.io/sysctls: kernel.shm_rmid_forced=1 | ||||
|     security.alpha.kubernetes.io/unsafe-sysctls: net.ipv4.route.min_pmtu=1000,kernel.msgmax=1 2 3 | ||||
| spec: | ||||
|   ... | ||||
| ``` | ||||
| 
 | ||||
| **Note**: a pod with the _unsafe_ sysctls specified above will fail to launch on | ||||
| any node which has not enabled those two _unsafe_ sysctls explicitly. As with | ||||
| _node-level_ sysctls it is recommended to use [_taints and toleration_ | ||||
| feature](/docs/user-guide/kubectl/kubectl_taint.md) or [labels on nodes](/docs | ||||
| /user-guide/labels.md) to schedule those pods onto the right nodes. | ||||
|  | @ -5,10 +5,10 @@ | |||
| 
 | ||||
| Use the following reference docs to understand the kubernetes REST API for various API group versions: | ||||
| 
 | ||||
| * v1: [operations](https://htmlpreview.github.io/?https://github.com/kubernetes/kubernetes/blob/v1.3.0-beta.0/docs/api-reference/v1/operations.html), [model definitions](https://htmlpreview.github.io/?https://github.com/kubernetes/kubernetes/blob/v1.3.0-beta.0/docs/api-reference/v1/definitions.html) | ||||
| * extensions/v1beta1: [operations](https://htmlpreview.github.io/?https://github.com/kubernetes/kubernetes/blob/v1.3.0-beta.0/docs/api-reference/extensions/v1beta1/operations.html), [model definitions](https://htmlpreview.github.io/?https://github.com/kubernetes/kubernetes/blob/v1.3.0-beta.0/docs/api-reference/extensions/v1beta1/definitions.html) | ||||
| * batch/v1: [operations](https://htmlpreview.github.io/?https://github.com/kubernetes/kubernetes/blob/v1.3.0-beta.0/docs/api-reference/batch/v1/operations.html), [model definitions](https://htmlpreview.github.io/?https://github.com/kubernetes/kubernetes/blob/v1.3.0-beta.0/docs/api-reference/batch/v1/definitions.html) | ||||
| * autoscaling/v1: [operations](https://htmlpreview.github.io/?https://github.com/kubernetes/kubernetes/blob/v1.3.0-beta.0/docs/api-reference/autoscaling/v1/operations.html), [model definitions](https://htmlpreview.github.io/?https://github.com/kubernetes/kubernetes/blob/v1.3.0-beta.0/docs/api-reference/autoscaling/v1/definitions.html) | ||||
| * v1: [operations](/docs/api-reference/v1/operations.html), [model definitions](/docs/api-reference/v1/definitions.html) | ||||
| * extensions/v1beta1: [operations](/docs/api-reference/extensions/v1beta1/operations.html), [model definitions](/docs/api-reference/extensions/v1beta1/definitions.html) | ||||
| * batch/v1: [operations](/docs/api-reference/batch/v1/operations.html), [model definitions](/docs/api-reference/batch/v1/definitions.html) | ||||
| * autoscaling/v1: [operations](/docs/api-reference/autoscaling/v1/operations.html), [model definitions](/docs/api-reference/autoscaling/v1/definitions.html) | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -61,14 +61,14 @@ | |||
| <tbody> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">kind</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: <a href="http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#types-kinds">http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#types-kinds</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: <a href="http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#types-kinds">http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#types-kinds</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">apiVersion</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: <a href="http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#resources">http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#resources</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: <a href="http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#resources">http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#resources</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
|  | @ -123,14 +123,14 @@ | |||
| <tbody> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">kind</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: <a href="http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#types-kinds">http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#types-kinds</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: <a href="http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#types-kinds">http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#types-kinds</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">apiVersion</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: <a href="http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#resources">http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#resources</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: <a href="http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#resources">http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#resources</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
|  | @ -192,7 +192,7 @@ | |||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">kind</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: <a href="http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#types-kinds">http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#types-kinds</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: <a href="http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#types-kinds">http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#types-kinds</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
|  | @ -251,7 +251,7 @@ | |||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">resourceVersion</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">String that identifies the server’s internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: <a href="http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#concurrency-control-and-consistency">http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#concurrency-control-and-consistency</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">String that identifies the server’s internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: <a href="http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#concurrency-control-and-consistency">http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#concurrency-control-and-consistency</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
|  | @ -319,14 +319,14 @@ | |||
| <tbody> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">kind</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Kind of the referent; More info: <a href="http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#types-kinds"">http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#types-kinds"</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Kind of the referent; More info: <a href="http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#types-kinds"">http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#types-kinds"</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Name of the referent; More info: <a href="http://releases.k8s.io/release-1.3/docs/user-guide/identifiers.md#names">http://releases.k8s.io/release-1.3/docs/user-guide/identifiers.md#names</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Name of the referent; More info: <a href="http://releases.k8s.io/release-1.4/docs/user-guide/identifiers.md#names">http://releases.k8s.io/release-1.4/docs/user-guide/identifiers.md#names</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
|  | @ -367,14 +367,14 @@ | |||
| <tbody> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">kind</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: <a href="http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#types-kinds">http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#types-kinds</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: <a href="http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#types-kinds">http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#types-kinds</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">apiVersion</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: <a href="http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#resources">http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#resources</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: <a href="http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#resources">http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#resources</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
|  | @ -422,28 +422,28 @@ | |||
| <tbody> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">kind</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: <a href="http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#types-kinds">http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#types-kinds</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: <a href="http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#types-kinds">http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#types-kinds</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">apiVersion</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: <a href="http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#resources">http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#resources</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: <a href="http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#resources">http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#resources</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">metadata</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Standard object metadata. More info: <a href="http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#metadata">http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#metadata</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Standard object metadata. More info: <a href="http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#metadata">http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#metadata</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_v1_objectmeta">v1.ObjectMeta</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">spec</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">behaviour of autoscaler. More info: <a href="http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#spec-and-status">http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#spec-and-status</a>.</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">behaviour of autoscaler. More info: <a href="http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#spec-and-status">http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#spec-and-status</a>.</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_v1_horizontalpodautoscalerspec">v1.HorizontalPodAutoscalerSpec</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
|  | @ -484,28 +484,28 @@ | |||
| <tbody> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">kind</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: <a href="http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#types-kinds">http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#types-kinds</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: <a href="http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#types-kinds">http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#types-kinds</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">apiVersion</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: <a href="http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#resources">http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#resources</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: <a href="http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#resources">http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#resources</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">metadata</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Standard list metadata. More info: <a href="http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#types-kinds">http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#types-kinds</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Standard list metadata. More info: <a href="http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#types-kinds">http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#types-kinds</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_unversioned_listmeta">unversioned.ListMeta</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">status</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Status of the operation. One of: "Success" or "Failure". More info: <a href="http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#spec-and-status">http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#spec-and-status</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Status of the operation. One of: "Success" or "Failure". More info: <a href="http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#spec-and-status">http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#spec-and-status</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
|  | @ -624,7 +624,7 @@ | |||
| <td class="tableblock halign-left valign-top"><p class="tableblock">lastScaleTime</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">last time the HorizontalPodAutoscaler scaled the number of pods; used by the autoscaler to control how often the number of pods is changed.</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string (date-time)</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
|  | @ -732,7 +732,7 @@ | |||
| <tbody> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: <a href="http://releases.k8s.io/release-1.3/docs/user-guide/identifiers.md#names">http://releases.k8s.io/release-1.3/docs/user-guide/identifiers.md#names</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: <a href="http://releases.k8s.io/release-1.4/docs/user-guide/identifiers.md#names">http://releases.k8s.io/release-1.4/docs/user-guide/identifiers.md#names</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
|  | @ -743,7 +743,7 @@ | |||
| <br> | ||||
| If this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).<br> | ||||
| <br> | ||||
| Applied only if Name is not specified. More info: <a href="http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#idempotency">http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#idempotency</a></p></td> | ||||
| Applied only if Name is not specified. More info: <a href="http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#idempotency">http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#idempotency</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
|  | @ -752,7 +752,7 @@ Applied only if Name is not specified. More info: <a href="http://releases.k8s.i | |||
| <td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Namespace defines the space within each name must be unique. An empty namespace is equivalent to the "default" namespace, but "default" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty.<br> | ||||
| <br> | ||||
| Must be a DNS_LABEL. Cannot be updated. More info: <a href="http://releases.k8s.io/release-1.3/docs/user-guide/namespaces.md">http://releases.k8s.io/release-1.3/docs/user-guide/namespaces.md</a></p></td> | ||||
| Must be a DNS_LABEL. Cannot be updated. More info: <a href="http://releases.k8s.io/release-1.4/docs/user-guide/namespaces.md">http://releases.k8s.io/release-1.4/docs/user-guide/namespaces.md</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
|  | @ -768,7 +768,7 @@ Must be a DNS_LABEL. Cannot be updated. More info: <a href="http://releases.k8s. | |||
| <td class="tableblock halign-left valign-top"><p class="tableblock">uid</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.<br> | ||||
| <br> | ||||
| Populated by the system. Read-only. More info: <a href="http://releases.k8s.io/release-1.3/docs/user-guide/identifiers.md#uids">http://releases.k8s.io/release-1.3/docs/user-guide/identifiers.md#uids</a></p></td> | ||||
| Populated by the system. Read-only. More info: <a href="http://releases.k8s.io/release-1.4/docs/user-guide/identifiers.md#uids">http://releases.k8s.io/release-1.4/docs/user-guide/identifiers.md#uids</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
|  | @ -777,7 +777,7 @@ Populated by the system. Read-only. More info: <a href="http://releases.k8s.io/r | |||
| <td class="tableblock halign-left valign-top"><p class="tableblock">resourceVersion</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.<br> | ||||
| <br> | ||||
| Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: <a href="http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#concurrency-control-and-consistency">http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#concurrency-control-and-consistency</a></p></td> | ||||
| Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: <a href="http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#concurrency-control-and-consistency">http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#concurrency-control-and-consistency</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
|  | @ -793,18 +793,18 @@ Populated by the system. Read-only. Value must be treated as opaque by clients a | |||
| <td class="tableblock halign-left valign-top"><p class="tableblock">creationTimestamp</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.<br> | ||||
| <br> | ||||
| Populated by the system. Read-only. Null for lists. More info: <a href="http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#metadata">http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#metadata</a></p></td> | ||||
| Populated by the system. Read-only. Null for lists. More info: <a href="http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#metadata">http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#metadata</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string (date-time)</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">deletionTimestamp</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource will be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. Once the resource is deleted in the API, the Kubelet will send a hard termination signal to the container. If not set, graceful deletion of the object has not been requested.<br> | ||||
| <br> | ||||
| Populated by the system when a graceful deletion is requested. Read-only. More info: <a href="http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#metadata">http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#metadata</a></p></td> | ||||
| Populated by the system when a graceful deletion is requested. Read-only. More info: <a href="http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#metadata">http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#metadata</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string (date-time)</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
|  | @ -816,14 +816,14 @@ Populated by the system when a graceful deletion is requested. Read-only. More i | |||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">labels</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: <a href="http://releases.k8s.io/release-1.3/docs/user-guide/labels.md">http://releases.k8s.io/release-1.3/docs/user-guide/labels.md</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: <a href="http://releases.k8s.io/release-1.4/docs/user-guide/labels.md">http://releases.k8s.io/release-1.4/docs/user-guide/labels.md</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">object</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">annotations</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: <a href="http://releases.k8s.io/release-1.3/docs/user-guide/annotations.md">http://releases.k8s.io/release-1.3/docs/user-guide/annotations.md</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: <a href="http://releases.k8s.io/release-1.4/docs/user-guide/annotations.md">http://releases.k8s.io/release-1.4/docs/user-guide/annotations.md</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">object</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
|  | @ -842,6 +842,13 @@ Populated by the system when a graceful deletion is requested. Read-only. More i | |||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string array</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">clusterName</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| 
 | ||||
|  | @ -878,21 +885,21 @@ Populated by the system when a graceful deletion is requested. Read-only. More i | |||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">kind</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Kind of the referent. More info: <a href="http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#types-kinds">http://releases.k8s.io/release-1.3/docs/devel/api-conventions.md#types-kinds</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Kind of the referent. More info: <a href="http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#types-kinds">http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#types-kinds</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Name of the referent. More info: <a href="http://releases.k8s.io/release-1.3/docs/user-guide/identifiers.md#names">http://releases.k8s.io/release-1.3/docs/user-guide/identifiers.md#names</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Name of the referent. More info: <a href="http://releases.k8s.io/release-1.4/docs/user-guide/identifiers.md#names">http://releases.k8s.io/release-1.4/docs/user-guide/identifiers.md#names</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">uid</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">UID of the referent. More info: <a href="http://releases.k8s.io/release-1.3/docs/user-guide/identifiers.md#uids">http://releases.k8s.io/release-1.3/docs/user-guide/identifiers.md#uids</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">UID of the referent. More info: <a href="http://releases.k8s.io/release-1.4/docs/user-guide/identifiers.md#uids">http://releases.k8s.io/release-1.4/docs/user-guide/identifiers.md#uids</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
|  | @ -975,7 +982,7 @@ Examples:<br> | |||
| </div> | ||||
| <div id="footer"> | ||||
| <div id="footer-text"> | ||||
| Last updated 2016-06-16 01:05:59 UTC | ||||
| Last updated 2016-09-01 21:16:20 UTC | ||||
| </div> | ||||
| </div> | ||||
| </body> | ||||
|  |  | |||
|  | @ -41,7 +41,7 @@ | |||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">default</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">success</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_unversioned_apiresourcelist">unversioned.APIResourceList</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_unversioned_apiresourcelist">unversioned.APIResourceList</a></p></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
|  | @ -190,7 +190,7 @@ | |||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">200</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">success</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_v1_horizontalpodautoscalerlist">v1.HorizontalPodAutoscalerList</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_v1_horizontalpodautoscalerlist">v1.HorizontalPodAutoscalerList</a></p></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
|  | @ -341,7 +341,7 @@ | |||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">200</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">success</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_v1_horizontalpodautoscalerlist">v1.HorizontalPodAutoscalerList</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_v1_horizontalpodautoscalerlist">v1.HorizontalPodAutoscalerList</a></p></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
|  | @ -492,7 +492,7 @@ | |||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">200</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">success</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_unversioned_status">unversioned.Status</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_unversioned_status">unversioned.Status</a></p></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
|  | @ -577,7 +577,7 @@ | |||
| <td class="tableblock halign-left valign-top"><p class="tableblock">body</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_v1_horizontalpodautoscaler">v1.HorizontalPodAutoscaler</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_v1_horizontalpodautoscaler">v1.HorizontalPodAutoscaler</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
|  | @ -611,7 +611,7 @@ | |||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">200</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">success</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_v1_horizontalpodautoscaler">v1.HorizontalPodAutoscaler</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_v1_horizontalpodautoscaler">v1.HorizontalPodAutoscaler</a></p></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
|  | @ -746,7 +746,7 @@ | |||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">200</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">success</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_v1_horizontalpodautoscaler">v1.HorizontalPodAutoscaler</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_v1_horizontalpodautoscaler">v1.HorizontalPodAutoscaler</a></p></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
|  | @ -831,7 +831,7 @@ | |||
| <td class="tableblock halign-left valign-top"><p class="tableblock">body</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_v1_horizontalpodautoscaler">v1.HorizontalPodAutoscaler</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_v1_horizontalpodautoscaler">v1.HorizontalPodAutoscaler</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
|  | @ -873,7 +873,7 @@ | |||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">200</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">success</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_v1_horizontalpodautoscaler">v1.HorizontalPodAutoscaler</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_v1_horizontalpodautoscaler">v1.HorizontalPodAutoscaler</a></p></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
|  | @ -958,7 +958,7 @@ | |||
| <td class="tableblock halign-left valign-top"><p class="tableblock">body</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_v1_deleteoptions">v1.DeleteOptions</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_v1_deleteoptions">v1.DeleteOptions</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
|  | @ -1000,7 +1000,7 @@ | |||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">200</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">success</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_unversioned_status">unversioned.Status</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_unversioned_status">unversioned.Status</a></p></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
|  | @ -1085,7 +1085,7 @@ | |||
| <td class="tableblock halign-left valign-top"><p class="tableblock">body</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_unversioned_patch">unversioned.Patch</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_unversioned_patch">unversioned.Patch</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
|  | @ -1127,7 +1127,7 @@ | |||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">200</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">success</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_v1_horizontalpodautoscaler">v1.HorizontalPodAutoscaler</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_v1_horizontalpodautoscaler">v1.HorizontalPodAutoscaler</a></p></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
|  | @ -1252,7 +1252,7 @@ | |||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">200</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">success</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_v1_horizontalpodautoscaler">v1.HorizontalPodAutoscaler</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_v1_horizontalpodautoscaler">v1.HorizontalPodAutoscaler</a></p></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
|  | @ -1337,7 +1337,7 @@ | |||
| <td class="tableblock halign-left valign-top"><p class="tableblock">body</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_v1_horizontalpodautoscaler">v1.HorizontalPodAutoscaler</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_v1_horizontalpodautoscaler">v1.HorizontalPodAutoscaler</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
|  | @ -1379,7 +1379,7 @@ | |||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">200</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">success</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_v1_horizontalpodautoscaler">v1.HorizontalPodAutoscaler</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_v1_horizontalpodautoscaler">v1.HorizontalPodAutoscaler</a></p></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
|  | @ -1464,7 +1464,7 @@ | |||
| <td class="tableblock halign-left valign-top"><p class="tableblock">body</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_unversioned_patch">unversioned.Patch</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_unversioned_patch">unversioned.Patch</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
|  | @ -1506,7 +1506,7 @@ | |||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">200</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">success</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_v1_horizontalpodautoscaler">v1.HorizontalPodAutoscaler</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_v1_horizontalpodautoscaler">v1.HorizontalPodAutoscaler</a></p></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
|  | @ -1655,7 +1655,7 @@ | |||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">200</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">success</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_*versioned_event">*versioned.Event</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_*versioned_event">*versioned.Event</a></p></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
|  | @ -1809,7 +1809,7 @@ | |||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">200</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">success</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_*versioned_event">*versioned.Event</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_*versioned_event">*versioned.Event</a></p></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
|  | @ -1971,7 +1971,7 @@ | |||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">200</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">success</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_*versioned_event">*versioned.Event</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_*versioned_event">*versioned.Event</a></p></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
|  | @ -2022,7 +2022,7 @@ | |||
| </div> | ||||
| <div id="footer"> | ||||
| <div id="footer-text"> | ||||
| Last updated 2016-05-26 21:24:45 UTC | ||||
| Last updated 2016-07-29 20:29:06 UTC | ||||
| </div> | ||||
| </div> | ||||
| </body> | ||||
|  |  | |||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							|  | @ -41,7 +41,7 @@ | |||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">default</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">success</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_unversioned_apiresourcelist">unversioned.APIResourceList</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_unversioned_apiresourcelist">unversioned.APIResourceList</a></p></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
|  | @ -190,7 +190,7 @@ | |||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">200</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">success</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_v1_joblist">v1.JobList</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_v1_joblist">v1.JobList</a></p></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
|  | @ -341,7 +341,7 @@ | |||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">200</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">success</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_v1_joblist">v1.JobList</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_v1_joblist">v1.JobList</a></p></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
|  | @ -492,7 +492,7 @@ | |||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">200</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">success</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_unversioned_status">unversioned.Status</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_unversioned_status">unversioned.Status</a></p></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
|  | @ -577,7 +577,7 @@ | |||
| <td class="tableblock halign-left valign-top"><p class="tableblock">body</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_v1_job">v1.Job</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_v1_job">v1.Job</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
|  | @ -611,7 +611,7 @@ | |||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">200</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">success</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_v1_job">v1.Job</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_v1_job">v1.Job</a></p></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
|  | @ -746,7 +746,7 @@ | |||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">200</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">success</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_v1_job">v1.Job</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_v1_job">v1.Job</a></p></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
|  | @ -831,7 +831,7 @@ | |||
| <td class="tableblock halign-left valign-top"><p class="tableblock">body</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_v1_job">v1.Job</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_v1_job">v1.Job</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
|  | @ -873,7 +873,7 @@ | |||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">200</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">success</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_v1_job">v1.Job</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_v1_job">v1.Job</a></p></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
|  | @ -958,7 +958,7 @@ | |||
| <td class="tableblock halign-left valign-top"><p class="tableblock">body</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_v1_deleteoptions">v1.DeleteOptions</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_v1_deleteoptions">v1.DeleteOptions</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
|  | @ -1000,7 +1000,7 @@ | |||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">200</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">success</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_unversioned_status">unversioned.Status</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_unversioned_status">unversioned.Status</a></p></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
|  | @ -1085,7 +1085,7 @@ | |||
| <td class="tableblock halign-left valign-top"><p class="tableblock">body</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_unversioned_patch">unversioned.Patch</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_unversioned_patch">unversioned.Patch</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
|  | @ -1127,7 +1127,7 @@ | |||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">200</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">success</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_v1_job">v1.Job</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_v1_job">v1.Job</a></p></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
|  | @ -1252,7 +1252,7 @@ | |||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">200</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">success</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_v1_job">v1.Job</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_v1_job">v1.Job</a></p></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
|  | @ -1337,7 +1337,7 @@ | |||
| <td class="tableblock halign-left valign-top"><p class="tableblock">body</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_v1_job">v1.Job</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_v1_job">v1.Job</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
|  | @ -1379,7 +1379,7 @@ | |||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">200</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">success</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_v1_job">v1.Job</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_v1_job">v1.Job</a></p></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
|  | @ -1464,7 +1464,7 @@ | |||
| <td class="tableblock halign-left valign-top"><p class="tableblock">body</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_unversioned_patch">unversioned.Patch</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_unversioned_patch">unversioned.Patch</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
|  | @ -1506,7 +1506,7 @@ | |||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">200</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">success</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_v1_job">v1.Job</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_v1_job">v1.Job</a></p></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
|  | @ -1655,7 +1655,7 @@ | |||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">200</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">success</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_*versioned_event">*versioned.Event</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_*versioned_event">*versioned.Event</a></p></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
|  | @ -1809,7 +1809,7 @@ | |||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">200</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">success</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_*versioned_event">*versioned.Event</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_*versioned_event">*versioned.Event</a></p></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
|  | @ -1971,7 +1971,7 @@ | |||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">200</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">success</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="definitions.html#_*versioned_event">*versioned.Event</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../definitions#_*versioned_event">*versioned.Event</a></p></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
|  | @ -2022,7 +2022,7 @@ | |||
| </div> | ||||
| <div id="footer"> | ||||
| <div id="footer-text"> | ||||
| Last updated 2016-05-26 21:24:40 UTC | ||||
| Last updated 2016-07-29 20:29:01 UTC | ||||
| </div> | ||||
| </div> | ||||
| </body> | ||||
|  |  | |||
|  | @ -0,0 +1,966 @@ | |||
| --- | ||||
| --- | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
| <head> | ||||
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> | ||||
| <meta name="generator" content="Asciidoctor 0.1.4"> | ||||
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||||
| <title>Top Level API Objects</title> | ||||
| </head> | ||||
| <body class="article"> | ||||
| <div id="header"> | ||||
| </div> | ||||
| <div id="content"> | ||||
| <div class="sect1"> | ||||
| <h2 id="_top_level_api_objects">Top Level API Objects</h2> | ||||
| <div class="sectionbody"> | ||||
| <div class="ulist"> | ||||
| <ul> | ||||
| <li> | ||||
| <p><a href="#_v1alpha1_certificatesigningrequest">v1alpha1.CertificateSigningRequest</a></p> | ||||
| </li> | ||||
| <li> | ||||
| <p><a href="#_v1alpha1_certificatesigningrequestlist">v1alpha1.CertificateSigningRequestList</a></p> | ||||
| </li> | ||||
| </ul> | ||||
| </div> | ||||
| </div> | ||||
| </div> | ||||
| <div class="sect1"> | ||||
| <h2 id="_definitions">Definitions</h2> | ||||
| <div class="sectionbody"> | ||||
| <div class="sect2"> | ||||
| <h3 id="_unversioned_patch">unversioned.Patch</h3> | ||||
| <div class="paragraph"> | ||||
| <p>Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.</p> | ||||
| </div> | ||||
| </div> | ||||
| <div class="sect2"> | ||||
| <h3 id="_v1alpha1_certificatesigningrequestlist">v1alpha1.CertificateSigningRequestList</h3> | ||||
| <table class="tableblock frame-all grid-all" style="width:100%; "> | ||||
| <colgroup> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;">  | ||||
| </colgroup> | ||||
| <thead> | ||||
| <tr> | ||||
| <th class="tableblock halign-left valign-top">Name</th> | ||||
| <th class="tableblock halign-left valign-top">Description</th> | ||||
| <th class="tableblock halign-left valign-top">Required</th> | ||||
| <th class="tableblock halign-left valign-top">Schema</th> | ||||
| <th class="tableblock halign-left valign-top">Default</th> | ||||
| </tr> | ||||
| </thead> | ||||
| <tbody> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">kind</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: <a href="http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#types-kinds">http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#types-kinds</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">apiVersion</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: <a href="http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#resources">http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#resources</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">metadata</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_unversioned_listmeta">unversioned.ListMeta</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">items</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_v1alpha1_certificatesigningrequest">v1alpha1.CertificateSigningRequest</a> array</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| 
 | ||||
| </div> | ||||
| <div class="sect2"> | ||||
| <h3 id="_v1_deleteoptions">v1.DeleteOptions</h3> | ||||
| <div class="paragraph"> | ||||
| <p>DeleteOptions may be provided when deleting an API object</p> | ||||
| </div> | ||||
| <table class="tableblock frame-all grid-all" style="width:100%; "> | ||||
| <colgroup> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;">  | ||||
| </colgroup> | ||||
| <thead> | ||||
| <tr> | ||||
| <th class="tableblock halign-left valign-top">Name</th> | ||||
| <th class="tableblock halign-left valign-top">Description</th> | ||||
| <th class="tableblock halign-left valign-top">Required</th> | ||||
| <th class="tableblock halign-left valign-top">Schema</th> | ||||
| <th class="tableblock halign-left valign-top">Default</th> | ||||
| </tr> | ||||
| </thead> | ||||
| <tbody> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">kind</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: <a href="http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#types-kinds">http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#types-kinds</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">apiVersion</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: <a href="http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#resources">http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#resources</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">gracePeriodSeconds</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">integer (int64)</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">preconditions</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_v1_preconditions">v1.Preconditions</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| 
 | ||||
| </div> | ||||
| <div class="sect2"> | ||||
| <h3 id="_v1alpha1_certificatesigningrequestspec">v1alpha1.CertificateSigningRequestSpec</h3> | ||||
| <div class="paragraph"> | ||||
| <p>This information is immutable after the request is created. Only the Request and ExtraInfo fields can be set on creation, other fields are derived by Kubernetes and cannot be modified by users.</p> | ||||
| </div> | ||||
| <table class="tableblock frame-all grid-all" style="width:100%; "> | ||||
| <colgroup> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;">  | ||||
| </colgroup> | ||||
| <thead> | ||||
| <tr> | ||||
| <th class="tableblock halign-left valign-top">Name</th> | ||||
| <th class="tableblock halign-left valign-top">Description</th> | ||||
| <th class="tableblock halign-left valign-top">Required</th> | ||||
| <th class="tableblock halign-left valign-top">Schema</th> | ||||
| <th class="tableblock halign-left valign-top">Default</th> | ||||
| </tr> | ||||
| </thead> | ||||
| <tbody> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">request</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Base64-encoded PKCS#10 CSR data</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">username</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Information about the requesting user (if relevant) See user.Info interface for details</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">uid</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">groups</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string array</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| 
 | ||||
| </div> | ||||
| <div class="sect2"> | ||||
| <h3 id="_unversioned_statusdetails">unversioned.StatusDetails</h3> | ||||
| <div class="paragraph"> | ||||
| <p>StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.</p> | ||||
| </div> | ||||
| <table class="tableblock frame-all grid-all" style="width:100%; "> | ||||
| <colgroup> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;">  | ||||
| </colgroup> | ||||
| <thead> | ||||
| <tr> | ||||
| <th class="tableblock halign-left valign-top">Name</th> | ||||
| <th class="tableblock halign-left valign-top">Description</th> | ||||
| <th class="tableblock halign-left valign-top">Required</th> | ||||
| <th class="tableblock halign-left valign-top">Schema</th> | ||||
| <th class="tableblock halign-left valign-top">Default</th> | ||||
| </tr> | ||||
| </thead> | ||||
| <tbody> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">group</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">The group attribute of the resource associated with the status StatusReason.</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">kind</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: <a href="http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#types-kinds">http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#types-kinds</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">causes</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_unversioned_statuscause">unversioned.StatusCause</a> array</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">retryAfterSeconds</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">If specified, the time in seconds before the operation should be retried.</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">integer (int32)</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| 
 | ||||
| </div> | ||||
| <div class="sect2"> | ||||
| <h3 id="__versioned_event">*versioned.Event</h3> | ||||
| 
 | ||||
| </div> | ||||
| <div class="sect2"> | ||||
| <h3 id="_unversioned_listmeta">unversioned.ListMeta</h3> | ||||
| <div class="paragraph"> | ||||
| <p>ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.</p> | ||||
| </div> | ||||
| <table class="tableblock frame-all grid-all" style="width:100%; "> | ||||
| <colgroup> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;">  | ||||
| </colgroup> | ||||
| <thead> | ||||
| <tr> | ||||
| <th class="tableblock halign-left valign-top">Name</th> | ||||
| <th class="tableblock halign-left valign-top">Description</th> | ||||
| <th class="tableblock halign-left valign-top">Required</th> | ||||
| <th class="tableblock halign-left valign-top">Schema</th> | ||||
| <th class="tableblock halign-left valign-top">Default</th> | ||||
| </tr> | ||||
| </thead> | ||||
| <tbody> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">selfLink</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">SelfLink is a URL representing this object. Populated by the system. Read-only.</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">resourceVersion</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">String that identifies the server’s internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: <a href="http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#concurrency-control-and-consistency">http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#concurrency-control-and-consistency</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| 
 | ||||
| </div> | ||||
| <div class="sect2"> | ||||
| <h3 id="_v1alpha1_certificatesigningrequeststatus">v1alpha1.CertificateSigningRequestStatus</h3> | ||||
| <table class="tableblock frame-all grid-all" style="width:100%; "> | ||||
| <colgroup> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;">  | ||||
| </colgroup> | ||||
| <thead> | ||||
| <tr> | ||||
| <th class="tableblock halign-left valign-top">Name</th> | ||||
| <th class="tableblock halign-left valign-top">Description</th> | ||||
| <th class="tableblock halign-left valign-top">Required</th> | ||||
| <th class="tableblock halign-left valign-top">Schema</th> | ||||
| <th class="tableblock halign-left valign-top">Default</th> | ||||
| </tr> | ||||
| </thead> | ||||
| <tbody> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">conditions</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Conditions applied to the request, such as approval or denial.</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_v1alpha1_certificatesigningrequestcondition">v1alpha1.CertificateSigningRequestCondition</a> array</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">certificate</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">If request was approved, the controller will place the issued certificate here.</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| 
 | ||||
| </div> | ||||
| <div class="sect2"> | ||||
| <h3 id="_v1alpha1_certificatesigningrequestcondition">v1alpha1.CertificateSigningRequestCondition</h3> | ||||
| <table class="tableblock frame-all grid-all" style="width:100%; "> | ||||
| <colgroup> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;">  | ||||
| </colgroup> | ||||
| <thead> | ||||
| <tr> | ||||
| <th class="tableblock halign-left valign-top">Name</th> | ||||
| <th class="tableblock halign-left valign-top">Description</th> | ||||
| <th class="tableblock halign-left valign-top">Required</th> | ||||
| <th class="tableblock halign-left valign-top">Schema</th> | ||||
| <th class="tableblock halign-left valign-top">Default</th> | ||||
| </tr> | ||||
| </thead> | ||||
| <tbody> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">type</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">request approval state, currently Approved or Denied.</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">reason</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">brief reason for the request state</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">message</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">human readable message with details about the request state</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">lastUpdateTime</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">timestamp for the last update to this condition</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string (date-time)</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| 
 | ||||
| </div> | ||||
| <div class="sect2"> | ||||
| <h3 id="_v1_preconditions">v1.Preconditions</h3> | ||||
| <div class="paragraph"> | ||||
| <p>Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.</p> | ||||
| </div> | ||||
| <table class="tableblock frame-all grid-all" style="width:100%; "> | ||||
| <colgroup> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;">  | ||||
| </colgroup> | ||||
| <thead> | ||||
| <tr> | ||||
| <th class="tableblock halign-left valign-top">Name</th> | ||||
| <th class="tableblock halign-left valign-top">Description</th> | ||||
| <th class="tableblock halign-left valign-top">Required</th> | ||||
| <th class="tableblock halign-left valign-top">Schema</th> | ||||
| <th class="tableblock halign-left valign-top">Default</th> | ||||
| </tr> | ||||
| </thead> | ||||
| <tbody> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">uid</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Specifies the target UID.</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_types_uid">types.UID</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| 
 | ||||
| </div> | ||||
| <div class="sect2"> | ||||
| <h3 id="_v1alpha1_certificatesigningrequest">v1alpha1.CertificateSigningRequest</h3> | ||||
| <div class="paragraph"> | ||||
| <p>Describes a certificate signing request</p> | ||||
| </div> | ||||
| <table class="tableblock frame-all grid-all" style="width:100%; "> | ||||
| <colgroup> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;">  | ||||
| </colgroup> | ||||
| <thead> | ||||
| <tr> | ||||
| <th class="tableblock halign-left valign-top">Name</th> | ||||
| <th class="tableblock halign-left valign-top">Description</th> | ||||
| <th class="tableblock halign-left valign-top">Required</th> | ||||
| <th class="tableblock halign-left valign-top">Schema</th> | ||||
| <th class="tableblock halign-left valign-top">Default</th> | ||||
| </tr> | ||||
| </thead> | ||||
| <tbody> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">kind</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: <a href="http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#types-kinds">http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#types-kinds</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">apiVersion</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: <a href="http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#resources">http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#resources</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">metadata</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_v1_objectmeta">v1.ObjectMeta</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">spec</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">The certificate request itself and any additional information.</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_v1alpha1_certificatesigningrequestspec">v1alpha1.CertificateSigningRequestSpec</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">status</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Derived information about the request.</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_v1alpha1_certificatesigningrequeststatus">v1alpha1.CertificateSigningRequestStatus</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| 
 | ||||
| </div> | ||||
| <div class="sect2"> | ||||
| <h3 id="_unversioned_apiresourcelist">unversioned.APIResourceList</h3> | ||||
| <div class="paragraph"> | ||||
| <p>APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.</p> | ||||
| </div> | ||||
| <table class="tableblock frame-all grid-all" style="width:100%; "> | ||||
| <colgroup> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;">  | ||||
| </colgroup> | ||||
| <thead> | ||||
| <tr> | ||||
| <th class="tableblock halign-left valign-top">Name</th> | ||||
| <th class="tableblock halign-left valign-top">Description</th> | ||||
| <th class="tableblock halign-left valign-top">Required</th> | ||||
| <th class="tableblock halign-left valign-top">Schema</th> | ||||
| <th class="tableblock halign-left valign-top">Default</th> | ||||
| </tr> | ||||
| </thead> | ||||
| <tbody> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">kind</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: <a href="http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#types-kinds">http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#types-kinds</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">apiVersion</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: <a href="http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#resources">http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#resources</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">groupVersion</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">groupVersion is the group and version this APIResourceList is for.</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">resources</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">resources contains the name of the resources and if they are namespaced.</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_unversioned_apiresource">unversioned.APIResource</a> array</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| 
 | ||||
| </div> | ||||
| <div class="sect2"> | ||||
| <h3 id="_unversioned_status">unversioned.Status</h3> | ||||
| <div class="paragraph"> | ||||
| <p>Status is a return value for calls that don’t return other objects.</p> | ||||
| </div> | ||||
| <table class="tableblock frame-all grid-all" style="width:100%; "> | ||||
| <colgroup> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;">  | ||||
| </colgroup> | ||||
| <thead> | ||||
| <tr> | ||||
| <th class="tableblock halign-left valign-top">Name</th> | ||||
| <th class="tableblock halign-left valign-top">Description</th> | ||||
| <th class="tableblock halign-left valign-top">Required</th> | ||||
| <th class="tableblock halign-left valign-top">Schema</th> | ||||
| <th class="tableblock halign-left valign-top">Default</th> | ||||
| </tr> | ||||
| </thead> | ||||
| <tbody> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">kind</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: <a href="http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#types-kinds">http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#types-kinds</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">apiVersion</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: <a href="http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#resources">http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#resources</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">metadata</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Standard list metadata. More info: <a href="http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#types-kinds">http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#types-kinds</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_unversioned_listmeta">unversioned.ListMeta</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">status</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Status of the operation. One of: "Success" or "Failure". More info: <a href="http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#spec-and-status">http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#spec-and-status</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">message</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">A human-readable description of the status of this operation.</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">reason</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">A machine-readable description of why this operation is in the "Failure" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">details</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Extended data associated with the reason.  Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type.</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_unversioned_statusdetails">unversioned.StatusDetails</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">code</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Suggested HTTP return code for this status, 0 if not set.</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">integer (int32)</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| 
 | ||||
| </div> | ||||
| <div class="sect2"> | ||||
| <h3 id="_unversioned_apiresource">unversioned.APIResource</h3> | ||||
| <div class="paragraph"> | ||||
| <p>APIResource specifies the name of a resource and whether it is namespaced.</p> | ||||
| </div> | ||||
| <table class="tableblock frame-all grid-all" style="width:100%; "> | ||||
| <colgroup> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;">  | ||||
| </colgroup> | ||||
| <thead> | ||||
| <tr> | ||||
| <th class="tableblock halign-left valign-top">Name</th> | ||||
| <th class="tableblock halign-left valign-top">Description</th> | ||||
| <th class="tableblock halign-left valign-top">Required</th> | ||||
| <th class="tableblock halign-left valign-top">Schema</th> | ||||
| <th class="tableblock halign-left valign-top">Default</th> | ||||
| </tr> | ||||
| </thead> | ||||
| <tbody> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">name is the name of the resource.</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">namespaced</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">namespaced indicates if a resource is namespaced or not.</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">kind</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">kind is the kind for the resource (e.g. <em>Foo</em> is the kind for a resource <em>foo</em>)</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| 
 | ||||
| </div> | ||||
| <div class="sect2"> | ||||
| <h3 id="_v1_objectmeta">v1.ObjectMeta</h3> | ||||
| <div class="paragraph"> | ||||
| <p>ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.</p> | ||||
| </div> | ||||
| <table class="tableblock frame-all grid-all" style="width:100%; "> | ||||
| <colgroup> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;">  | ||||
| </colgroup> | ||||
| <thead> | ||||
| <tr> | ||||
| <th class="tableblock halign-left valign-top">Name</th> | ||||
| <th class="tableblock halign-left valign-top">Description</th> | ||||
| <th class="tableblock halign-left valign-top">Required</th> | ||||
| <th class="tableblock halign-left valign-top">Schema</th> | ||||
| <th class="tableblock halign-left valign-top">Default</th> | ||||
| </tr> | ||||
| </thead> | ||||
| <tbody> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: <a href="http://releases.k8s.io/release-1.4/docs/user-guide/identifiers.md#names">http://releases.k8s.io/release-1.4/docs/user-guide/identifiers.md#names</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">generateName</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.<br> | ||||
| <br> | ||||
| If this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).<br> | ||||
| <br> | ||||
| Applied only if Name is not specified. More info: <a href="http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#idempotency">http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#idempotency</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Namespace defines the space within each name must be unique. An empty namespace is equivalent to the "default" namespace, but "default" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty.<br> | ||||
| <br> | ||||
| Must be a DNS_LABEL. Cannot be updated. More info: <a href="http://releases.k8s.io/release-1.4/docs/user-guide/namespaces.md">http://releases.k8s.io/release-1.4/docs/user-guide/namespaces.md</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">selfLink</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">SelfLink is a URL representing this object. Populated by the system. Read-only.</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">uid</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.<br> | ||||
| <br> | ||||
| Populated by the system. Read-only. More info: <a href="http://releases.k8s.io/release-1.4/docs/user-guide/identifiers.md#uids">http://releases.k8s.io/release-1.4/docs/user-guide/identifiers.md#uids</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">resourceVersion</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.<br> | ||||
| <br> | ||||
| Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: <a href="http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#concurrency-control-and-consistency">http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#concurrency-control-and-consistency</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">generation</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">integer (int64)</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">creationTimestamp</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.<br> | ||||
| <br> | ||||
| Populated by the system. Read-only. Null for lists. More info: <a href="http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#metadata">http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#metadata</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string (date-time)</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">deletionTimestamp</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource will be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. Once the resource is deleted in the API, the Kubelet will send a hard termination signal to the container. If not set, graceful deletion of the object has not been requested.<br> | ||||
| <br> | ||||
| Populated by the system when a graceful deletion is requested. Read-only. More info: <a href="http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#metadata">http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#metadata</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string (date-time)</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">deletionGracePeriodSeconds</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">integer (int64)</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">labels</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: <a href="http://releases.k8s.io/release-1.4/docs/user-guide/labels.md">http://releases.k8s.io/release-1.4/docs/user-guide/labels.md</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">object</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">annotations</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: <a href="http://releases.k8s.io/release-1.4/docs/user-guide/annotations.md">http://releases.k8s.io/release-1.4/docs/user-guide/annotations.md</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">object</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">ownerReferences</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_v1_ownerreference">v1.OwnerReference</a> array</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">finalizers</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed.</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string array</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">clusterName</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| 
 | ||||
| </div> | ||||
| <div class="sect2"> | ||||
| <h3 id="_v1_ownerreference">v1.OwnerReference</h3> | ||||
| <div class="paragraph"> | ||||
| <p>OwnerReference contains enough information to let you identify an owning object. Currently, an owning object must be in the same namespace, so there is no namespace field.</p> | ||||
| </div> | ||||
| <table class="tableblock frame-all grid-all" style="width:100%; "> | ||||
| <colgroup> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;">  | ||||
| </colgroup> | ||||
| <thead> | ||||
| <tr> | ||||
| <th class="tableblock halign-left valign-top">Name</th> | ||||
| <th class="tableblock halign-left valign-top">Description</th> | ||||
| <th class="tableblock halign-left valign-top">Required</th> | ||||
| <th class="tableblock halign-left valign-top">Schema</th> | ||||
| <th class="tableblock halign-left valign-top">Default</th> | ||||
| </tr> | ||||
| </thead> | ||||
| <tbody> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">apiVersion</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">API version of the referent.</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">kind</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Kind of the referent. More info: <a href="http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#types-kinds">http://releases.k8s.io/release-1.4/docs/devel/api-conventions.md#types-kinds</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">Name of the referent. More info: <a href="http://releases.k8s.io/release-1.4/docs/user-guide/identifiers.md#names">http://releases.k8s.io/release-1.4/docs/user-guide/identifiers.md#names</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">uid</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">UID of the referent. More info: <a href="http://releases.k8s.io/release-1.4/docs/user-guide/identifiers.md#uids">http://releases.k8s.io/release-1.4/docs/user-guide/identifiers.md#uids</a></p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">controller</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">If true, this reference points to the managing controller.</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| 
 | ||||
| </div> | ||||
| <div class="sect2"> | ||||
| <h3 id="_types_uid">types.UID</h3> | ||||
| 
 | ||||
| </div> | ||||
| <div class="sect2"> | ||||
| <h3 id="_unversioned_statuscause">unversioned.StatusCause</h3> | ||||
| <div class="paragraph"> | ||||
| <p>StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.</p> | ||||
| </div> | ||||
| <table class="tableblock frame-all grid-all" style="width:100%; "> | ||||
| <colgroup> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;"> | ||||
| <col style="width:20%;">  | ||||
| </colgroup> | ||||
| <thead> | ||||
| <tr> | ||||
| <th class="tableblock halign-left valign-top">Name</th> | ||||
| <th class="tableblock halign-left valign-top">Description</th> | ||||
| <th class="tableblock halign-left valign-top">Required</th> | ||||
| <th class="tableblock halign-left valign-top">Schema</th> | ||||
| <th class="tableblock halign-left valign-top">Default</th> | ||||
| </tr> | ||||
| </thead> | ||||
| <tbody> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">reason</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">A machine-readable description of the cause of the error. If this value is empty there is no information available.</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">message</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">A human-readable description of the cause of the error.  This field may be presented as-is to a reader.</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">field</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed.  Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.<br> | ||||
| <br> | ||||
| Examples:<br> | ||||
|   "name" - the field "name" on the current resource<br> | ||||
|   "items[0].name" - the field "name" on the first array entry in "items"</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> | ||||
| <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> | ||||
| <td class="tableblock halign-left valign-top"></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| 
 | ||||
| </div> | ||||
| <div class="sect2"> | ||||
| <h3 id="_any">any</h3> | ||||
| <div class="paragraph"> | ||||
| <p>Represents an untyped JSON map - see the description of the field for more info about the structure of this object.</p> | ||||
| </div> | ||||
| </div> | ||||
| </div> | ||||
| </div> | ||||
| </div> | ||||
| <div id="footer"> | ||||
| <div id="footer-text"> | ||||
| Last updated 2016-09-01 21:16:24 UTC | ||||
| </div> | ||||
| </div> | ||||
| </body> | ||||
| </html> | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							|  | @ -1,7 +1,7 @@ | |||
| --- | ||||
| --- | ||||
| <!-- needed for gh-pages to render html files when imported --> | ||||
| {% include v1.3/extensions-v1beta1-definitions.html %} | ||||
| {% include v1.4/extensions-v1beta1-definitions.html %} | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							|  | @ -1,7 +1,7 @@ | |||
| --- | ||||
| --- | ||||
| <!-- needed for gh-pages to render html files when imported --> | ||||
| {% include v1.3/extensions-v1beta1-operations.html %} | ||||
| {% include v1.4/extensions-v1beta1-operations.html %} | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							|  | @ -1,7 +1,7 @@ | |||
| --- | ||||
| --- | ||||
| <!-- needed for gh-pages to render html files when imported --> | ||||
| {% include v1.3/v1-definitions.html %} | ||||
| {% include v1.4/v1-definitions.html %} | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							|  | @ -1,7 +1,7 @@ | |||
| --- | ||||
| --- | ||||
| <!-- needed for gh-pages to render html files when imported --> | ||||
| {% include v1.3/v1-operations.html %} | ||||
| {% include v1.4/v1-operations.html %} | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -0,0 +1,19 @@ | |||
| --- | ||||
| --- | ||||
| 
 | ||||
| # API Reference | ||||
| 
 | ||||
| Federation API server supports the following group versions: | ||||
| 
 | ||||
| * federation/v1beta1: [operations](/docs/federation/api-reference/federation/v1beta1/operations.html), [model definitions](/docs/federation/api-reference/federation/v1beta1/definitions.html) | ||||
| * v1: [operations](/docs/federation/api-reference/v1/operations.html), [model definitions](/docs/federation/api-reference/v1/definitions.html) | ||||
| * extensions/v1beta1: [operations](/docs/federation/api-reference/extensions/v1beta1/operations.html), [model definitions](/docs/federation/api-reference/extensions/v1beta1/definitions.html) | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| <!-- BEGIN MUNGE: GENERATED_ANALYTICS --> | ||||
| []() | ||||
| <!-- END MUNGE: GENERATED_ANALYTICS --> | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							|  | @ -9,170 +9,8 @@ assignees: | |||
| {:toc} | ||||
| 
 | ||||
| 
 | ||||
| ## Prerequisites | ||||
| ## Overview | ||||
| 
 | ||||
| 1. An Azure subscription. If you don't already have one, you may create one on [azure.microsoft.com](https://azure.microsoft.com). | ||||
| 2. An account with Owner access to the subscription. | ||||
| 3. Both `docker` and `jq` need to be installed and available on `$PATH`. | ||||
| 
 | ||||
| 
 | ||||
| ## Cluster operations | ||||
| 
 | ||||
| ### Cluster bring-up | ||||
| 
 | ||||
| ```shell | ||||
| export KUBERNETES_PROVIDER=azure; curl -sS https://get.k8s.io | bash | ||||
| ``` | ||||
| 
 | ||||
| Note: if you receive an error "the input device is not a TTY", then you need to start the deployment manually. | ||||
| 
 | ||||
| ```shell | ||||
| cd ~/kubernetes | ||||
| ./cluster/kube-up.sh | ||||
| ``` | ||||
| 
 | ||||
| NOTE: This script calls [cluster/kube-up.sh](http://releases.k8s.io/{{page.githubbranch}}/cluster/kube-up.sh) | ||||
| which in turn calls [cluster/azure/util.sh](http://releases.k8s.io/{{page.githubbranch}}/cluster/azure/util.sh) | ||||
| using [cluster/azure/config-default.sh](http://releases.k8s.io/{{page.githubbranch}}/cluster/azure/config-default.sh). | ||||
| 
 | ||||
| You must set `AZURE_SUBSCRIPTION_ID` or you will receive errors. Prior to Kubernetes 1.3.0, you must also set `AZURE_TENANT_ID`. | ||||
| These may be set in `cluster/azure/config-default.sh` or set as environment variables: | ||||
| 
 | ||||
| ```shell | ||||
| export AZURE_SUBSCRIPTION_ID="<subscription-guid>" | ||||
| export AZURE_TENANT_ID="<tenant-guid>" # only needed for Kubernetes < v1.3.0. | ||||
| ``` | ||||
| 
 | ||||
| These values can be overridden by setting them in `cluster/azure/config-default.sh` or as environment variables. They are shown here with their default values: | ||||
| 
 | ||||
| ```shell | ||||
| export AZURE_DEPLOY_ID="" # autogenerated if blank | ||||
| export AZURE_LOCATION="westus" | ||||
| export AZURE_RESOURCE_GROUP="" # generated from AZURE_DEPLOY_ID if unset | ||||
| export AZURE_MASTER_SIZE="Standard_A1" | ||||
| export AZURE_NODE_SIZE="Standard_A1" | ||||
| export AZURE_USERNAME="kube" | ||||
| export NUM_NODES=3 | ||||
| export AZURE_AUTH_METHOD="device" | ||||
| ``` | ||||
| 
 | ||||
| 
 | ||||
| By default, this will deploy a cluster with 4 `Standard_A1`-sized VMs: one master node, three worker nodes. This process takes about 5 to 10 minutes. Once the cluster is up, connection information to the cluster will be displayed. Additionally, your `kubectl` configuration will be updated to know about this cluster and this new cluster will be set as the active context. | ||||
| 
 | ||||
| The Azure deployment process produces an output directory `cluster/azure/_deployments/${AZURE_DEPLOY_ID}`. In this directory you will find the PKI and SSH assets created for the cluster, as well as a script named `util.sh`. Here are some examples of its usage: | ||||
| 
 | ||||
| ```shell | ||||
| $ cd cluster/azure/_deployments/kube-20160316-001122/ | ||||
| 
 | ||||
| # This uses the client cert with curl to make an http call to the apiserver. | ||||
| $ ./util.sh curl api/v1/nodes | ||||
| 
 | ||||
| # This uses the client cert with kubectl to target this deployment's apiserver. | ||||
| $ ./util.sh kubectl get nodes | ||||
| 
 | ||||
| # This alters the current kubectl configuration to point at this cluster. | ||||
| $ ./util.sh configure-kubectl | ||||
| 
 | ||||
| # This will deploy the kube-system namespace, the SkyDNS addon, and the kube-dashboard addon. | ||||
| $ ./util.sh deploy-addons | ||||
| 
 | ||||
| # This uses the ssh private key to copy the private key itself to the master node. | ||||
| $ ./util.sh copykey | ||||
| 
 | ||||
| # This uses the ssh private key to open an ssh connection to the master. | ||||
| $ ./util.sh ssh | ||||
| ``` | ||||
| 
 | ||||
| ### Cluster deployment examples | ||||
| 
 | ||||
| #### Deploy the `kube-system` namespace | ||||
| 
 | ||||
| The cluster addons are created in the `kube-system` namespace. | ||||
| 
 | ||||
| For versions of Kubernetes before 1.3.0, this must be done manually. Starting with 1.3.0, the | ||||
| namespace is created automatically as part of the Azure bring-up. For versions prior to 1.3.0, you may | ||||
| execute this to create the `kube-system` namespace: | ||||
| 
 | ||||
| ```shell | ||||
| kubectl create -f https://raw.githubusercontent.com/colemickens/azkube/v0.0.5/templates/coreos/addons/kube-system.yaml | ||||
| ``` | ||||
| 
 | ||||
| #### Using `kubectl proxy` | ||||
| 
 | ||||
| `kubectl proxy` is currently used to access to access deployed services. | ||||
| 
 | ||||
| ```shell | ||||
| kubectl proxy --port=8001 | ||||
| ``` | ||||
| 
 | ||||
| Deployed services are available at: `http://localhost:8001/api/v1/proxy/namespaces/<namespace>/services/<service_name>`. | ||||
| 
 | ||||
| 
 | ||||
| #### Addon: SkyDNS | ||||
| 
 | ||||
| You can deploy the [SkyDNS addon](https://github.com/kubernetes/kubernetes/tree/{{page.githubbranch}}/cluster/addons/dns): | ||||
| 
 | ||||
| ```shell | ||||
| kubectl create -f https://raw.githubusercontent.com/colemickens/azkube/v0.0.5/templates/coreos/addons/skydns.yaml | ||||
| ``` | ||||
| 
 | ||||
| 
 | ||||
| #### Addon: Kube-Dashboard | ||||
| 
 | ||||
| This will deploy the [`kube-dashboard`](https://github.com/kubernetes/dashboard) addon: | ||||
| 
 | ||||
| ```shell | ||||
| kubectl create -f https://raw.githubusercontent.com/colemickens/azkube/v0.0.5/templates/coreos/addons/kube-dashboard.yaml | ||||
| ``` | ||||
| 
 | ||||
| The dashboard is then available at: `http://localhost:8001/api/v1/proxy/namespaces/kube-system/services/dashboard-canary`. | ||||
| 
 | ||||
| #### Example: Guestbook | ||||
| 
 | ||||
| This will deploy the [`guestbook example`](https://github.com/kubernetes/kubernetes/blob/{{page.githubbranch}}/examples/guestbook/README.md) (the all-in-one variant): | ||||
| 
 | ||||
| ```shell | ||||
| kubectl create -f https://raw.githubusercontent.com/kubernetes/kubernetes/release-1.2/examples/guestbook/all-in-one/guestbook-all-in-one.yaml | ||||
| ``` | ||||
| 
 | ||||
| The guestbook is then available at: `http://localhost:8001/api/v1/proxy/namespaces/default/services/frontend`. | ||||
| 
 | ||||
| 
 | ||||
| ### Cluster scaling | ||||
| 
 | ||||
| The `azkube` tool used internally during `kube-up` can also be used to scale your cluster. | ||||
| Here's an example of scaling a default deployment of 3 nodes to 10 nodes: | ||||
| 
 | ||||
| ```shell | ||||
| export AZURE_DEPLOY_ID="kube-20160316-001122" | ||||
| $ docker run -it -v "$HOME/.azkube:/.azkube" -v "/tmp:/tmp" \ | ||||
|     colemickens/azkube:v0.0.5 /opt/azkube/azkube scale \ | ||||
|     --deployment-name="${AZURE_DEPLOY_ID}" \ | ||||
|     --node-size="Standard_A1" \ | ||||
|     --node-count=10 | ||||
| ``` | ||||
| 
 | ||||
| ### Cluster tear-down | ||||
| 
 | ||||
| You can tear-down a cluster using `kube-down.sh`: | ||||
| 
 | ||||
| ```shell | ||||
| export AZURE_DEPLOY_ID="kube-20160316-001122" | ||||
| $ ./cluster/kube-down.sh | ||||
| ``` | ||||
| 
 | ||||
| Prior to Kubernetes 1.3, the cluster must be deleted manually with the Azure CLI or via the Azure Portal. | ||||
| 
 | ||||
| ### Notes | ||||
| 
 | ||||
| 1. The user account used for these operations must have Owner access to the subscription. | ||||
| 2. You can find your subscription ID in the [Azure Portal](https://portal.microsoft.com). (All Resources → Subscriptions) | ||||
| 3. The `AZURE_AUTH_METHOD` environment variable controls what authentication mechanism is used when bringing up the cluster. By default it is set to `device`. This allows the user to login via the a web browser. This interactive step can be automated by creating a Service Principal, setting `AZURE_AUTH_METHOD=client_secret` and setting `AZURE_CLIENT_ID` + `AZURE_CLIENT_SECRET` as appropriate for your Service Principal. | ||||
| 4. The `--node-size` used in the `scale` command must be the same size deployed initially or it will not have the desired effect. | ||||
| 5. Cluster tear-down requires manual intervention, due to the fact that it deletes the entire resource group and someone else may have deployed other resources since the initial deployment. For this reason you must confirm the list of resources that are to be deleted. If you wish to skip it, you may set `AZURE_DOWN_SKIP_CONFIRM` to `true`. This will delete everything in the resource group that was deployed to. | ||||
| 6. If you are deploying from a checkout of `kubernetes`, then you will need to take an additional step to ensure that a `hyperkube` image is available. You can set `AZURE_DOCKER_REGISTRY` and `AZURE_DOCKER_REPO` and the deployment will ensure that a hyperkube container is built and available in the specified Docker registry. That `hyperkube` image will then be used throughout the cluster for running the Kubernetes services. Alternatively, you may set `AZURE_HYPERKUBE_SPEC` to point to a custom `hyperkube` image. | ||||
| 
 | ||||
| 
 | ||||
| ## Further reading | ||||
| 
 | ||||
| * Please see the [azkube](https://github.com/colemickens/azkube) repository for more information about the deployment tool that manages the deployment. | ||||
| The recommended approach for deploying a Kubernetes 1.4 cluster on Azure is the | ||||
| [`kubernetes-anywhere`](https://github.com/kubernetes/kubernetes-anywhere) project. You will want to take a look at the | ||||
| [Azure Getting Started Guide](https://github.com/kubernetes/kubernetes-anywhere/blob/master/phase1/azure/README.md). | ||||
|  | @ -11,7 +11,7 @@ spec: | |||
|   dnsPolicy: Default | ||||
|   containers: | ||||
|   - name: fluentd-cloud-logging | ||||
|     image: gcr.io/google_containers/fluentd-gcp:1.21 | ||||
|     image: gcr.io/google_containers/fluentd-gcp:1.25 | ||||
|     resources: | ||||
|       limits: | ||||
|         memory: 200Mi | ||||
|  |  | |||
|  | @ -0,0 +1,254 @@ | |||
| --- | ||||
| --- | ||||
| 
 | ||||
| <style> | ||||
| li>.highlighter-rouge {position:relative; top:3px;} | ||||
| </style> | ||||
| 
 | ||||
| ## Overview | ||||
| 
 | ||||
| This quickstart shows you how to easily install a secure Kubernetes cluster on machines running Ubuntu 16.04 or CentOS 7. | ||||
| The installation uses a tool called `kubeadm` which is part of Kubernetes 1.4. | ||||
| 
 | ||||
| This process works with local VMs, physical servers and/or cloud servers. | ||||
| It is simple enough that you can easily integrate its use into your own automation (Terraform, Chef, Puppet, etc). | ||||
| 
 | ||||
| **The `kubeadm` tool is currently in alpha but please try it out and give us [feedback](/docs/getting-started-guides/kubeadm/#feedback)!** | ||||
| 
 | ||||
| ## Prerequisites | ||||
| 
 | ||||
| 1. One or more machines running Ubuntu 16.04 or CentOS 7 | ||||
| 1. 1GB or more of RAM per machine (any less will leave little room for your apps) | ||||
| 1. Full network connectivity between all machines in the cluster (public or private network is fine) | ||||
| 
 | ||||
| ## Objectives | ||||
| 
 | ||||
| * Install a secure Kubernetes cluster on your machines | ||||
| * Install a pod network on the cluster so that application components (pods) can talk to each other | ||||
| * Install a sample microservices application (a socks shop) on the cluster | ||||
| 
 | ||||
| ## Instructions | ||||
| 
 | ||||
| ### (1/4) Installing kubelet and kubeadm on your hosts | ||||
| 
 | ||||
| You will install the following packages on all the machines: | ||||
| 
 | ||||
| * `docker`: the container runtime, which Kubernetes depends on. | ||||
| * `kubelet`: the most core component of Kubernetes. | ||||
|   It runs on all of the machines in your cluster and does things like starting pods and containers. | ||||
| * `kubectl`: the command to control the cluster once it's running. | ||||
|   You will only use this on the master. | ||||
| * `kubeadm`: the command to bootstrap the cluster. | ||||
| 
 | ||||
| For each host in turn: | ||||
| 
 | ||||
| <!-- | ||||
|     # curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - | ||||
|     # cat <<EOF > /etc/apt/sources.list.d/kubernetes.list | ||||
|     deb http://packages.cloud.google.com/apt kubernetes-xenial main | ||||
|     EOF | ||||
|     # apt-get update | ||||
|     # apt-get install -y kubeadm docker.io§ | ||||
| --> | ||||
| 
 | ||||
| 
 | ||||
| * SSH into the machine and become `root` if you are not already (for example, run `sudo su -`). | ||||
| * If the machine is running Ubuntu 16.04, run: | ||||
| 
 | ||||
|       # apt-get install -y docker.io socat apt-transport-https | ||||
|       # curl -s -L \ | ||||
|         https://storage.googleapis.com/kubeadm/kubernetes-xenial-preview-bundle.txz | tar xJv | ||||
|       # dpkg -i kubernetes-xenial-preview-bundle/*.deb | ||||
| 
 | ||||
|    If the machine is running CentOS 7, run: | ||||
| 
 | ||||
|       # cat <<EOF > /etc/yum.repos.d/k8s.repo | ||||
|       [kubelet] | ||||
|       name=kubelet | ||||
|       baseurl=http://files.rm-rf.ca/rpms/kubelet/ | ||||
|       enabled=1 | ||||
|       gpgcheck=0 | ||||
|       EOF | ||||
|       # yum install docker kubelet kubeadm kubectl kubernetes-cni | ||||
|       # systemctl enable docker && systemctl start docker | ||||
|       # systemctl enable kubelet && systemctl start kubelet | ||||
| 
 | ||||
| The kubelet is now restarting every few seconds, as it waits in a crashloop for `kubeadm` to tell it what to do. | ||||
| 
 | ||||
| ### (2/4) Initializing your master | ||||
| 
 | ||||
| The master is the machine where the "control plane" components run, including `etcd` (the cluster database) and the API server (which the `kubectl` CLI communicates with). | ||||
| All of these components run in pods started by `kubelet`. | ||||
| 
 | ||||
| To initialize the master, pick one of the machines you previously installed `kubelet` and `kubeadm` on, and run: | ||||
| 
 | ||||
|      # kubeadm init --use-kubernetes-version v1.4.0-beta.11 | ||||
| 
 | ||||
| This will download and install the cluster database and "control plane" components. | ||||
| This may take several minutes. | ||||
| 
 | ||||
| The output should look like: | ||||
| 
 | ||||
|     <master/tokens> generated token: "f0c861.753c505740ecde4c" | ||||
|     <master/pki> created keys and certificates in "/etc/kubernetes/pki" | ||||
|     <util/kubeconfig> created "/etc/kubernetes/kubelet.conf" | ||||
|     <util/kubeconfig> created "/etc/kubernetes/admin.conf" | ||||
|     <master/apiclient> created API client configuration | ||||
|     <master/apiclient> created API client, waiting for the control plane to become ready | ||||
|     <master/apiclient> all control plane components are healthy after 61.346626 seconds | ||||
|     <master/apiclient> waiting for at least one node to register and become ready | ||||
|     <master/apiclient> first node is ready after 4.506807 seconds | ||||
|     <master/discovery> created essential addon: kube-discovery | ||||
|     <master/addons> created essential addon: kube-proxy | ||||
|     <master/addons> created essential addon: kube-dns | ||||
| 
 | ||||
|     Kubernetes master initialised successfully! | ||||
| 
 | ||||
|     You can connect any number of nodes by running: | ||||
| 
 | ||||
|     kubeadm join --token <token> <master-ip> | ||||
| 
 | ||||
| Make a record of the `kubeadm join` command that `kubeadm init` outputs. | ||||
| You will need this in a moment. | ||||
| The key included here is secret, keep it safe — anyone with this key can add authenticated nodes to your cluster. | ||||
| 
 | ||||
| The key is used for mutual authentication between the master and the joining nodes. | ||||
| 
 | ||||
| By default, your cluster will not schedule pods on the master for security reasons. | ||||
| If you want to be able to schedule pods on the master, for example if you want a single-machine Kubernetes cluster for development, run: | ||||
| 
 | ||||
|     # kubectl taint nodes --all dedicated- | ||||
|     node "test-01" tainted | ||||
|     taint key="dedicated" and effect="" not found. | ||||
|     taint key="dedicated" and effect="" not found. | ||||
| 
 | ||||
| This will remove the "dedicated" taint from any nodes that have it, including the master node, meaning that the scheduler will then be able to schedule pods everywhere. | ||||
| 
 | ||||
| ### (3/4) Joining your nodes | ||||
| 
 | ||||
| The nodes are where your workloads (containers and pods, etc) run. | ||||
| If you want to add any new machines as nodes to your cluster, for each machine: SSH to that machine, become root (e.g. `sudo su -`) and run the command that was output by `kubeadm init`. | ||||
| For example: | ||||
| 
 | ||||
|     # kubeadm join --token <token> <master-ip> | ||||
|     <util/tokens> validating provided token | ||||
|     <node/discovery> created cluster info discovery client, requesting info from "http://138.68.156.129:9898/cluster-info/v1/?token-id=0f8588" | ||||
|     <node/discovery> cluster info object received, verifying signature using given token | ||||
|     <node/discovery> cluster info signature and contents are valid, will use API endpoints [https://138.68.156.129:443] | ||||
|     <node/csr> created API client to obtain unique certificate for this node, generating keys and certificate signing request | ||||
|     <node/csr> received signed certificate from the API server, generating kubelet configuration | ||||
|     <util/kubeconfig> created "/etc/kubernetes/kubelet.conf" | ||||
| 
 | ||||
|     Node join complete: | ||||
|     * Certificate signing request sent to master and response | ||||
|       received. | ||||
|     * Kubelet informed of new secure connection details. | ||||
| 
 | ||||
|     Run 'kubectl get nodes' on the master to see this machine join. | ||||
| 
 | ||||
| A few seconds later, you should notice that running `kubectl get nodes` on the master shows a cluster with as many machines as you created. | ||||
| 
 | ||||
| **YOUR CLUSTER IS NOT READY YET!** | ||||
| 
 | ||||
| Before you can deploy applications to it, you need to install a pod network. | ||||
| 
 | ||||
| ### (4/4) Installing a pod network | ||||
| 
 | ||||
| You must install a pod network add-on so that your pods can communicate with each other when they are on different hosts. | ||||
| **It is necessary to do this before you try to deploy any applications to your cluster.** | ||||
| 
 | ||||
| Several projects provide Kubernetes pod networks. | ||||
| You can see a complete list of available network add-ons on the [add-ons page](/docs/admin/addons/). | ||||
| 
 | ||||
| By way of example, you can install [Weave Net](https://github.com/weaveworks/weave-kube) by logging in to the master and running: | ||||
| 
 | ||||
|     # kubectl apply -f https://git.io/weave-kube | ||||
|     daemonset "weave-net" created | ||||
| 
 | ||||
| If you prefer [Calico](https://github.com/projectcalico/calico-containers/tree/master/docs/cni/kubernetes/manifests/kubeadm) or [Canal](https://github.com/tigera/canal/tree/master/k8s-install/kubeadm), please refer to their respective installation guides. | ||||
| You should only install one pod network per cluster. | ||||
| 
 | ||||
| Once a pod network has been installed, you can confirm that it is working by checking that the `kube-dns` pod is `Running` in the output of `kubectl get pods --all-namespaces`. | ||||
| **This signifies that your cluster is ready.** | ||||
| 
 | ||||
| ### (Optional) Installing a sample application | ||||
| 
 | ||||
| As an example, install a sample microservices application, a socks shop, to put your cluster through its paces. | ||||
| To learn more about the sample microservices app, see the [GitHub README](https://github.com/microservices-demo/microservices-demo). | ||||
| 
 | ||||
|     # git clone https://github.com/microservices-demo/microservices-demo | ||||
|     # kubectl apply -f microservices-demo/deploy/kubernetes/manifests | ||||
| 
 | ||||
| You can then find out the port that the [NodePort feature of services](/docs/user-guide/services/) allocated for the front-end service by running: | ||||
| 
 | ||||
|     # kubectl describe svc front-end | ||||
|     Name:                   front-end | ||||
|     Namespace:              default | ||||
|     Labels:                 name=front-end | ||||
|     Selector:               name=front-end | ||||
|     Type:                   NodePort | ||||
|     IP:                     100.66.88.176 | ||||
|     Port:                   <unset> 80/TCP | ||||
|     NodePort:               <unset> 31869/TCP | ||||
|     Endpoints:              <none> | ||||
|     Session Affinity:       None | ||||
| 
 | ||||
| It takes several minutes to download and start all the containers, watch the output of `kubectl get pods` to see when they're all up and running. | ||||
| 
 | ||||
| Then go to the IP address of your cluster's master node in your browser, and specify the given port. | ||||
| So for example, `http://<master_ip>:<port>`. | ||||
| In the example above, this was `31869`, but it is a different port for you. | ||||
| 
 | ||||
| If there is a firewall, make sure it exposes this port to the internet before you try to access it. | ||||
| 
 | ||||
| ### Explore other add-ons | ||||
| 
 | ||||
| See the [list of add-ons](/docs/admin/addons/) to explore other add-ons, including tools for logging, monitoring, network policy, visualization & control of your Kubernetes cluster. | ||||
| 
 | ||||
| 
 | ||||
| ## What's next | ||||
| 
 | ||||
| * Learn more about [Kubernetes concepts and kubectl in Kubernetes 101](/docs/user-guide/walkthrough/). | ||||
| * Install Kubernetes with [a cloud provider configurations](/docs/getting-started-guides/) to add Load Balancer and Persistent Volume support. | ||||
| 
 | ||||
| 
 | ||||
| ## Cleanup | ||||
| 
 | ||||
| * To uninstall the socks shop, run `kubectl delete -f microservices-demo/deploy/kubernetes/manifests` on the master. | ||||
| 
 | ||||
| * To undo what `kubeadm` did, simply delete the machines you created for this tutorial, or run the script below and then uninstall the packages. | ||||
|   <details> | ||||
|      <pre><code>systemctl stop kubelet; | ||||
|   docker rm -f $(docker ps -q); mount | grep "/var/lib/kubelet/*" | awk '{print $3}' | xargs umount 1>/dev/null 2>/dev/null; | ||||
|   rm -rf /var/lib/kubelet /etc/kubernetes /var/lib/etcd /etc/cni; | ||||
|   ip link set cbr0 down; ip link del cbr0; | ||||
|   ip link set cni0 down; ip link del cni0; | ||||
|   systemctl start kubelet</code></pre> | ||||
|   </details> <!-- *syntax-highlighting-hack --> | ||||
| 
 | ||||
| ## Feedback | ||||
| 
 | ||||
| * Slack Channel: [#sig-cluster-lifecycle](https://kubernetes.slack.com/messages/sig-cluster-lifecycle/) | ||||
| * Mailing List: [kubernetes-sig-cluster-lifecycle](https://groups.google.com/forum/#!forum/kubernetes-sig-cluster-lifecycle) | ||||
| * [GitHub Issues](https://github.com/kubernetes/kubernetes/issues): please tag `kubeadm` issues with `@kubernetes/sig-cluster-lifecycle` | ||||
| 
 | ||||
| ## Limitations | ||||
| 
 | ||||
| Please note: `kubeadm` is a work in progress and these limitations will be addressed in due course. | ||||
| 
 | ||||
| 1. The cluster created here doesn't have cloud-provider integrations, so for example won't work with (for example) [Load Balancers](/docs/user-guide/load-balancer/) (LBs) or [Persistent Volumes](/docs/user-guide/persistent-volumes/walkthrough/) (PVs). | ||||
|    To easily obtain a cluster which works with LBs and PVs Kubernetes, try [the "hello world" GKE tutorial](/docs/hellonode) or [one of the other cloud-specific installation tutorials](/docs/getting-started-guides/). | ||||
| 
 | ||||
|    Workaround: use the [NodePort feature of services](/docs/user-guide/services/#type-nodeport) for exposing applications to the internet. | ||||
| 1. The cluster created here has a single master, with a single `etcd` database running on it. | ||||
|    This means that if the master fails, your cluster loses its configuration data and will need to be recreated from scratch. | ||||
|    Adding HA support (multiple `etcd` servers, multiple API servers, etc) to `kubeadm` is still a work-in-progress. | ||||
| 
 | ||||
|    Workaround: regularly [back up etcd](https://coreos.com/etcd/docs/latest/admin_guide.html). | ||||
|    The `etcd` data directory configured by `kubeadm` is at `/var/lib/etcd` on the master. | ||||
| 1. `kubectl logs` is broken with `kubeadm` clusters due to [#22770](https://github.com/kubernetes/kubernetes/issues/22770). | ||||
| 
 | ||||
|    Workaround: use `docker logs` on the nodes where the containers are running as a workaround. | ||||
| 1. There is not yet an easy way to generate a `kubeconfig` file which can be used to authenticate to the cluster remotely with `kubectl` on, for example, your workstation. | ||||
| 
 | ||||
|    Workaround: copy the kubelet's `kubeconfig` from the master: use `scp root@<master>:/etc/kubernetes/admin.conf .` and then e.g. `kubectl --kubeconfig ./admin.conf get nodes` from your workstation. | ||||
|  | @ -0,0 +1,34 @@ | |||
| --- | ||||
| assignees: | ||||
| - caseydavenport | ||||
| 
 | ||||
| --- | ||||
| 
 | ||||
| You can deploy a cluster using Calico for network policy in the default [GCE deployment](/docs/getting-started-guides/gce) using the following set of commands: | ||||
| 
 | ||||
| ```shell | ||||
| export NETWORK_POLICY_PROVIDER=calico | ||||
| export KUBE_NODE_OS_DISTRIBUTION=debian | ||||
| curl -sS https://get.k8s.io | bash | ||||
| ``` | ||||
| 
 | ||||
| See the [Calico documentation](https://github.com/projectcalico/calico-containers/tree/master/docs/cni/kubernetes#getting-started) for more options to deploy Calico with Kubernetes. | ||||
| 
 | ||||
| Once your cluster using Calico is running, you should see a collection of pods running in the `kube-system` Namespace that support Kubernetes NetworkPolicy. | ||||
| 
 | ||||
| ```console | ||||
| $ kubectl get pods --namespace=kube-system | ||||
| NAME                                                 READY     STATUS    RESTARTS   AGE | ||||
| calico-node-kubernetes-minion-group-jck6             1/1       Running   0          46m | ||||
| calico-node-kubernetes-minion-group-k9jy             1/1       Running   0          46m | ||||
| calico-node-kubernetes-minion-group-szgr             1/1       Running   0          46m | ||||
| calico-policy-controller-65rw1                       1/1       Running   0          46m | ||||
| ... | ||||
| ``` | ||||
| 
 | ||||
| There are two main components to be aware of: | ||||
| 
 | ||||
| - One `calico-node` Pod runs on each node in your cluster, and enforces network policy on the traffic to/from Pods on that machine by configuring iptables. | ||||
| - The `calico-policy-controller` Pod reads policy and label information from the Kubernetes API and configures Calico appropriately. | ||||
| 
 | ||||
| Once your cluster is running, you can follow the [NetworkPolicy gettting started guide](/docs/getting-started-guides/network-policy/walkthrough) to try out Kubernetes NetworkPolicy. | ||||
|  | @ -0,0 +1,109 @@ | |||
| --- | ||||
| assignees: | ||||
| - caseydavenport | ||||
| 
 | ||||
| --- | ||||
| 
 | ||||
| Kubernetes can be used to declare network policies which govern how Pods can communicate with each other.  This document helps you get started using the Kubernetes [NetworkPolicy API](/docs/user-guide/networkpolicies), and provides a demonstration thereof.  | ||||
| 
 | ||||
| In this article we assume that a Kubernetes cluster has been created with network policy support.  There are a number of network providers which support NetworkPolicy (see the "Using X for NetworkPolicy" articles in this section).  The reference implementation is [Calico](/docs/getting-started-guides/network-policy/calico) running on GCE. | ||||
| 
 | ||||
| The following example walkthrough will work on a Kubernetes cluster using any of the listed providers. | ||||
| 
 | ||||
| ## Using NetworkPolicy  | ||||
| 
 | ||||
| To explain how Kubernetes network policy works let's start off by creating an `nginx` Deployment and expose it via a Service.  | ||||
| 
 | ||||
| ```console | ||||
| $ kubectl run nginx --image=nginx --replicas=2 | ||||
| deployment "nginx" created | ||||
| $ kubectl expose deployment nginx --port=80  | ||||
| service "nginx" exposed | ||||
| ``` | ||||
| 
 | ||||
| This will run two nginx Pods in the default Namespace, and expose them through a Service called `nginx`.  | ||||
| 
 | ||||
| ```console | ||||
| $ kubectl get svc,pod | ||||
| NAME                    CLUSTER-IP    EXTERNAL-IP   PORT(S)    AGE | ||||
| kubernetes              10.100.0.1    <none>        443/TCP    46m | ||||
| nginx                   10.100.0.16   <none>        80/TCP     33s | ||||
| NAME                    READY         STATUS        RESTARTS   AGE | ||||
| nginx-701339712-e0qfq   1/1           Running       0          35s | ||||
| nginx-701339712-o00ef   1/1           Running       0          35s | ||||
| ``` | ||||
| 
 | ||||
| We should be able to access our new nginx Service from other Pods.  Let's try to access it from another Pod  | ||||
| in the default namespace.  We haven't put any network policy in place, so this should just work. Start a  | ||||
| busybox container, and use `wget` to hit the nginx Service: | ||||
| 
 | ||||
| ```console | ||||
| $ kubectl run busybox --rm -ti --image=busybox /bin/sh | ||||
| Waiting for pod default/busybox-472357175-y0m47 to be running, status is Pending, pod ready: false | ||||
| 
 | ||||
| Hit enter for command prompt | ||||
| 
 | ||||
| / # wget -s --timeout=1 nginx | ||||
| Connecting to nginx (10.100.0.16:80) | ||||
| / # | ||||
| ``` | ||||
| 
 | ||||
| Let's say we want to limit access to our nginx Service so that only pods with the label `access: true` can query it.  First, we'll | ||||
| enable ingress isolation on the `default` Namespace.  This will prevent _any_ pods from accessing the nginx Service. | ||||
| 
 | ||||
| ```console | ||||
| $ kubectl annotate ns default "net.beta.kubernetes.io/network-policy={\"ingress\": {\"isolation\": \"DefaultDeny\"}}" | ||||
| ``` | ||||
| 
 | ||||
| With ingress isolation in place, we should no longer be able to access the nginx Service like we were able to before. | ||||
| 
 | ||||
| Let's now create a `NetworkPolicy` which allows connections from pods with the label `access: true`. | ||||
| 
 | ||||
| ```yaml | ||||
| kind: NetworkPolicy | ||||
| apiVersion: extensions/v1beta1 | ||||
| metadata: | ||||
|   name: access-nginx | ||||
| spec: | ||||
|   podSelector: | ||||
|     matchLabels: | ||||
|       run: nginx | ||||
|   ingress: | ||||
|     - from: | ||||
|       - podSelector: | ||||
|           matchLabels: | ||||
|             access: "true" | ||||
| ``` | ||||
| 
 | ||||
| Use kubectl to create the above nginx-policy.yaml file: | ||||
| ```console | ||||
| $ kubectl create -f nginx-policy.yaml | ||||
| networkpolicy "access-nginx" created | ||||
| ``` | ||||
| 
 | ||||
| If we attempt to access the nginx Service from a pod without the correct labels, the request will timeout: | ||||
| 
 | ||||
| ```console | ||||
| $ kubectl run busybox --rm -ti --image=busybox /bin/sh | ||||
| Waiting for pod default/busybox-472357175-y0m47 to be running, status is Pending, pod ready: false | ||||
| 
 | ||||
| Hit enter for command prompt | ||||
| 
 | ||||
| / # wget -s --timeout=1 nginx  | ||||
| Connecting to nginx (10.100.0.16:80) | ||||
| wget: download timed out | ||||
| / # | ||||
| ``` | ||||
| 
 | ||||
| However, if we create a Pod with the correct labels, the request will be allowed: | ||||
| 
 | ||||
| ```console | ||||
| $ kubectl run busybox --rm -ti --labels="access=true" --image=busybox /bin/sh | ||||
| Waiting for pod default/busybox-472357175-y0m47 to be running, status is Pending, pod ready: false | ||||
| 
 | ||||
| Hit enter for command prompt | ||||
| 
 | ||||
| / # wget -s --timeout=1 nginx | ||||
| Connecting to nginx (10.100.0.16:80) | ||||
| / # | ||||
| ``` | ||||
|  | @ -14,7 +14,7 @@ This document describes how to run Kubernetes using [rkt](https://github.com/cor | |||
| 
 | ||||
| * [Systemd](http://www.freedesktop.org/wiki/Software/systemd/) must be installed and enabled. The minimum systemd version required for Kubernetes v1.3 is `219`. Systemd is used to monitor and manage the pods on each node. | ||||
| 
 | ||||
| * [Install the latest rkt release](https://coreos.com/rkt/docs/latest/trying-out-rkt.html). The minimum rkt version required is [v1.9.1](https://github.com/coreos/rkt/releases/tag/v1.9.1). The [CoreOS Linux alpha channel](https://coreos.com/releases/) ships with a recent rkt release, and you can easily [upgrade rkt on CoreOS](https://coreos.com/rkt/docs/latest/install-rkt-in-coreos.html), if necessary. | ||||
| * [Install the latest rkt release](https://coreos.com/rkt/docs/latest/trying-out-rkt.html). The minimum rkt version required is [v1.13.0](https://github.com/coreos/rkt/releases/tag/v1.13.0). The [CoreOS Linux alpha channel](https://coreos.com/releases/) ships with a recent rkt release, and you can easily [upgrade rkt on CoreOS](https://coreos.com/rkt/docs/latest/install-rkt-in-coreos.html), if necessary. | ||||
| 
 | ||||
| * The [rkt API service](https://coreos.com/rkt/docs/latest/subcommands/api-service.html) must be running on the node. | ||||
| 
 | ||||
|  | @ -129,7 +129,7 @@ $ export KUBE_CONTAINER_RUNTIME=rkt | |||
| Optionally, set the version of rkt by setting `KUBE_RKT_VERSION`: | ||||
| 
 | ||||
| ```shell | ||||
| $ export KUBE_RKT_VERSION=1.9.1 | ||||
| $ export KUBE_RKT_VERSION=1.13.0 | ||||
| ``` | ||||
| 
 | ||||
| Optionally, select an alternative [stage1 isolator](#modular-isolation-with-interchangeable-stage1-images) for the container runtime by setting `KUBE_RKT_STAGE1_IMAGE`: | ||||
|  |  | |||
|  | @ -34,6 +34,8 @@ spec: | |||
|         name: does-not-exist | ||||
| ``` | ||||
| 
 | ||||
| Also note that if `subPath` is specified in the container's volumeMounts and the `subPath` doesn't exist in the corresponding volume, the pod execution will fail as well. | ||||
| 
 | ||||
| ## Kubectl attach | ||||
| 
 | ||||
| The `kubectl attach` command does not work under the rkt container runtime. | ||||
|  | @ -97,6 +99,8 @@ On the other hand, when running the pod with [stage1-fly](https://coreos.com/rkt | |||
| 
 | ||||
| Patching a pod to change the image will result in the entire pod restarting, not just the container that was changed. | ||||
| 
 | ||||
| ## Volume mounts specifying a subPath | ||||
| ## ImagePullPolicy 'Always' | ||||
| 
 | ||||
| The [subPath](https://github.com/kubernetes/kubernetes/pull/22575) feature does not work correctly under rkt. In addition, the issue of non-existent host volume paths being invalid, mentioned above, would cause many common use cases for subPaths to fail in the same way. In some cases, this issue can be worked around by creating and using subdirectories from within the container, rather than relying on Kubernetes to do so. | ||||
| When the container's image pull policy is `Always`, rkt will always pull the image from remote even if the image has not changed at all. | ||||
| This can add significant latency for large images. | ||||
| The issue is tracked by rkt upstream at [#2937](https://github.com/coreos/rkt/issues/2937). | ||||
|  |  | |||
|  | @ -77,13 +77,18 @@ h2, h3, h4 { | |||
|     <a href="/docs/whatisk8s/" class="button">Read the Overview</a> | ||||
|   </div> | ||||
|   <div class="col3rd"> | ||||
|     <h3>Hello Node!</h3> | ||||
|     <p>In this quickstart, we’ll be creating a Kubernetes instance that stands up a simple “Hello World” app using Node.js. In just a few minutes you'll go from zero to deployed Kubernetes app on Google Container Engine.</p> | ||||
|     <a href="/docs/hellonode/" class="button">Get Started</a> | ||||
|     <h3>Hello World on Google Container Engine</h3> | ||||
|     <p>In this quickstart, we’ll be creating a Kubernetes instance that stands up a simple “Hello World” app using Node.js. In just a few minutes you'll go from zero to deployed Kubernetes app on Google Container Engine (GKE), a hosted service from Google.</p> | ||||
|     <a href="/docs/hellonode/" class="button">Get Started on GKE</a> | ||||
|   </div> | ||||
|   <div class="col3rd"> | ||||
|     <h3>Installing Kubernetes on Linux with kubeadm</h3> | ||||
|     <p>This quickstart will show you how to install a secure Kubernetes cluster on any computers running Linux, using a tool called <code>kubeadm</code> which is part of Kubernetes. It'll work with local VMs, physical servers and/or cloud servers, either manually or as part of your own automation. It is currently in alpha but please try it out and give us feedback!</p> | ||||
|     <a href="/docs/getting-started-guides/kubeadm/" class="button">Install Kubernetes with kubeadm</a> | ||||
|   </div> | ||||
|   <div class="col3rd"> | ||||
|     <h3>Guided Tutorial</h3> | ||||
|     <p>If you’ve completed the quickstart, a great next step is Kubernetes 101. You will follow a path through the various features of Kubernetes, with code examples along the way, learning all of the core concepts. There's also a <a href="/docs/user-guide/walkthrough/k8s201">Kubernetes 201</a>!</p> | ||||
|     <p>If you’ve completed one of the quickstarts, a great next step is Kubernetes 101. You will follow a path through the various features of Kubernetes, with code examples along the way, learning all of the core concepts. There's also a <a href="/docs/user-guide/walkthrough/k8s201">Kubernetes 201</a>!</p> | ||||
|     <a href="/docs/user-guide/walkthrough/" class="button">Kubernetes 101</a> | ||||
|   </div> | ||||
| </div> | ||||
|  |  | |||
|  | @ -414,6 +414,11 @@ When this pod is run, the output will be: | |||
| very | ||||
| ``` | ||||
| 
 | ||||
| #### Projecting keys to specific paths and file permissions | ||||
| 
 | ||||
| You can project keys to specific paths and specific permissions on a per-file | ||||
| basis. The [Secrets](/docs/user-guide/secrets/) user guide explains the syntax. | ||||
| 
 | ||||
| ## Real World Example: Configuring Redis | ||||
| 
 | ||||
| Let's take a look at a real-world example: configuring redis using ConfigMap.  Say we want to inject | ||||
|  |  | |||
|  | @ -114,6 +114,10 @@ The downward API volume refreshes its data in step with the kubelet refresh loop | |||
| 
 | ||||
| In future, it will be possible to specify a specific annotation or label. | ||||
| 
 | ||||
| #### Projecting keys to specific paths and file permissions | ||||
| 
 | ||||
| You can project keys to specific paths and specific permissions on a per-file | ||||
| basis. The [Secrets](/docs/user-guide/secrets/) user guide explains the syntax. | ||||
| 
 | ||||
| ### Example | ||||
| 
 | ||||
|  | @ -132,4 +136,4 @@ Some more thorough examples: | |||
| 
 | ||||
| ## Default values for container resource limits | ||||
| 
 | ||||
| If cpu and memory limits are not specified for a container, the downward API will default to node's cpu and memory capacities. | ||||
| If cpu and memory limits are not specified for a container, the downward API will default to the node allocatable value for cpu and memory. | ||||
|  |  | |||
|  | @ -0,0 +1,39 @@ | |||
| --- | ||||
| --- | ||||
| 
 | ||||
| This guide explains how to use events in federation control plane to help in debugging. | ||||
| 
 | ||||
| 
 | ||||
| * TOC | ||||
| {:toc} | ||||
| 
 | ||||
| ## Prerequisites | ||||
| 
 | ||||
| This guide assumes that you have a running Kubernetes Cluster | ||||
| Federation installation. If not, then head over to the | ||||
| [federation admin guide](/docs/admin/federation/) to learn how to | ||||
| bring up a cluster federation (or have your cluster administrator do | ||||
| this for you). Other tutorials, for example | ||||
| [this one](https://github.com/kelseyhightower/kubernetes-cluster-federation) | ||||
| by Kelsey Hightower, are also available to help you. | ||||
| 
 | ||||
| You are also expected to have a basic | ||||
| [working knowledge of Kubernetes](/docs/getting-started-guides/) in | ||||
| general. | ||||
| 
 | ||||
| ## Overview | ||||
| 
 | ||||
| Events in federation control plane (refered to as "federation events" in | ||||
| this guide) are very similar to the traditional Kubernetes | ||||
| Events providing the same functionality. | ||||
| Federation Events are stored only in federation control plane and are not passed on to the underlying kubernetes clusters. | ||||
| 
 | ||||
| Federation controllers create events as they process API resources to surface to the | ||||
| user, the state that they are in. | ||||
| You can get all events from federation apiserver by running: | ||||
| 
 | ||||
| ```shell | ||||
| kubectl --context=federation-cluster get events | ||||
| ``` | ||||
| 
 | ||||
| The standard kubectl get, update, delete commands will all work. | ||||
|  | @ -0,0 +1,47 @@ | |||
| --- | ||||
| --- | ||||
| 
 | ||||
| This guide explains how we can manage multiple kubernetes clusters using | ||||
| federation. | ||||
| [Federation proposal](https://github.com/kubernetes/kubernetes/blob/{{page.githubbranch}}/docs/proposals/federation.md) | ||||
| details the use cases motivating cluster federation. | ||||
| 
 | ||||
| 
 | ||||
| * TOC | ||||
| {:toc} | ||||
| 
 | ||||
| ## Setup | ||||
| 
 | ||||
| To be able to federate multiple clusters, we first need to setup a federation | ||||
| control plane. | ||||
| Follow the [setup guide](/docs/admin/federation/) to setup the | ||||
| federation control plane. | ||||
| 
 | ||||
| ## Hybrid cloud capabilities | ||||
| 
 | ||||
| Federations of Kubernetes Clusters can include clusters running in | ||||
| different cloud providers (e.g. Google Cloud, AWS), and on-premises | ||||
| (e.g. on OpenStack). Simply create all of the clusters that you | ||||
| require, in the appropriate cloud providers and/or locations, and | ||||
| register each cluster's API endpoint and credentials with your | ||||
| Federation API Server (See the | ||||
| [federation admin guide](/docs/admin/federation/) for details). | ||||
| 
 | ||||
| Thereafter, your API resources can span different clusters | ||||
| and cloud providers. | ||||
| 
 | ||||
| ## API resources | ||||
| 
 | ||||
| Once we have the control plane setup, we can start creating federation API | ||||
| resources. | ||||
| The following guides explain some of the resources in detail: | ||||
| 
 | ||||
| * [Events](/docs/user-guide/federation/events/) | ||||
| * [Namespaces](/docs/user-guide/federation/namespaces/) | ||||
| * [ReplicaSets](/docs/user-guide/federation/replicasets/) | ||||
| * [Secrets](/docs/user-guide/federation/secrets/) | ||||
| * [Services](/docs/user-guide/federation/federated-services/) | ||||
| <!-- TODO: Add more guides here --> | ||||
| 
 | ||||
| [API reference docs](/federation/docs/api-reference/readme/) lists all the | ||||
| resources supported by federation apiserver. | ||||
|  | @ -0,0 +1,90 @@ | |||
| --- | ||||
| --- | ||||
| 
 | ||||
| This guide explains how to use namespaces in Federation control plane. | ||||
| 
 | ||||
| 
 | ||||
| * TOC | ||||
| {:toc} | ||||
| 
 | ||||
| ## Prerequisites | ||||
| 
 | ||||
| This guide assumes that you have a running Kubernetes Cluster | ||||
| Federation installation. If not, then head over to the | ||||
| [federation admin guide](/docs/admin/federation/) to learn how to | ||||
| bring up a cluster federation (or have your cluster administrator do | ||||
| this for you). Other tutorials, for example | ||||
| [this one](https://github.com/kelseyhightower/kubernetes-cluster-federation) | ||||
| by Kelsey Hightower, are also available to help you. | ||||
| 
 | ||||
| You are also expected to have a basic | ||||
| [working knowledge of Kubernetes](/docs/getting-started-guides/) in | ||||
| general and [Namespaces](/docs/user-guide/namespaces/) in particular. | ||||
| 
 | ||||
| ## Overview | ||||
| 
 | ||||
| Namespaces in federation control plane (referred to as "federated namespaces" in | ||||
| this guide) are very similar to the traditional [Kubernetes | ||||
| Namespaces](/docs/user-guide/namespaces/) providing the same functionality. | ||||
| Creating them in the federation control plane ensures that they are synchronized | ||||
| across all the clusters in federation. | ||||
| 
 | ||||
| 
 | ||||
| ## Creating a Federated Namespace | ||||
| 
 | ||||
| The API for Federated Namespaces is 100% compatible with the | ||||
| API for traditional Kubernetes Namespaces. You can create a namespace by sending | ||||
| a request to the federation apiserver. | ||||
| 
 | ||||
| You can do that using kubectl by running: | ||||
| 
 | ||||
| ``` shell | ||||
| kubectl --context=federation-cluster create -f myns.yaml | ||||
| ``` | ||||
| 
 | ||||
| The '--context=federation-cluster' flag tells kubectl to submit the | ||||
| request to the Federation apiserver instead of sending it to a kubernetes | ||||
| cluster. | ||||
| 
 | ||||
| Once a federated namespace is created, the federation control plane will create | ||||
| a matching namespace in all underlying kubernetes clusters. | ||||
| You can verify this by checking each of the underlying clusters, for example: | ||||
| 
 | ||||
| ``` shell | ||||
| kubectl --context=gce-asia-east1a get namespaces myns | ||||
| ``` | ||||
| 
 | ||||
| The above assumes that you have a context named 'gce-asia-east1a' | ||||
| configured in your client for your cluster in that zone. The name and | ||||
| spec of the underlying namespace will match those of | ||||
| the Federated Namespace that you created above. | ||||
| 
 | ||||
| 
 | ||||
| ## Updating a Federated Namespace | ||||
| 
 | ||||
| You can update a federated namespace as you would update a Kubernetes | ||||
| namespace, just send the request to federation apiserver instead of sending it | ||||
| to a specific kubernetes cluster. | ||||
| Federation control plan will ensure that whenever the federated namespace is | ||||
| updated, it updates the corresponding namespaces in all underlying clusters to | ||||
| match it. | ||||
| 
 | ||||
| ## Deleting a Federated Namespace | ||||
| 
 | ||||
| You can delete a federated namespace as you would delete a Kubernetes | ||||
| namespace, just send the request to federation apiserver instead of sending it | ||||
| to a specific kubernetes cluster. | ||||
| 
 | ||||
| For example, you can do that using kubectl by running: | ||||
| 
 | ||||
| ```shell | ||||
| kubectl --context=federation-cluster delete ns myns | ||||
| ``` | ||||
| 
 | ||||
| As in Kubernetes, deleting a federated namespace will delete all resources in that | ||||
| namespace from the federation control plane. | ||||
| 
 | ||||
| Note that at this point, deleting a federated namespace will not delete the | ||||
| corresponding namespaces and resources in those namespaces from underlying clusters. | ||||
| Users are expected to delete them manually. | ||||
| We intend to fix this in the future. | ||||
|  | @ -0,0 +1,105 @@ | |||
| --- | ||||
| --- | ||||
| 
 | ||||
| This guide explains how to use replica sets in the Federation control plane. | ||||
| 
 | ||||
| 
 | ||||
| * TOC | ||||
| {:toc} | ||||
| 
 | ||||
| ## Prerequisites | ||||
| 
 | ||||
| This guide assumes that you have a running Kubernetes Cluster | ||||
| Federation installation. If not, then head over to the | ||||
| [federation admin guide](/docs/admin/federation/) to learn how to | ||||
| bring up a cluster federation (or have your cluster administrator do | ||||
| this for you). Other tutorials, for example | ||||
| [this one](https://github.com/kelseyhightower/kubernetes-cluster-federation) | ||||
| by Kelsey Hightower, are also available to help you. | ||||
| 
 | ||||
| You are also expected to have a basic | ||||
| [working knowledge of Kubernetes](/docs/getting-started-guides/) in | ||||
| general and [ReplicaSets](/docs/user-guide/replicasets/) in particular. | ||||
| 
 | ||||
| ## Overview | ||||
| 
 | ||||
| Replica Sets in federation control plane (referred to as "federated replica sets" in | ||||
| this guide) are very similar to the traditional [Kubernetes | ||||
| ReplicaSets](/docs/user-guide/replicasets/), and provide the same functionality. | ||||
| Creating them in the federation control plane ensures that the desired number of | ||||
| replicas exist across the registered clusters. | ||||
| 
 | ||||
| 
 | ||||
| ## Creating a Federated Replica Set | ||||
| 
 | ||||
| The API for Federated Replica Set is 100% compatible with the | ||||
| API for traditional Kubernetes Replica Set. You can create a replica set by sending | ||||
| a request to the federation apiserver. | ||||
| 
 | ||||
| You can do that using [kubectl](/docs/user-guide/kubectl/kubectl/) by running: | ||||
| 
 | ||||
| ``` shell | ||||
| kubectl --context=federation-cluster create -f myrs.yaml | ||||
| ``` | ||||
| 
 | ||||
| The '--context=federation-cluster' flag tells kubectl to submit the | ||||
| request to the Federation apiserver instead of sending it to a kubernetes | ||||
| cluster. | ||||
| 
 | ||||
| Once a federated replica set is created, the federation control plane will create | ||||
| a replica set in all underlying kubernetes clusters. | ||||
| You can verify this by checking each of the underlying clusters, for example: | ||||
| 
 | ||||
| ``` shell | ||||
| kubectl --context=gce-asia-east1a get rs myrs | ||||
| ``` | ||||
| 
 | ||||
| The above assumes that you have a context named 'gce-asia-east1a' | ||||
| configured in your client for your cluster in that zone. | ||||
| 
 | ||||
| These replica sets in underlying clusters will match the federation replica set | ||||
| except in the number of replicas. Federation control plane will ensure that the | ||||
| sum of replicas in each cluster match the desired number of replicas in the | ||||
| federation replica set. | ||||
| 
 | ||||
| ### Spreading Replicas in Underlying Clusters | ||||
| 
 | ||||
| By default, replicas are spread equally in all the underlying clusters. For ex: | ||||
| if you have 3 registered clusters and you create a federated replica set with | ||||
| `spec.replicas = 9`, then each replica set in the 3 clusters will have | ||||
| `spec.replicas=3`. | ||||
| To modify the number of replicas in each cluster, you can specify | ||||
| [FederatedReplicaSetPreference](https://github.com/kubernetes/kubernetes/blob/{{page.githubbranch}}/federation/apis/federation/types.go) | ||||
| as an annotation with key `federation.kubernetes.io/replica-set-preferences` | ||||
| on federated replica set. | ||||
| 
 | ||||
| 
 | ||||
| ## Updating a Federated Replica Set | ||||
| 
 | ||||
| You can update a federated replica set as you would update a Kubernetes | ||||
| replica set; however, for a federated replica set, you must send the request to | ||||
| the federation apiserver instead of sending it to a specific Kubernetes cluster. | ||||
| The Federation control plan ensures that whenever the federated replica set is | ||||
| updated, it updates the corresponding replica sets in all underlying clusters to | ||||
| match it. | ||||
| If your update includes a change in number of replicas, the federation | ||||
| control plane will change the number of replicas in underlying clusters to | ||||
| ensure that their sum remains equal to the number of desired replicas in | ||||
| federated replica set. | ||||
| 
 | ||||
| ## Deleting a Federated Replica Set | ||||
| 
 | ||||
| You can delete a federated replica set as you would delete a Kubernetes | ||||
| replica set; however, for a federated replica set, you must send the request to | ||||
| the federation apiserver instead of sending it to a specific Kubernetes cluster. | ||||
| 
 | ||||
| For example, you can do that using kubectl by running: | ||||
| 
 | ||||
| ```shell | ||||
| kubectl --context=federation-cluster delete rs myrs | ||||
| ``` | ||||
| 
 | ||||
| Note that at this point, deleting a federated replica set will not delete the | ||||
| corresponding replica sets from underlying clusters. | ||||
| You must delete the underlying Replica Sets manually. | ||||
| We intend to fix this in the future. | ||||
|  | @ -0,0 +1,87 @@ | |||
| --- | ||||
| --- | ||||
| 
 | ||||
| This guide explains how to use secrets in Federation control plane. | ||||
| 
 | ||||
| 
 | ||||
| * TOC | ||||
| {:toc} | ||||
| 
 | ||||
| ## Prerequisites | ||||
| 
 | ||||
| This guide assumes that you have a running Kubernetes Cluster | ||||
| Federation installation. If not, then head over to the | ||||
| [federation admin guide](/docs/admin/federation/) to learn how to | ||||
| bring up a cluster federation (or have your cluster administrator do | ||||
| this for you). Other tutorials, for example | ||||
| [this one](https://github.com/kelseyhightower/kubernetes-cluster-federation) | ||||
| by Kelsey Hightower, are also available to help you. | ||||
| 
 | ||||
| You are also expected to have a basic | ||||
| [working knowledge of Kubernetes](/docs/getting-started-guides/) in | ||||
| general and [Secrets](/docs/user-guide/secrets/) in particular. | ||||
| 
 | ||||
| ## Overview | ||||
| 
 | ||||
| Secrets in federation control plane (referred to as "federated secrets" in | ||||
| this guide) are very similar to the traditional [Kubernetes | ||||
| Secrets](/docs/user-guide/secrets/) providing the same functionality. | ||||
| Creating them in the federation control plane ensures that they are synchronized | ||||
| across all the clusters in federation. | ||||
| 
 | ||||
| 
 | ||||
| ## Creating a Federated Secret | ||||
| 
 | ||||
| The API for Federated Secret is 100% compatible with the | ||||
| API for traditional Kubernetes Secret. You can create a secret by sending | ||||
| a request to the federation apiserver. | ||||
| 
 | ||||
| You can do that using [kubectl](/docs/user-guide/kubectl/kubectl/) by running: | ||||
| 
 | ||||
| ``` shell | ||||
| kubectl --context=federation-cluster create -f mysecret.yaml | ||||
| ``` | ||||
| 
 | ||||
| The '--context=federation-cluster' flag tells kubectl to submit the | ||||
| request to the Federation apiserver instead of sending it to a kubernetes | ||||
| cluster. | ||||
| 
 | ||||
| Once a federated secret is created, the federation control plane will create | ||||
| a matching secret in all underlying kubernetes clusters. | ||||
| You can verify this by checking each of the underlying clusters, for example: | ||||
| 
 | ||||
| ``` shell | ||||
| kubectl --context=gce-asia-east1a get rs myrs | ||||
| ``` | ||||
| 
 | ||||
| The above assumes that you have a context named 'gce-asia-east1a' | ||||
| configured in your client for your cluster in that zone. | ||||
| 
 | ||||
| These secrets in underlying clusters will match the federated secret. | ||||
| 
 | ||||
| 
 | ||||
| ## Updating a Federated Secret | ||||
| 
 | ||||
| You can update a federated secret as you would update a Kubernetes | ||||
| secret; however, for a federated secret, you must send the request to | ||||
| the federation apiserver instead of sending it to a specific Kubernetes cluster. | ||||
| The Federation control plan ensures that whenever the federated secret is | ||||
| updated, it updates the corresponding secrets in all underlying clusters to | ||||
| match it. | ||||
| 
 | ||||
| ## Deleting a Federated Secret | ||||
| 
 | ||||
| You can delete a federated secret as you would delete a Kubernetes | ||||
| secret; however, for a federated secret, you must send the request to | ||||
| the federation apiserver instead of sending it to a specific Kubernetes cluster. | ||||
| 
 | ||||
| For example, you can do that using kubectl by running: | ||||
| 
 | ||||
| ```shell | ||||
| kubectl --context=federation-cluster delete rs myrs | ||||
| ``` | ||||
| 
 | ||||
| Note that at this point, deleting a federated secret will not delete the | ||||
| corresponding secrets from underlying clusters. | ||||
| You must delete the underlying secrets manually. | ||||
| We intend to fix this in the future. | ||||
|  | @ -0,0 +1,36 @@ | |||
| --- | ||||
| assignees: | ||||
| - caesarxuchao | ||||
| 
 | ||||
| --- | ||||
| 
 | ||||
| * TOC | ||||
| {:toc} | ||||
| 
 | ||||
| ## Garbage Collection | ||||
| 
 | ||||
| Note: the Garbage Collection is a beta feature and is enabled by default in Kubernetes version 1.4. | ||||
| 
 | ||||
| ### What does Garbage Collector do | ||||
| 
 | ||||
| When you delete, for example, a ReplicaSet, it is often desirable for the server to automatically garbage collect all the Pods that the ReplicaSet creates. The Garbage Collector (GC) implements this. In general, when you delete an owner object, GC deletes that owner's dependent objects. | ||||
| 
 | ||||
| ### How to establish an owner-dependent relationship between objects | ||||
| 
 | ||||
| Kubernetes 1.3 added a metadata.ownerReferences field to every Kubernetes API object. If an API object is a dependent of another object, ownerReference should point to the owning API object. | ||||
| 
 | ||||
| When you create a ReplicationController or a ReplicaSet in Kubernetes 1.4, the Kubernetes control plane automatically sets the ownerReference field in each created pod to point to the owning ReplicationController or ReplicaSet. | ||||
| 
 | ||||
| You can set up owner-dependent relationships among other objects by manually setting the ownerReference field on dependent objects. | ||||
| 
 | ||||
| ### Controlling whether Garbage Collector deletes dependents | ||||
| 
 | ||||
| When deleting an object, you can request the GC to ***asynchronously*** delete its dependents by ***explicitly*** specifying `deleteOptions.orphanDependents=false` in the deletion request that you send to the API server. A 200 OK response from the API server indicates the owner is deleted. | ||||
| 
 | ||||
| Synchronous garbage collection will be supported in 1.5 (tracking [issue](https://github.com/kubernetes/kubernetes/issues/29891)). | ||||
| 
 | ||||
| If you specify `deleteOptions.orphanDependents=true`, or leave it blank, then the GC will first reset the `ownerReferences` in the dependents, then delete the owner. Note that the deletion of the owner object is asynchronous, that is, a 200 OK response will be sent by the API server before the owner object gets deleted. | ||||
| 
 | ||||
| ### Other references | ||||
| [Design Doc](https://github.com/kubernetes/kubernetes/blob/master/docs/proposals/garbage-collection.md) | ||||
| [Known issues](https://github.com/kubernetes/kubernetes/issues/26120) | ||||
|  | @ -1,30 +0,0 @@ | |||
| --- | ||||
| assignees: | ||||
| - caesarxuchao | ||||
| - mikedanese | ||||
| 
 | ||||
| --- | ||||
| 
 | ||||
| * TOC | ||||
| {:toc} | ||||
| 
 | ||||
| ## WARNING: Garbage Collector is an alpha feature and is disabled by default. Use it at your own risk! | ||||
| 
 | ||||
| ### What is garbage collector for | ||||
| 
 | ||||
| The garbage collector (GC) cascadingly deletes dependent API objects when the owner is deleted. One use case is if two objects have functional dependency, you can specify the dependency in their configuration file when creating them, and if one of them is deleted, the GC will delete the other one automatically. The other use case is if there is logical dependency among API objects, e.g., the pods created by a replicaset depending on the replicaset, Kubernetes will automatically set the dependency (this will be implemented in release 1.4) and the GC will delete the pods when the replicaset is deleted. | ||||
| 
 | ||||
| ### How does the garbage collector work | ||||
| 
 | ||||
| In release 1.3, there is a new `ownerReferences` field in the `metadata` of every Kubernetes API objects. The GC monitors the cluster and checks the `metadata.ownerReferences` field of each object. If none of the owners present in `metadata.ownerReferences` exists in the cluster, the GC will request the API server to delete the object. | ||||
| 
 | ||||
| Currently a user needs to manually set the `metadata.ownerReferences`. In release 1.4, controllers will automatically set the field for the objects it controls. For example, when the replicaset controller creates or adopts pods, it will automatically add the replicaset to the `metadata.ownerReferences` fields of the pods. | ||||
| 
 | ||||
| ### How to request the garbage collector to not delete dependents | ||||
| 
 | ||||
| When deleting an object, you can prevent the GC from deleting that object's dependents by specifying `deleteOptions.orphanDependents=true` in the deletion request. It prevents garbage collection by removing the object from its dependents' metadata.ownerReferences field. | ||||
| 
 | ||||
| ### How to enable the garbage collector | ||||
| 
 | ||||
| The garbage collector is an alpha feature so it is disabled by default. To enable it, you need to start the kube-apiserver and kube-controller-manager with flag `--enable-garbage-collector`. | ||||
| 
 | ||||
|  | @ -271,6 +271,10 @@ test      -                       178.91.123.132 | |||
| 
 | ||||
| You can achieve the same by invoking `kubectl replace -f` on a modified Ingress yaml file. | ||||
| 
 | ||||
| ## Failing across availability zones | ||||
| 
 | ||||
| Techniques for spreading traffic across failure domains differs between cloud providers. Please check the documentation of the relevant Ingress controller for details. Please refer to the federation [doc](/docs/user-guide/federation/) for details on deploying Ingress in a federated cluster. | ||||
| 
 | ||||
| ## Future Work | ||||
| 
 | ||||
| * Various modes of HTTPS/TLS support (eg: SNI, re-encryption) | ||||
|  |  | |||
|  | @ -19,69 +19,70 @@ kubectl | |||
| ### Options | ||||
| 
 | ||||
| ``` | ||||
|       --alsologtostderr[=false]: log to standard error as well as files | ||||
|       --as="": Username to impersonate for the operation. | ||||
|       --certificate-authority="": Path to a cert. file for the certificate authority. | ||||
|       --client-certificate="": Path to a client certificate file for TLS. | ||||
|       --client-key="": Path to a client key file for TLS. | ||||
|       --cluster="": The name of the kubeconfig cluster to use | ||||
|       --context="": The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify[=false]: If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure. | ||||
|       --kubeconfig="": Path to the kubeconfig file to use for CLI requests. | ||||
|       --log-backtrace-at=:0: when logging hits line file:N, emit a stack trace | ||||
|       --log-dir="": If non-empty, write log files in this directory | ||||
|       --log-flush-frequency=5s: Maximum number of seconds between log flushes | ||||
|       --logtostderr[=true]: log to standard error instead of files | ||||
|       --match-server-version[=false]: Require server version to match client version | ||||
|       --namespace="": If present, the namespace scope for this CLI request. | ||||
|       --password="": Password for basic authentication to the API server. | ||||
|   -s, --server="": The address and port of the Kubernetes API server | ||||
|       --stderrthreshold=2: logs at or above this threshold go to stderr | ||||
|       --token="": Bearer token for authentication to the API server. | ||||
|       --user="": The name of the kubeconfig user to use | ||||
|       --username="": Username for basic authentication to the API server. | ||||
|       --v=0: log level for V logs | ||||
|       --vmodule=: comma-separated list of pattern=N settings for file-filtered logging | ||||
|       --alsologtostderr value          log to standard error as well as files | ||||
|       --as string                      Username to impersonate for the operation | ||||
|       --certificate-authority string   Path to a cert. file for the certificate authority | ||||
|       --client-certificate string      Path to a client certificate file for TLS | ||||
|       --client-key string              Path to a client key file for TLS | ||||
|       --cluster string                 The name of the kubeconfig cluster to use | ||||
|       --context string                 The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify       If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure | ||||
|       --kubeconfig string              Path to the kubeconfig file to use for CLI requests. | ||||
|       --log-backtrace-at value         when logging hits line file:N, emit a stack trace (default :0) | ||||
|       --log-dir value                  If non-empty, write log files in this directory | ||||
|       --logtostderr value              log to standard error instead of files | ||||
|       --match-server-version           Require server version to match client version | ||||
|   -n, --namespace string               If present, the namespace scope for this CLI request | ||||
|       --password string                Password for basic authentication to the API server | ||||
|   -s, --server string                  The address and port of the Kubernetes API server | ||||
|       --stderrthreshold value          logs at or above this threshold go to stderr (default 2) | ||||
|       --token string                   Bearer token for authentication to the API server | ||||
|       --user string                    The name of the kubeconfig user to use | ||||
|       --username string                Username for basic authentication to the API server | ||||
|   -v, --v value                        log level for V logs | ||||
|       --vmodule value                  comma-separated list of pattern=N settings for file-filtered logging | ||||
| ``` | ||||
| 
 | ||||
| ### SEE ALSO | ||||
| 
 | ||||
| * [kubectl annotate](../kubectl_annotate/)	 - Update the annotations on a resource | ||||
| * [kubectl api-versions](../kubectl_api-versions/)	 - Print the supported API versions on the server, in the form of "group/version". | ||||
| * [kubectl apply](../kubectl_apply/)	 - Apply a configuration to a resource by filename or stdin | ||||
| * [kubectl attach](../kubectl_attach/)	 - Attach to a running container. | ||||
| * [kubectl autoscale](../kubectl_autoscale/)	 - Auto-scale a Deployment, ReplicaSet, or ReplicationController | ||||
| * [kubectl cluster-info](../kubectl_cluster-info/)	 - Display cluster info | ||||
| * [kubectl completion](../kubectl_completion/)	 - Output shell completion code for the given shell (bash or zsh) | ||||
| * [kubectl config](../kubectl_config/)	 - config modifies kubeconfig files | ||||
| * [kubectl convert](../kubectl_convert/)	 - Convert config files between different API versions | ||||
| * [kubectl cordon](../kubectl_cordon/)	 - Mark node as unschedulable | ||||
| * [kubectl create](../kubectl_create/)	 - Create a resource by filename or stdin | ||||
| * [kubectl delete](../kubectl_delete/)	 - Delete resources by filenames, stdin, resources and names, or by resources and label selector. | ||||
| * [kubectl describe](../kubectl_describe/)	 - Show details of a specific resource or group of resources | ||||
| * [kubectl drain](../kubectl_drain/)	 - Drain node in preparation for maintenance | ||||
| * [kubectl edit](../kubectl_edit/)	 - Edit a resource on the server | ||||
| * [kubectl exec](../kubectl_exec/)	 - Execute a command in a container. | ||||
| * [kubectl explain](../kubectl_explain/)	 - Documentation of resources. | ||||
| * [kubectl expose](../kubectl_expose/)	 - Take a replication controller, service, deployment or pod and expose it as a new Kubernetes Service | ||||
| * [kubectl get](../kubectl_get/)	 - Display one or many resources | ||||
| * [kubectl label](../kubectl_label/)	 - Update the labels on a resource | ||||
| * [kubectl logs](../kubectl_logs/)	 - Print the logs for a container in a pod. | ||||
| * [kubectl namespace](../kubectl_namespace/)	 - SUPERSEDED: Set and view the current Kubernetes namespace | ||||
| * [kubectl patch](../kubectl_patch/)	 - Update field(s) of a resource using strategic merge patch. | ||||
| * [kubectl port-forward](../kubectl_port-forward/)	 - Forward one or more local ports to a pod. | ||||
| * [kubectl proxy](../kubectl_proxy/)	 - Run a proxy to the Kubernetes API server | ||||
| * [kubectl replace](../kubectl_replace/)	 - Replace a resource by filename or stdin. | ||||
| * [kubectl rolling-update](../kubectl_rolling-update/)	 - Perform a rolling update of the given ReplicationController. | ||||
| * [kubectl rollout](../kubectl_rollout/)	 - rollout manages a deployment | ||||
| * [kubectl run](../kubectl_run/)	 - Run a particular image on the cluster. | ||||
| * [kubectl scale](../kubectl_scale/)	 - Set a new size for a Deployment, ReplicaSet, Replication Controller, or Job. | ||||
| * [kubectl set](../kubectl_set/)	 - Set specific features on objects | ||||
| * [kubectl taint](../kubectl_taint/)	 - Update the taints on one or more nodes | ||||
| * [kubectl uncordon](../kubectl_uncordon/)	 - Mark node as schedulable | ||||
| * [kubectl version](../kubectl_version/)	 - Print the client and server version information. | ||||
| * [kubectl annotate](kubectl_annotate.md)	 - Update the annotations on a resource | ||||
| * [kubectl api-versions](kubectl_api-versions.md)	 - Print the supported API versions on the server, in the form of "group/version" | ||||
| * [kubectl apply](kubectl_apply.md)	 - Apply a configuration to a resource by filename or stdin | ||||
| * [kubectl attach](kubectl_attach.md)	 - Attach to a running container | ||||
| * [kubectl autoscale](kubectl_autoscale.md)	 - Auto-scale a Deployment, ReplicaSet, or ReplicationController | ||||
| * [kubectl cluster-info](kubectl_cluster-info.md)	 - Display cluster info | ||||
| * [kubectl completion](kubectl_completion.md)	 - Output shell completion code for the given shell (bash or zsh) | ||||
| * [kubectl config](kubectl_config.md)	 - Modify kubeconfig files | ||||
| * [kubectl convert](kubectl_convert.md)	 - Convert config files between different API versions | ||||
| * [kubectl cordon](kubectl_cordon.md)	 - Mark node as unschedulable | ||||
| * [kubectl create](kubectl_create.md)	 - Create a resource by filename or stdin | ||||
| * [kubectl delete](kubectl_delete.md)	 - Delete resources by filenames, stdin, resources and names, or by resources and label selector | ||||
| * [kubectl describe](kubectl_describe.md)	 - Show details of a specific resource or group of resources | ||||
| * [kubectl drain](kubectl_drain.md)	 - Drain node in preparation for maintenance | ||||
| * [kubectl edit](kubectl_edit.md)	 - Edit a resource on the server | ||||
| * [kubectl exec](kubectl_exec.md)	 - Execute a command in a container | ||||
| * [kubectl explain](kubectl_explain.md)	 - Documentation of resources | ||||
| * [kubectl expose](kubectl_expose.md)	 - Take a replication controller, service, deployment or pod and expose it as a new Kubernetes Service | ||||
| * [kubectl get](kubectl_get.md)	 - Display one or many resources | ||||
| * [kubectl label](kubectl_label.md)	 - Update the labels on a resource | ||||
| * [kubectl logs](kubectl_logs.md)	 - Print the logs for a container in a pod | ||||
| * [kubectl namespace](kubectl_namespace.md)	 - Deprecated: config set-context | ||||
| * [kubectl options](kubectl_options.md)	 - | ||||
| * [kubectl patch](kubectl_patch.md)	 - Update field(s) of a resource using strategic merge patch | ||||
| * [kubectl port-forward](kubectl_port-forward.md)	 - Forward one or more local ports to a pod | ||||
| * [kubectl proxy](kubectl_proxy.md)	 - Run a proxy to the Kubernetes API server | ||||
| * [kubectl replace](kubectl_replace.md)	 - Replace a resource by filename or stdin | ||||
| * [kubectl rolling-update](kubectl_rolling-update.md)	 - Perform a rolling update of the given ReplicationController | ||||
| * [kubectl rollout](kubectl_rollout.md)	 - Manage a deployment rollout | ||||
| * [kubectl run](kubectl_run.md)	 - Run a particular image on the cluster | ||||
| * [kubectl scale](kubectl_scale.md)	 - Set a new size for a Deployment, ReplicaSet, Replication Controller, or Job | ||||
| * [kubectl set](kubectl_set.md)	 - Set specific features on objects | ||||
| * [kubectl taint](kubectl_taint.md)	 - Update the taints on one or more nodes | ||||
| * [kubectl top](kubectl_top.md)	 - Display Resource (CPU/Memory/Storage) usage | ||||
| * [kubectl uncordon](kubectl_uncordon.md)	 - Mark node as schedulable | ||||
| * [kubectl version](kubectl_version.md)	 - Print the client and server version information | ||||
| 
 | ||||
| ###### Auto generated by spf13/cobra on 12-Aug-2016 | ||||
| ###### Auto generated by spf13/cobra on 2-Sep-2016 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -8,6 +8,7 @@ Update the annotations on a resource | |||
| ### Synopsis | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| Update the annotations on one or more resources. | ||||
| 
 | ||||
| An annotation is a key/value pair that can hold larger (compared to a label), and possibly not human-readable, data. | ||||
|  | @ -21,7 +22,6 @@ Possible resources include (case insensitive): | |||
|   limitrange (limits), persistentvolume (pv), persistentvolumeclaim (pvc), | ||||
|   horizontalpodautoscaler (hpa), resourcequota (quota), secret | ||||
| 
 | ||||
| 
 | ||||
| ``` | ||||
| kubectl annotate [--overwrite] (-f FILENAME | TYPE NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--resource-version=version] | ||||
| ``` | ||||
|  | @ -29,6 +29,7 @@ kubectl annotate [--overwrite] (-f FILENAME | TYPE NAME) KEY_1=VAL_1 ... KEY_N=V | |||
| ### Examples | ||||
| 
 | ||||
| ``` | ||||
| 
 | ||||
| # Update pod 'foo' with the annotation 'description' and the value 'my frontend'. | ||||
| # If the same annotation is set multiple times, only the last value will be applied | ||||
| kubectl annotate pods foo description='my frontend' | ||||
|  | @ -53,56 +54,55 @@ kubectl annotate pods foo description- | |||
| ### Options | ||||
| 
 | ||||
| ``` | ||||
|       --all[=false]: select all resources in the namespace of the specified resource types | ||||
|   -f, --filename=[]: Filename, directory, or URL to a file identifying the resource to update the annotation | ||||
|       --include-extended-apis[=true]: If true, include definitions of new APIs via calls to the API server. [default true] | ||||
|       --no-headers[=false]: When using the default output, don't print headers. | ||||
|   -o, --output="": Output format. One of: json|yaml|wide|name|go-template=...|go-template-file=...|jsonpath=...|jsonpath-file=... See golang template [http://golang.org/pkg/text/template/#pkg-overview] and jsonpath template [http://releases.k8s.io/release-1.3/docs/user-guide/jsonpath.md]. | ||||
|       --output-version="": Output the formatted object with the given group version (for ex: 'extensions/v1beta1'). | ||||
|       --overwrite[=false]: If true, allow annotations to be overwritten, otherwise reject annotation updates that overwrite existing annotations. | ||||
|       --record[=false]: Record current kubectl command in the resource annotation. | ||||
|   -R, --recursive[=false]: Process the directory used in -f, --filename recursively. Useful when you want to manage related manifests organized within the same directory. | ||||
|       --resource-version="": If non-empty, the annotation update will only succeed if this is the current resource-version for the object. Only valid when specifying a single resource. | ||||
|   -l, --selector="": Selector (label query) to filter on | ||||
|   -a, --show-all[=false]: When printing, show all resources (default hide terminated pods.) | ||||
|       --show-labels[=false]: When printing, show all labels as the last column (default hide labels column) | ||||
|       --sort-by="": If non-empty, sort list types using this field specification.  The field specification is expressed as a JSONPath expression (e.g. '{.metadata.name}'). The field in the API resource specified by this JSONPath expression must be an integer or a string. | ||||
|       --template="": Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates [http://golang.org/pkg/text/template/#pkg-overview]. | ||||
|       --all                       select all resources in the namespace of the specified resource types | ||||
|   -f, --filename value            Filename, directory, or URL to a file identifying the resource to update the annotation (default []) | ||||
|       --include-extended-apis     If true, include definitions of new APIs via calls to the API server. [default true] (default true) | ||||
|       --no-headers                When using the default or custom-column output format, don't print headers. | ||||
|   -o, --output string             Output format. One of: json|yaml|wide|name|custom-columns=...|custom-columns-file=...|go-template=...|go-template-file=...|jsonpath=...|jsonpath-file=... See custom columns [http://kubernetes.io/docs/user-guide/kubectl-overview/#custom-columns], golang template [http://golang.org/pkg/text/template/#pkg-overview] and jsonpath template [http://kubernetes.io/docs/user-guide/jsonpath]. | ||||
|       --output-version string     Output the formatted object with the given group version (for ex: 'extensions/v1beta1'). | ||||
|       --overwrite                 If true, allow annotations to be overwritten, otherwise reject annotation updates that overwrite existing annotations. | ||||
|       --record                    Record current kubectl command in the resource annotation. If set to false, do not record the command. If set to true, record the command. If not set, default to updating the existing annotation value only if one already exists. | ||||
|   -R, --recursive                 Process the directory used in -f, --filename recursively. Useful when you want to manage related manifests organized within the same directory. | ||||
|       --resource-version string   If non-empty, the annotation update will only succeed if this is the current resource-version for the object. Only valid when specifying a single resource. | ||||
|   -l, --selector string           Selector (label query) to filter on | ||||
|   -a, --show-all                  When printing, show all resources (default hide terminated pods.) | ||||
|       --show-labels               When printing, show all labels as the last column (default hide labels column) | ||||
|       --sort-by string            If non-empty, sort list types using this field specification.  The field specification is expressed as a JSONPath expression (e.g. '{.metadata.name}'). The field in the API resource specified by this JSONPath expression must be an integer or a string. | ||||
|       --template string           Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates [http://golang.org/pkg/text/template/#pkg-overview]. | ||||
| ``` | ||||
| 
 | ||||
| ### Options inherited from parent commands | ||||
| 
 | ||||
| ``` | ||||
|       --alsologtostderr[=false]: log to standard error as well as files | ||||
|       --as="": Username to impersonate for the operation. | ||||
|       --certificate-authority="": Path to a cert. file for the certificate authority. | ||||
|       --client-certificate="": Path to a client certificate file for TLS. | ||||
|       --client-key="": Path to a client key file for TLS. | ||||
|       --cluster="": The name of the kubeconfig cluster to use | ||||
|       --context="": The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify[=false]: If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure. | ||||
|       --kubeconfig="": Path to the kubeconfig file to use for CLI requests. | ||||
|       --log-backtrace-at=:0: when logging hits line file:N, emit a stack trace | ||||
|       --log-dir="": If non-empty, write log files in this directory | ||||
|       --log-flush-frequency=5s: Maximum number of seconds between log flushes | ||||
|       --logtostderr[=true]: log to standard error instead of files | ||||
|       --match-server-version[=false]: Require server version to match client version | ||||
|       --namespace="": If present, the namespace scope for this CLI request. | ||||
|       --password="": Password for basic authentication to the API server. | ||||
|   -s, --server="": The address and port of the Kubernetes API server | ||||
|       --stderrthreshold=2: logs at or above this threshold go to stderr | ||||
|       --token="": Bearer token for authentication to the API server. | ||||
|       --user="": The name of the kubeconfig user to use | ||||
|       --username="": Username for basic authentication to the API server. | ||||
|       --v=0: log level for V logs | ||||
|       --vmodule=: comma-separated list of pattern=N settings for file-filtered logging | ||||
|       --alsologtostderr value          log to standard error as well as files | ||||
|       --as string                      Username to impersonate for the operation | ||||
|       --certificate-authority string   Path to a cert. file for the certificate authority | ||||
|       --client-certificate string      Path to a client certificate file for TLS | ||||
|       --client-key string              Path to a client key file for TLS | ||||
|       --cluster string                 The name of the kubeconfig cluster to use | ||||
|       --context string                 The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify       If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure | ||||
|       --kubeconfig string              Path to the kubeconfig file to use for CLI requests. | ||||
|       --log-backtrace-at value         when logging hits line file:N, emit a stack trace (default :0) | ||||
|       --log-dir value                  If non-empty, write log files in this directory | ||||
|       --logtostderr value              log to standard error instead of files | ||||
|       --match-server-version           Require server version to match client version | ||||
|   -n, --namespace string               If present, the namespace scope for this CLI request | ||||
|       --password string                Password for basic authentication to the API server | ||||
|   -s, --server string                  The address and port of the Kubernetes API server | ||||
|       --stderrthreshold value          logs at or above this threshold go to stderr (default 2) | ||||
|       --token string                   Bearer token for authentication to the API server | ||||
|       --user string                    The name of the kubeconfig user to use | ||||
|       --username string                Username for basic authentication to the API server | ||||
|   -v, --v value                        log level for V logs | ||||
|       --vmodule value                  comma-separated list of pattern=N settings for file-filtered logging | ||||
| ``` | ||||
| 
 | ||||
| ### SEE ALSO | ||||
| 
 | ||||
| * [kubectl](kubectl.md)	 - kubectl controls the Kubernetes cluster manager | ||||
| 
 | ||||
| ###### Auto generated by spf13/cobra on 12-Aug-2016 | ||||
| ###### Auto generated by spf13/cobra on 2-Sep-2016 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -3,12 +3,12 @@ | |||
| 
 | ||||
| ## kubectl api-versions | ||||
| 
 | ||||
| Print the supported API versions on the server, in the form of "group/version". | ||||
| Print the supported API versions on the server, in the form of "group/version" | ||||
| 
 | ||||
| ### Synopsis | ||||
| 
 | ||||
| 
 | ||||
| Print the supported API versions on the server, in the form of "group/version". | ||||
| Print the supported API versions on the server, in the form of "group/version" | ||||
| 
 | ||||
| ``` | ||||
| kubectl api-versions | ||||
|  | @ -17,36 +17,35 @@ kubectl api-versions | |||
| ### Options inherited from parent commands | ||||
| 
 | ||||
| ``` | ||||
|       --alsologtostderr[=false]: log to standard error as well as files | ||||
|       --as="": Username to impersonate for the operation. | ||||
|       --certificate-authority="": Path to a cert. file for the certificate authority. | ||||
|       --client-certificate="": Path to a client certificate file for TLS. | ||||
|       --client-key="": Path to a client key file for TLS. | ||||
|       --cluster="": The name of the kubeconfig cluster to use | ||||
|       --context="": The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify[=false]: If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure. | ||||
|       --kubeconfig="": Path to the kubeconfig file to use for CLI requests. | ||||
|       --log-backtrace-at=:0: when logging hits line file:N, emit a stack trace | ||||
|       --log-dir="": If non-empty, write log files in this directory | ||||
|       --log-flush-frequency=5s: Maximum number of seconds between log flushes | ||||
|       --logtostderr[=true]: log to standard error instead of files | ||||
|       --match-server-version[=false]: Require server version to match client version | ||||
|       --namespace="": If present, the namespace scope for this CLI request. | ||||
|       --password="": Password for basic authentication to the API server. | ||||
|   -s, --server="": The address and port of the Kubernetes API server | ||||
|       --stderrthreshold=2: logs at or above this threshold go to stderr | ||||
|       --token="": Bearer token for authentication to the API server. | ||||
|       --user="": The name of the kubeconfig user to use | ||||
|       --username="": Username for basic authentication to the API server. | ||||
|       --v=0: log level for V logs | ||||
|       --vmodule=: comma-separated list of pattern=N settings for file-filtered logging | ||||
|       --alsologtostderr value          log to standard error as well as files | ||||
|       --as string                      Username to impersonate for the operation | ||||
|       --certificate-authority string   Path to a cert. file for the certificate authority | ||||
|       --client-certificate string      Path to a client certificate file for TLS | ||||
|       --client-key string              Path to a client key file for TLS | ||||
|       --cluster string                 The name of the kubeconfig cluster to use | ||||
|       --context string                 The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify       If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure | ||||
|       --kubeconfig string              Path to the kubeconfig file to use for CLI requests. | ||||
|       --log-backtrace-at value         when logging hits line file:N, emit a stack trace (default :0) | ||||
|       --log-dir value                  If non-empty, write log files in this directory | ||||
|       --logtostderr value              log to standard error instead of files | ||||
|       --match-server-version           Require server version to match client version | ||||
|   -n, --namespace string               If present, the namespace scope for this CLI request | ||||
|       --password string                Password for basic authentication to the API server | ||||
|   -s, --server string                  The address and port of the Kubernetes API server | ||||
|       --stderrthreshold value          logs at or above this threshold go to stderr (default 2) | ||||
|       --token string                   Bearer token for authentication to the API server | ||||
|       --user string                    The name of the kubeconfig user to use | ||||
|       --username string                Username for basic authentication to the API server | ||||
|   -v, --v value                        log level for V logs | ||||
|       --vmodule value                  comma-separated list of pattern=N settings for file-filtered logging | ||||
| ``` | ||||
| 
 | ||||
| ### SEE ALSO | ||||
| 
 | ||||
| * [kubectl](kubectl.md)	 - kubectl controls the Kubernetes cluster manager | ||||
| 
 | ||||
| ###### Auto generated by spf13/cobra on 12-Aug-2016 | ||||
| ###### Auto generated by spf13/cobra on 2-Sep-2016 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -8,8 +8,9 @@ Apply a configuration to a resource by filename or stdin | |||
| ### Synopsis | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| Apply a configuration to a resource by filename or stdin. | ||||
| The resource will be created if it doesn't exist yet. | ||||
| This resource will be created if it doesn't exist yet. | ||||
| To use 'apply', always create the resource initially with either 'apply' or 'create --save-config'. | ||||
| 
 | ||||
| JSON and YAML formats are accepted. | ||||
|  | @ -21,6 +22,7 @@ kubectl apply -f FILENAME | |||
| ### Examples | ||||
| 
 | ||||
| ``` | ||||
| 
 | ||||
| # Apply the configuration in pod.json to a pod. | ||||
| kubectl apply -f ./pod.json | ||||
| 
 | ||||
|  | @ -31,48 +33,48 @@ cat pod.json | kubectl apply -f - | |||
| ### Options | ||||
| 
 | ||||
| ``` | ||||
|   -f, --filename=[]: Filename, directory, or URL to file that contains the configuration to apply | ||||
|       --include-extended-apis[=true]: If true, include definitions of new APIs via calls to the API server. [default true] | ||||
|   -o, --output="": Output mode. Use "-o name" for shorter output (resource/name). | ||||
|       --record[=false]: Record current kubectl command in the resource annotation. | ||||
|   -R, --recursive[=false]: Process the directory used in -f, --filename recursively. Useful when you want to manage related manifests organized within the same directory. | ||||
|       --schema-cache-dir="~/.kube/schema": If non-empty, load/store cached API schemas in this directory, default is '$HOME/.kube/schema' | ||||
|       --validate[=true]: If true, use a schema to validate the input before sending it | ||||
|   -f, --filename value            Filename, directory, or URL to file that contains the configuration to apply (default []) | ||||
|       --include-extended-apis     If true, include definitions of new APIs via calls to the API server. [default true] (default true) | ||||
|   -o, --output string             Output mode. Use "-o name" for shorter output (resource/name). | ||||
|       --overwrite                 Automatically resolve conflicts between the modified and live configuration by using values from the modified configuration (default true) | ||||
|       --record                    Record current kubectl command in the resource annotation. If set to false, do not record the command. If set to true, record the command. If not set, default to updating the existing annotation value only if one already exists. | ||||
|   -R, --recursive                 Process the directory used in -f, --filename recursively. Useful when you want to manage related manifests organized within the same directory. | ||||
|       --schema-cache-dir string   If non-empty, load/store cached API schemas in this directory, default is '$HOME/.kube/schema' (default "~/.kube/schema") | ||||
|       --validate                  If true, use a schema to validate the input before sending it (default true) | ||||
| ``` | ||||
| 
 | ||||
| ### Options inherited from parent commands | ||||
| 
 | ||||
| ``` | ||||
|       --alsologtostderr[=false]: log to standard error as well as files | ||||
|       --as="": Username to impersonate for the operation. | ||||
|       --certificate-authority="": Path to a cert. file for the certificate authority. | ||||
|       --client-certificate="": Path to a client certificate file for TLS. | ||||
|       --client-key="": Path to a client key file for TLS. | ||||
|       --cluster="": The name of the kubeconfig cluster to use | ||||
|       --context="": The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify[=false]: If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure. | ||||
|       --kubeconfig="": Path to the kubeconfig file to use for CLI requests. | ||||
|       --log-backtrace-at=:0: when logging hits line file:N, emit a stack trace | ||||
|       --log-dir="": If non-empty, write log files in this directory | ||||
|       --log-flush-frequency=5s: Maximum number of seconds between log flushes | ||||
|       --logtostderr[=true]: log to standard error instead of files | ||||
|       --match-server-version[=false]: Require server version to match client version | ||||
|       --namespace="": If present, the namespace scope for this CLI request. | ||||
|       --password="": Password for basic authentication to the API server. | ||||
|   -s, --server="": The address and port of the Kubernetes API server | ||||
|       --stderrthreshold=2: logs at or above this threshold go to stderr | ||||
|       --token="": Bearer token for authentication to the API server. | ||||
|       --user="": The name of the kubeconfig user to use | ||||
|       --username="": Username for basic authentication to the API server. | ||||
|       --v=0: log level for V logs | ||||
|       --vmodule=: comma-separated list of pattern=N settings for file-filtered logging | ||||
|       --alsologtostderr value          log to standard error as well as files | ||||
|       --as string                      Username to impersonate for the operation | ||||
|       --certificate-authority string   Path to a cert. file for the certificate authority | ||||
|       --client-certificate string      Path to a client certificate file for TLS | ||||
|       --client-key string              Path to a client key file for TLS | ||||
|       --cluster string                 The name of the kubeconfig cluster to use | ||||
|       --context string                 The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify       If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure | ||||
|       --kubeconfig string              Path to the kubeconfig file to use for CLI requests. | ||||
|       --log-backtrace-at value         when logging hits line file:N, emit a stack trace (default :0) | ||||
|       --log-dir value                  If non-empty, write log files in this directory | ||||
|       --logtostderr value              log to standard error instead of files | ||||
|       --match-server-version           Require server version to match client version | ||||
|   -n, --namespace string               If present, the namespace scope for this CLI request | ||||
|       --password string                Password for basic authentication to the API server | ||||
|   -s, --server string                  The address and port of the Kubernetes API server | ||||
|       --stderrthreshold value          logs at or above this threshold go to stderr (default 2) | ||||
|       --token string                   Bearer token for authentication to the API server | ||||
|       --user string                    The name of the kubeconfig user to use | ||||
|       --username string                Username for basic authentication to the API server | ||||
|   -v, --v value                        log level for V logs | ||||
|       --vmodule value                  comma-separated list of pattern=N settings for file-filtered logging | ||||
| ``` | ||||
| 
 | ||||
| ### SEE ALSO | ||||
| 
 | ||||
| * [kubectl](kubectl.md)	 - kubectl controls the Kubernetes cluster manager | ||||
| 
 | ||||
| ###### Auto generated by spf13/cobra on 12-Aug-2016 | ||||
| ###### Auto generated by spf13/cobra on 2-Sep-2016 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -3,7 +3,7 @@ | |||
| 
 | ||||
| ## kubectl attach | ||||
| 
 | ||||
| Attach to a running container. | ||||
| Attach to a running container | ||||
| 
 | ||||
| ### Synopsis | ||||
| 
 | ||||
|  | @ -17,6 +17,7 @@ kubectl attach POD -c CONTAINER | |||
| ### Examples | ||||
| 
 | ||||
| ``` | ||||
| 
 | ||||
| # Get output from running pod 123456-7890, using the first container by default | ||||
| kubectl attach 123456-7890 | ||||
| 
 | ||||
|  | @ -31,44 +32,43 @@ kubectl attach 123456-7890 -c ruby-container -i -t | |||
| ### Options | ||||
| 
 | ||||
| ``` | ||||
|   -c, --container="": Container name. If omitted, the first container in the pod will be chosen | ||||
|   -i, --stdin[=false]: Pass stdin to the container | ||||
|   -t, --tty[=false]: Stdin is a TTY | ||||
|   -c, --container string   Container name. If omitted, the first container in the pod will be chosen | ||||
|   -i, --stdin              Pass stdin to the container | ||||
|   -t, --tty                Stdin is a TTY | ||||
| ``` | ||||
| 
 | ||||
| ### Options inherited from parent commands | ||||
| 
 | ||||
| ``` | ||||
|       --alsologtostderr[=false]: log to standard error as well as files | ||||
|       --as="": Username to impersonate for the operation. | ||||
|       --certificate-authority="": Path to a cert. file for the certificate authority. | ||||
|       --client-certificate="": Path to a client certificate file for TLS. | ||||
|       --client-key="": Path to a client key file for TLS. | ||||
|       --cluster="": The name of the kubeconfig cluster to use | ||||
|       --context="": The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify[=false]: If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure. | ||||
|       --kubeconfig="": Path to the kubeconfig file to use for CLI requests. | ||||
|       --log-backtrace-at=:0: when logging hits line file:N, emit a stack trace | ||||
|       --log-dir="": If non-empty, write log files in this directory | ||||
|       --log-flush-frequency=5s: Maximum number of seconds between log flushes | ||||
|       --logtostderr[=true]: log to standard error instead of files | ||||
|       --match-server-version[=false]: Require server version to match client version | ||||
|       --namespace="": If present, the namespace scope for this CLI request. | ||||
|       --password="": Password for basic authentication to the API server. | ||||
|   -s, --server="": The address and port of the Kubernetes API server | ||||
|       --stderrthreshold=2: logs at or above this threshold go to stderr | ||||
|       --token="": Bearer token for authentication to the API server. | ||||
|       --user="": The name of the kubeconfig user to use | ||||
|       --username="": Username for basic authentication to the API server. | ||||
|       --v=0: log level for V logs | ||||
|       --vmodule=: comma-separated list of pattern=N settings for file-filtered logging | ||||
|       --alsologtostderr value          log to standard error as well as files | ||||
|       --as string                      Username to impersonate for the operation | ||||
|       --certificate-authority string   Path to a cert. file for the certificate authority | ||||
|       --client-certificate string      Path to a client certificate file for TLS | ||||
|       --client-key string              Path to a client key file for TLS | ||||
|       --cluster string                 The name of the kubeconfig cluster to use | ||||
|       --context string                 The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify       If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure | ||||
|       --kubeconfig string              Path to the kubeconfig file to use for CLI requests. | ||||
|       --log-backtrace-at value         when logging hits line file:N, emit a stack trace (default :0) | ||||
|       --log-dir value                  If non-empty, write log files in this directory | ||||
|       --logtostderr value              log to standard error instead of files | ||||
|       --match-server-version           Require server version to match client version | ||||
|   -n, --namespace string               If present, the namespace scope for this CLI request | ||||
|       --password string                Password for basic authentication to the API server | ||||
|   -s, --server string                  The address and port of the Kubernetes API server | ||||
|       --stderrthreshold value          logs at or above this threshold go to stderr (default 2) | ||||
|       --token string                   Bearer token for authentication to the API server | ||||
|       --user string                    The name of the kubeconfig user to use | ||||
|       --username string                Username for basic authentication to the API server | ||||
|   -v, --v value                        log level for V logs | ||||
|       --vmodule value                  comma-separated list of pattern=N settings for file-filtered logging | ||||
| ``` | ||||
| 
 | ||||
| ### SEE ALSO | ||||
| 
 | ||||
| * [kubectl](kubectl.md)	 - kubectl controls the Kubernetes cluster manager | ||||
| 
 | ||||
| ###### Auto generated by spf13/cobra on 12-Aug-2016 | ||||
| ###### Auto generated by spf13/cobra on 2-Sep-2016 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -8,6 +8,7 @@ Auto-scale a Deployment, ReplicaSet, or ReplicationController | |||
| ### Synopsis | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| Creates an autoscaler that automatically chooses and sets the number of pods that run in a kubernetes cluster. | ||||
| 
 | ||||
| Looks up a Deployment, ReplicaSet, or ReplicationController by name and creates an autoscaler that uses the given resource as a reference. | ||||
|  | @ -20,7 +21,7 @@ kubectl autoscale (-f FILENAME | TYPE NAME | TYPE/NAME) [--min=MINPODS] --max=MA | |||
| ### Examples | ||||
| 
 | ||||
| ``` | ||||
| # Auto scale a deployment "foo", with the number of pods between 2 and 10, no target CPU utilization specfied so a default autoscaling policy will be used: | ||||
| # Auto scale a deployment "foo", with the number of pods between 2 and 10, target CPU utilization specified so a default autoscaling policy will be used: | ||||
| kubectl autoscale deployment foo --min=2 --max=10 | ||||
| 
 | ||||
| # Auto scale a replication controller "foo", with the number of pods between 1 and 5, target CPU utilization at 80%: | ||||
|  | @ -30,59 +31,58 @@ kubectl autoscale rc foo --max=5 --cpu-percent=80 | |||
| ### Options | ||||
| 
 | ||||
| ``` | ||||
|       --cpu-percent=-1: The target average CPU utilization (represented as a percent of requested CPU) over all the pods. If it's not specified or negative, a default autoscaling policy will be used. | ||||
|       --dry-run[=false]: If true, only print the object that would be sent, without sending it. | ||||
|   -f, --filename=[]: Filename, directory, or URL to a file identifying the resource to autoscale. | ||||
|       --generator="horizontalpodautoscaler/v1": The name of the API generator to use. Currently there is only 1 generator. | ||||
|       --include-extended-apis[=true]: If true, include definitions of new APIs via calls to the API server. [default true] | ||||
|       --max=-1: The upper limit for the number of pods that can be set by the autoscaler. Required. | ||||
|       --min=-1: The lower limit for the number of pods that can be set by the autoscaler. If it's not specified or negative, the server will apply a default value. | ||||
|       --name="": The name for the newly created object. If not specified, the name of the input resource will be used. | ||||
|       --no-headers[=false]: When using the default output, don't print headers. | ||||
|   -o, --output="": Output format. One of: json|yaml|wide|name|go-template=...|go-template-file=...|jsonpath=...|jsonpath-file=... See golang template [http://golang.org/pkg/text/template/#pkg-overview] and jsonpath template [http://releases.k8s.io/release-1.3/docs/user-guide/jsonpath.md]. | ||||
|       --output-version="": Output the formatted object with the given group version (for ex: 'extensions/v1beta1'). | ||||
|       --record[=false]: Record current kubectl command in the resource annotation. | ||||
|   -R, --recursive[=false]: Process the directory used in -f, --filename recursively. Useful when you want to manage related manifests organized within the same directory. | ||||
|       --save-config[=false]: If true, the configuration of current object will be saved in its annotation. This is useful when you want to perform kubectl apply on this object in the future. | ||||
|   -a, --show-all[=false]: When printing, show all resources (default hide terminated pods.) | ||||
|       --show-labels[=false]: When printing, show all labels as the last column (default hide labels column) | ||||
|       --sort-by="": If non-empty, sort list types using this field specification.  The field specification is expressed as a JSONPath expression (e.g. '{.metadata.name}'). The field in the API resource specified by this JSONPath expression must be an integer or a string. | ||||
|       --template="": Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates [http://golang.org/pkg/text/template/#pkg-overview]. | ||||
|       --cpu-percent int         The target average CPU utilization (represented as a percent of requested CPU) over all the pods. If it's not specified or negative, a default autoscaling policy will be used. (default -1) | ||||
|       --dry-run                 If true, only print the object that would be sent, without sending it. | ||||
|   -f, --filename value          Filename, directory, or URL to a file identifying the resource to autoscale. (default []) | ||||
|       --generator string        The name of the API generator to use. Currently there is only 1 generator. (default "horizontalpodautoscaler/v1") | ||||
|       --include-extended-apis   If true, include definitions of new APIs via calls to the API server. [default true] (default true) | ||||
|       --max int                 The upper limit for the number of pods that can be set by the autoscaler. Required. (default -1) | ||||
|       --min int                 The lower limit for the number of pods that can be set by the autoscaler. If it's not specified or negative, the server will apply a default value. (default -1) | ||||
|       --name string             The name for the newly created object. If not specified, the name of the input resource will be used. | ||||
|       --no-headers              When using the default or custom-column output format, don't print headers. | ||||
|   -o, --output string           Output format. One of: json|yaml|wide|name|custom-columns=...|custom-columns-file=...|go-template=...|go-template-file=...|jsonpath=...|jsonpath-file=... See custom columns [http://kubernetes.io/docs/user-guide/kubectl-overview/#custom-columns], golang template [http://golang.org/pkg/text/template/#pkg-overview] and jsonpath template [http://kubernetes.io/docs/user-guide/jsonpath]. | ||||
|       --output-version string   Output the formatted object with the given group version (for ex: 'extensions/v1beta1'). | ||||
|       --record                  Record current kubectl command in the resource annotation. If set to false, do not record the command. If set to true, record the command. If not set, default to updating the existing annotation value only if one already exists. | ||||
|   -R, --recursive               Process the directory used in -f, --filename recursively. Useful when you want to manage related manifests organized within the same directory. | ||||
|       --save-config             If true, the configuration of current object will be saved in its annotation. This is useful when you want to perform kubectl apply on this object in the future. | ||||
|   -a, --show-all                When printing, show all resources (default hide terminated pods.) | ||||
|       --show-labels             When printing, show all labels as the last column (default hide labels column) | ||||
|       --sort-by string          If non-empty, sort list types using this field specification.  The field specification is expressed as a JSONPath expression (e.g. '{.metadata.name}'). The field in the API resource specified by this JSONPath expression must be an integer or a string. | ||||
|       --template string         Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates [http://golang.org/pkg/text/template/#pkg-overview]. | ||||
| ``` | ||||
| 
 | ||||
| ### Options inherited from parent commands | ||||
| 
 | ||||
| ``` | ||||
|       --alsologtostderr[=false]: log to standard error as well as files | ||||
|       --as="": Username to impersonate for the operation. | ||||
|       --certificate-authority="": Path to a cert. file for the certificate authority. | ||||
|       --client-certificate="": Path to a client certificate file for TLS. | ||||
|       --client-key="": Path to a client key file for TLS. | ||||
|       --cluster="": The name of the kubeconfig cluster to use | ||||
|       --context="": The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify[=false]: If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure. | ||||
|       --kubeconfig="": Path to the kubeconfig file to use for CLI requests. | ||||
|       --log-backtrace-at=:0: when logging hits line file:N, emit a stack trace | ||||
|       --log-dir="": If non-empty, write log files in this directory | ||||
|       --log-flush-frequency=5s: Maximum number of seconds between log flushes | ||||
|       --logtostderr[=true]: log to standard error instead of files | ||||
|       --match-server-version[=false]: Require server version to match client version | ||||
|       --namespace="": If present, the namespace scope for this CLI request. | ||||
|       --password="": Password for basic authentication to the API server. | ||||
|   -s, --server="": The address and port of the Kubernetes API server | ||||
|       --stderrthreshold=2: logs at or above this threshold go to stderr | ||||
|       --token="": Bearer token for authentication to the API server. | ||||
|       --user="": The name of the kubeconfig user to use | ||||
|       --username="": Username for basic authentication to the API server. | ||||
|       --v=0: log level for V logs | ||||
|       --vmodule=: comma-separated list of pattern=N settings for file-filtered logging | ||||
|       --alsologtostderr value          log to standard error as well as files | ||||
|       --as string                      Username to impersonate for the operation | ||||
|       --certificate-authority string   Path to a cert. file for the certificate authority | ||||
|       --client-certificate string      Path to a client certificate file for TLS | ||||
|       --client-key string              Path to a client key file for TLS | ||||
|       --cluster string                 The name of the kubeconfig cluster to use | ||||
|       --context string                 The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify       If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure | ||||
|       --kubeconfig string              Path to the kubeconfig file to use for CLI requests. | ||||
|       --log-backtrace-at value         when logging hits line file:N, emit a stack trace (default :0) | ||||
|       --log-dir value                  If non-empty, write log files in this directory | ||||
|       --logtostderr value              log to standard error instead of files | ||||
|       --match-server-version           Require server version to match client version | ||||
|   -n, --namespace string               If present, the namespace scope for this CLI request | ||||
|       --password string                Password for basic authentication to the API server | ||||
|   -s, --server string                  The address and port of the Kubernetes API server | ||||
|       --stderrthreshold value          logs at or above this threshold go to stderr (default 2) | ||||
|       --token string                   Bearer token for authentication to the API server | ||||
|       --user string                    The name of the kubeconfig user to use | ||||
|       --username string                Username for basic authentication to the API server | ||||
|   -v, --v value                        log level for V logs | ||||
|       --vmodule value                  comma-separated list of pattern=N settings for file-filtered logging | ||||
| ``` | ||||
| 
 | ||||
| ### SEE ALSO | ||||
| 
 | ||||
| * [kubectl](kubectl.md)	 - kubectl controls the Kubernetes cluster manager | ||||
| 
 | ||||
| ###### Auto generated by spf13/cobra on 12-Aug-2016 | ||||
| ###### Auto generated by spf13/cobra on 2-Sep-2016 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -18,43 +18,42 @@ kubectl cluster-info | |||
| ### Options | ||||
| 
 | ||||
| ``` | ||||
|       --include-extended-apis[=true]: If true, include definitions of new APIs via calls to the API server. [default true] | ||||
|       --include-extended-apis   If true, include definitions of new APIs via calls to the API server. [default true] (default true) | ||||
| ``` | ||||
| 
 | ||||
| ### Options inherited from parent commands | ||||
| 
 | ||||
| ``` | ||||
|       --alsologtostderr[=false]: log to standard error as well as files | ||||
|       --as="": Username to impersonate for the operation. | ||||
|       --certificate-authority="": Path to a cert. file for the certificate authority. | ||||
|       --client-certificate="": Path to a client certificate file for TLS. | ||||
|       --client-key="": Path to a client key file for TLS. | ||||
|       --cluster="": The name of the kubeconfig cluster to use | ||||
|       --context="": The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify[=false]: If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure. | ||||
|       --kubeconfig="": Path to the kubeconfig file to use for CLI requests. | ||||
|       --log-backtrace-at=:0: when logging hits line file:N, emit a stack trace | ||||
|       --log-dir="": If non-empty, write log files in this directory | ||||
|       --log-flush-frequency=5s: Maximum number of seconds between log flushes | ||||
|       --logtostderr[=true]: log to standard error instead of files | ||||
|       --match-server-version[=false]: Require server version to match client version | ||||
|       --namespace="": If present, the namespace scope for this CLI request. | ||||
|       --password="": Password for basic authentication to the API server. | ||||
|   -s, --server="": The address and port of the Kubernetes API server | ||||
|       --stderrthreshold=2: logs at or above this threshold go to stderr | ||||
|       --token="": Bearer token for authentication to the API server. | ||||
|       --user="": The name of the kubeconfig user to use | ||||
|       --username="": Username for basic authentication to the API server. | ||||
|       --v=0: log level for V logs | ||||
|       --vmodule=: comma-separated list of pattern=N settings for file-filtered logging | ||||
|       --alsologtostderr value          log to standard error as well as files | ||||
|       --as string                      Username to impersonate for the operation | ||||
|       --certificate-authority string   Path to a cert. file for the certificate authority | ||||
|       --client-certificate string      Path to a client certificate file for TLS | ||||
|       --client-key string              Path to a client key file for TLS | ||||
|       --cluster string                 The name of the kubeconfig cluster to use | ||||
|       --context string                 The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify       If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure | ||||
|       --kubeconfig string              Path to the kubeconfig file to use for CLI requests. | ||||
|       --log-backtrace-at value         when logging hits line file:N, emit a stack trace (default :0) | ||||
|       --log-dir value                  If non-empty, write log files in this directory | ||||
|       --logtostderr value              log to standard error instead of files | ||||
|       --match-server-version           Require server version to match client version | ||||
|   -n, --namespace string               If present, the namespace scope for this CLI request | ||||
|       --password string                Password for basic authentication to the API server | ||||
|   -s, --server string                  The address and port of the Kubernetes API server | ||||
|       --stderrthreshold value          logs at or above this threshold go to stderr (default 2) | ||||
|       --token string                   Bearer token for authentication to the API server | ||||
|       --user string                    The name of the kubeconfig user to use | ||||
|       --username string                Username for basic authentication to the API server | ||||
|   -v, --v value                        log level for V logs | ||||
|       --vmodule value                  comma-separated list of pattern=N settings for file-filtered logging | ||||
| ``` | ||||
| 
 | ||||
| ### SEE ALSO | ||||
| 
 | ||||
| * [kubectl](kubectl.md)	 - kubectl controls the Kubernetes cluster manager | ||||
| * [kubectl cluster-info dump](kubectl_cluster-info_dump.md)	 - Dump lots of relevant info for debugging and diagnosis. | ||||
| * [kubectl cluster-info dump](kubectl_cluster-info_dump.md)	 - Dump lots of relevant info for debugging and diagnosis | ||||
| 
 | ||||
| ###### Auto generated by spf13/cobra on 12-Aug-2016 | ||||
| ###### Auto generated by spf13/cobra on 2-Sep-2016 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -3,7 +3,7 @@ | |||
| 
 | ||||
| ## kubectl cluster-info dump | ||||
| 
 | ||||
| Dump lots of relevant info for debugging and diagnosis. | ||||
| Dump lots of relevant info for debugging and diagnosis | ||||
| 
 | ||||
| ### Synopsis | ||||
| 
 | ||||
|  | @ -27,13 +27,13 @@ kubectl cluster-info dump | |||
| ``` | ||||
| # Dump current cluster state to stdout | ||||
| kubectl cluster-info dump | ||||
|    | ||||
| 
 | ||||
| # Dump current cluster state to /path/to/cluster-state | ||||
| kubectl cluster-info dump --output-directory=/path/to/cluster-state | ||||
|    | ||||
| 
 | ||||
| # Dump all namespaces to stdout | ||||
| kubectl cluster-info dump --all-namespaces | ||||
|    | ||||
| 
 | ||||
| # Dump a set of namespaces to /path/to/cluster-state | ||||
| kubectl cluster-info dump --namespaces default,kube-system --output-directory=/path/to/cluster-state | ||||
| ``` | ||||
|  | @ -41,44 +41,43 @@ kubectl cluster-info dump --namespaces default,kube-system --output-directory=/p | |||
| ### Options | ||||
| 
 | ||||
| ``` | ||||
|       --all-namespaces[=false]: If true, dump all namespaces.  If true, --namespaces is ignored. | ||||
|       --namespaces=[]: A comma separated list of namespaces to dump. | ||||
|       --output-directory="": Where to output the files.  If empty or '-' uses stdout, otherwise creates a directory hierarchy in that directory | ||||
|       --all-namespaces            If true, dump all namespaces.  If true, --namespaces is ignored. | ||||
|       --namespaces value          A comma separated list of namespaces to dump. (default []) | ||||
|       --output-directory string   Where to output the files.  If empty or '-' uses stdout, otherwise creates a directory hierarchy in that directory | ||||
| ``` | ||||
| 
 | ||||
| ### Options inherited from parent commands | ||||
| 
 | ||||
| ``` | ||||
|       --alsologtostderr[=false]: log to standard error as well as files | ||||
|       --as="": Username to impersonate for the operation. | ||||
|       --certificate-authority="": Path to a cert. file for the certificate authority. | ||||
|       --client-certificate="": Path to a client certificate file for TLS. | ||||
|       --client-key="": Path to a client key file for TLS. | ||||
|       --cluster="": The name of the kubeconfig cluster to use | ||||
|       --context="": The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify[=false]: If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure. | ||||
|       --kubeconfig="": Path to the kubeconfig file to use for CLI requests. | ||||
|       --log-backtrace-at=:0: when logging hits line file:N, emit a stack trace | ||||
|       --log-dir="": If non-empty, write log files in this directory | ||||
|       --log-flush-frequency=5s: Maximum number of seconds between log flushes | ||||
|       --logtostderr[=true]: log to standard error instead of files | ||||
|       --match-server-version[=false]: Require server version to match client version | ||||
|       --namespace="": If present, the namespace scope for this CLI request. | ||||
|       --password="": Password for basic authentication to the API server. | ||||
|   -s, --server="": The address and port of the Kubernetes API server | ||||
|       --stderrthreshold=2: logs at or above this threshold go to stderr | ||||
|       --token="": Bearer token for authentication to the API server. | ||||
|       --user="": The name of the kubeconfig user to use | ||||
|       --username="": Username for basic authentication to the API server. | ||||
|       --v=0: log level for V logs | ||||
|       --vmodule=: comma-separated list of pattern=N settings for file-filtered logging | ||||
|       --alsologtostderr value          log to standard error as well as files | ||||
|       --as string                      Username to impersonate for the operation | ||||
|       --certificate-authority string   Path to a cert. file for the certificate authority | ||||
|       --client-certificate string      Path to a client certificate file for TLS | ||||
|       --client-key string              Path to a client key file for TLS | ||||
|       --cluster string                 The name of the kubeconfig cluster to use | ||||
|       --context string                 The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify       If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure | ||||
|       --kubeconfig string              Path to the kubeconfig file to use for CLI requests. | ||||
|       --log-backtrace-at value         when logging hits line file:N, emit a stack trace (default :0) | ||||
|       --log-dir value                  If non-empty, write log files in this directory | ||||
|       --logtostderr value              log to standard error instead of files | ||||
|       --match-server-version           Require server version to match client version | ||||
|   -n, --namespace string               If present, the namespace scope for this CLI request | ||||
|       --password string                Password for basic authentication to the API server | ||||
|   -s, --server string                  The address and port of the Kubernetes API server | ||||
|       --stderrthreshold value          logs at or above this threshold go to stderr (default 2) | ||||
|       --token string                   Bearer token for authentication to the API server | ||||
|       --user string                    The name of the kubeconfig user to use | ||||
|       --username string                Username for basic authentication to the API server | ||||
|   -v, --v value                        log level for V logs | ||||
|       --vmodule value                  comma-separated list of pattern=N settings for file-filtered logging | ||||
| ``` | ||||
| 
 | ||||
| ### SEE ALSO | ||||
| 
 | ||||
| * [kubectl cluster-info](kubectl_cluster-info.md)	 - Display cluster info | ||||
| 
 | ||||
| ###### Auto generated by spf13/cobra on 12-Aug-2016 | ||||
| ###### Auto generated by spf13/cobra on 2-Sep-2016 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -24,52 +24,53 @@ kubectl completion SHELL | |||
| 
 | ||||
| $ source <(kubectl completion bash) | ||||
| 
 | ||||
| will load the kubectl completion code for bash. Note that this depends on the bash-completion | ||||
| framework. It must be sourced before sourcing the kubectl completion, i.e. on the Mac: | ||||
| will load the kubectl completion code for bash. Note that this depends on the | ||||
| bash-completion framework. It must be sourced before sourcing the kubectl | ||||
| completion, e.g. on the Mac: | ||||
| 
 | ||||
| $ brew install bash-completion | ||||
| $ source $(brew --prefix)/etc/bash_completion | ||||
| $ source <(kubectl completion bash) | ||||
| 
 | ||||
| If you use zsh, the following will load kubectl zsh completion: | ||||
| If you use zsh*, the following will load kubectl zsh completion: | ||||
| 
 | ||||
| $ source <(kubectl completion zsh) | ||||
| 
 | ||||
| * zsh completions are only supported in versions of zsh >= 5.2 | ||||
| ``` | ||||
| 
 | ||||
| ### Options inherited from parent commands | ||||
| 
 | ||||
| ``` | ||||
|       --alsologtostderr[=false]: log to standard error as well as files | ||||
|       --as="": Username to impersonate for the operation. | ||||
|       --certificate-authority="": Path to a cert. file for the certificate authority. | ||||
|       --client-certificate="": Path to a client certificate file for TLS. | ||||
|       --client-key="": Path to a client key file for TLS. | ||||
|       --cluster="": The name of the kubeconfig cluster to use | ||||
|       --context="": The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify[=false]: If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure. | ||||
|       --kubeconfig="": Path to the kubeconfig file to use for CLI requests. | ||||
|       --log-backtrace-at=:0: when logging hits line file:N, emit a stack trace | ||||
|       --log-dir="": If non-empty, write log files in this directory | ||||
|       --log-flush-frequency=5s: Maximum number of seconds between log flushes | ||||
|       --logtostderr[=true]: log to standard error instead of files | ||||
|       --match-server-version[=false]: Require server version to match client version | ||||
|       --namespace="": If present, the namespace scope for this CLI request. | ||||
|       --password="": Password for basic authentication to the API server. | ||||
|   -s, --server="": The address and port of the Kubernetes API server | ||||
|       --stderrthreshold=2: logs at or above this threshold go to stderr | ||||
|       --token="": Bearer token for authentication to the API server. | ||||
|       --user="": The name of the kubeconfig user to use | ||||
|       --username="": Username for basic authentication to the API server. | ||||
|       --v=0: log level for V logs | ||||
|       --vmodule=: comma-separated list of pattern=N settings for file-filtered logging | ||||
|       --alsologtostderr value          log to standard error as well as files | ||||
|       --as string                      Username to impersonate for the operation | ||||
|       --certificate-authority string   Path to a cert. file for the certificate authority | ||||
|       --client-certificate string      Path to a client certificate file for TLS | ||||
|       --client-key string              Path to a client key file for TLS | ||||
|       --cluster string                 The name of the kubeconfig cluster to use | ||||
|       --context string                 The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify       If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure | ||||
|       --kubeconfig string              Path to the kubeconfig file to use for CLI requests. | ||||
|       --log-backtrace-at value         when logging hits line file:N, emit a stack trace (default :0) | ||||
|       --log-dir value                  If non-empty, write log files in this directory | ||||
|       --logtostderr value              log to standard error instead of files | ||||
|       --match-server-version           Require server version to match client version | ||||
|   -n, --namespace string               If present, the namespace scope for this CLI request | ||||
|       --password string                Password for basic authentication to the API server | ||||
|   -s, --server string                  The address and port of the Kubernetes API server | ||||
|       --stderrthreshold value          logs at or above this threshold go to stderr (default 2) | ||||
|       --token string                   Bearer token for authentication to the API server | ||||
|       --user string                    The name of the kubeconfig user to use | ||||
|       --username string                Username for basic authentication to the API server | ||||
|   -v, --v value                        log level for V logs | ||||
|       --vmodule value                  comma-separated list of pattern=N settings for file-filtered logging | ||||
| ``` | ||||
| 
 | ||||
| ### SEE ALSO | ||||
| 
 | ||||
| * [kubectl](kubectl.md)	 - kubectl controls the Kubernetes cluster manager | ||||
| 
 | ||||
| ###### Auto generated by spf13/cobra on 12-Aug-2016 | ||||
| ###### Auto generated by spf13/cobra on 2-Sep-2016 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -3,12 +3,12 @@ | |||
| 
 | ||||
| ## kubectl config | ||||
| 
 | ||||
| config modifies kubeconfig files | ||||
| Modify kubeconfig files | ||||
| 
 | ||||
| ### Synopsis | ||||
| 
 | ||||
| 
 | ||||
| config modifies kubeconfig files using subcommands like "kubectl config set current-context my-context" | ||||
| Modify kubeconfig files using subcommands like "kubectl config set current-context my-context" | ||||
| 
 | ||||
| The loading order follows these rules: | ||||
| 1. If the --kubeconfig flag is set, then only that file is loaded.  The flag may only be set once and no merging takes place. | ||||
|  | @ -23,49 +23,52 @@ kubectl config SUBCOMMAND | |||
| ### Options | ||||
| 
 | ||||
| ``` | ||||
|       --kubeconfig="": use a particular kubeconfig file | ||||
|       --kubeconfig string   use a particular kubeconfig file | ||||
| ``` | ||||
| 
 | ||||
| ### Options inherited from parent commands | ||||
| 
 | ||||
| ``` | ||||
|       --alsologtostderr[=false]: log to standard error as well as files | ||||
|       --as="": Username to impersonate for the operation. | ||||
|       --certificate-authority="": Path to a cert. file for the certificate authority. | ||||
|       --client-certificate="": Path to a client certificate file for TLS. | ||||
|       --client-key="": Path to a client key file for TLS. | ||||
|       --cluster="": The name of the kubeconfig cluster to use | ||||
|       --context="": The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify[=false]: If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure. | ||||
|       --log-backtrace-at=:0: when logging hits line file:N, emit a stack trace | ||||
|       --log-dir="": If non-empty, write log files in this directory | ||||
|       --log-flush-frequency=5s: Maximum number of seconds between log flushes | ||||
|       --logtostderr[=true]: log to standard error instead of files | ||||
|       --match-server-version[=false]: Require server version to match client version | ||||
|       --namespace="": If present, the namespace scope for this CLI request. | ||||
|       --password="": Password for basic authentication to the API server. | ||||
|   -s, --server="": The address and port of the Kubernetes API server | ||||
|       --stderrthreshold=2: logs at or above this threshold go to stderr | ||||
|       --token="": Bearer token for authentication to the API server. | ||||
|       --user="": The name of the kubeconfig user to use | ||||
|       --username="": Username for basic authentication to the API server. | ||||
|       --v=0: log level for V logs | ||||
|       --vmodule=: comma-separated list of pattern=N settings for file-filtered logging | ||||
|       --alsologtostderr value          log to standard error as well as files | ||||
|       --as string                      Username to impersonate for the operation | ||||
|       --certificate-authority string   Path to a cert. file for the certificate authority | ||||
|       --client-certificate string      Path to a client certificate file for TLS | ||||
|       --client-key string              Path to a client key file for TLS | ||||
|       --cluster string                 The name of the kubeconfig cluster to use | ||||
|       --context string                 The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify       If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure | ||||
|       --log-backtrace-at value         when logging hits line file:N, emit a stack trace (default :0) | ||||
|       --log-dir value                  If non-empty, write log files in this directory | ||||
|       --logtostderr value              log to standard error instead of files | ||||
|       --match-server-version           Require server version to match client version | ||||
|   -n, --namespace string               If present, the namespace scope for this CLI request | ||||
|       --password string                Password for basic authentication to the API server | ||||
|   -s, --server string                  The address and port of the Kubernetes API server | ||||
|       --stderrthreshold value          logs at or above this threshold go to stderr (default 2) | ||||
|       --token string                   Bearer token for authentication to the API server | ||||
|       --user string                    The name of the kubeconfig user to use | ||||
|       --username string                Username for basic authentication to the API server | ||||
|   -v, --v value                        log level for V logs | ||||
|       --vmodule value                  comma-separated list of pattern=N settings for file-filtered logging | ||||
| ``` | ||||
| 
 | ||||
| ### SEE ALSO | ||||
| 
 | ||||
| * [kubectl](kubectl.md)	 - kubectl controls the Kubernetes cluster manager | ||||
| * [kubectl config current-context](kubectl_config_current-context.md)	 - Displays the current-context | ||||
| * [kubectl config delete-cluster](kubectl_config_delete-cluster.md)	 - Delete the specified cluster from the kubeconfig | ||||
| * [kubectl config delete-context](kubectl_config_delete-context.md)	 - Delete the specified context from the kubeconfig | ||||
| * [kubectl config get-clusters](kubectl_config_get-clusters.md)	 - Display clusters defined in the kubeconfig | ||||
| * [kubectl config get-contexts](kubectl_config_get-contexts.md)	 - Describe one or many contexts | ||||
| * [kubectl config set](kubectl_config_set.md)	 - Sets an individual value in a kubeconfig file | ||||
| * [kubectl config set-cluster](kubectl_config_set-cluster.md)	 - Sets a cluster entry in kubeconfig | ||||
| * [kubectl config set-context](kubectl_config_set-context.md)	 - Sets a context entry in kubeconfig | ||||
| * [kubectl config set-credentials](kubectl_config_set-credentials.md)	 - Sets a user entry in kubeconfig | ||||
| * [kubectl config unset](kubectl_config_unset.md)	 - Unsets an individual value in a kubeconfig file | ||||
| * [kubectl config use-context](kubectl_config_use-context.md)	 - Sets the current-context in a kubeconfig file | ||||
| * [kubectl config view](kubectl_config_view.md)	 - Displays merged kubeconfig settings or a specified kubeconfig file. | ||||
| * [kubectl config view](kubectl_config_view.md)	 - Display merged kubeconfig settings or a specified kubeconfig file | ||||
| 
 | ||||
| ###### Auto generated by spf13/cobra on 12-Aug-2016 | ||||
| ###### Auto generated by spf13/cobra on 2-Sep-2016 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -8,6 +8,7 @@ Displays the current-context | |||
| ### Synopsis | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| Displays the current-context | ||||
| 
 | ||||
| ``` | ||||
|  | @ -17,6 +18,7 @@ kubectl config current-context | |||
| ### Examples | ||||
| 
 | ||||
| ``` | ||||
| 
 | ||||
| # Display the current-context | ||||
| kubectl config current-context | ||||
| ``` | ||||
|  | @ -24,36 +26,35 @@ kubectl config current-context | |||
| ### Options inherited from parent commands | ||||
| 
 | ||||
| ``` | ||||
|       --alsologtostderr[=false]: log to standard error as well as files | ||||
|       --as="": Username to impersonate for the operation. | ||||
|       --certificate-authority="": Path to a cert. file for the certificate authority. | ||||
|       --client-certificate="": Path to a client certificate file for TLS. | ||||
|       --client-key="": Path to a client key file for TLS. | ||||
|       --cluster="": The name of the kubeconfig cluster to use | ||||
|       --context="": The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify[=false]: If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure. | ||||
|       --kubeconfig="": use a particular kubeconfig file | ||||
|       --log-backtrace-at=:0: when logging hits line file:N, emit a stack trace | ||||
|       --log-dir="": If non-empty, write log files in this directory | ||||
|       --log-flush-frequency=5s: Maximum number of seconds between log flushes | ||||
|       --logtostderr[=true]: log to standard error instead of files | ||||
|       --match-server-version[=false]: Require server version to match client version | ||||
|       --namespace="": If present, the namespace scope for this CLI request. | ||||
|       --password="": Password for basic authentication to the API server. | ||||
|   -s, --server="": The address and port of the Kubernetes API server | ||||
|       --stderrthreshold=2: logs at or above this threshold go to stderr | ||||
|       --token="": Bearer token for authentication to the API server. | ||||
|       --user="": The name of the kubeconfig user to use | ||||
|       --username="": Username for basic authentication to the API server. | ||||
|       --v=0: log level for V logs | ||||
|       --vmodule=: comma-separated list of pattern=N settings for file-filtered logging | ||||
|       --alsologtostderr value          log to standard error as well as files | ||||
|       --as string                      Username to impersonate for the operation | ||||
|       --certificate-authority string   Path to a cert. file for the certificate authority | ||||
|       --client-certificate string      Path to a client certificate file for TLS | ||||
|       --client-key string              Path to a client key file for TLS | ||||
|       --cluster string                 The name of the kubeconfig cluster to use | ||||
|       --context string                 The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify       If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure | ||||
|       --kubeconfig string              use a particular kubeconfig file | ||||
|       --log-backtrace-at value         when logging hits line file:N, emit a stack trace (default :0) | ||||
|       --log-dir value                  If non-empty, write log files in this directory | ||||
|       --logtostderr value              log to standard error instead of files | ||||
|       --match-server-version           Require server version to match client version | ||||
|   -n, --namespace string               If present, the namespace scope for this CLI request | ||||
|       --password string                Password for basic authentication to the API server | ||||
|   -s, --server string                  The address and port of the Kubernetes API server | ||||
|       --stderrthreshold value          logs at or above this threshold go to stderr (default 2) | ||||
|       --token string                   Bearer token for authentication to the API server | ||||
|       --user string                    The name of the kubeconfig user to use | ||||
|       --username string                Username for basic authentication to the API server | ||||
|   -v, --v value                        log level for V logs | ||||
|       --vmodule value                  comma-separated list of pattern=N settings for file-filtered logging | ||||
| ``` | ||||
| 
 | ||||
| ### SEE ALSO | ||||
| 
 | ||||
| * [kubectl config](kubectl_config.md)	 - config modifies kubeconfig files | ||||
| * [kubectl config](kubectl_config.md)	 - Modify kubeconfig files | ||||
| 
 | ||||
| ###### Auto generated by spf13/cobra on 12-Aug-2016 | ||||
| ###### Auto generated by spf13/cobra on 2-Sep-2016 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -0,0 +1,56 @@ | |||
| --- | ||||
| --- | ||||
| 
 | ||||
| ## kubectl config delete-cluster | ||||
| 
 | ||||
| Delete the specified cluster from the kubeconfig | ||||
| 
 | ||||
| ### Synopsis | ||||
| 
 | ||||
| 
 | ||||
| Delete the specified cluster from the kubeconfig | ||||
| 
 | ||||
| ``` | ||||
| kubectl config delete-cluster NAME | ||||
| ``` | ||||
| 
 | ||||
| ### Options inherited from parent commands | ||||
| 
 | ||||
| ``` | ||||
|       --alsologtostderr value          log to standard error as well as files | ||||
|       --as string                      Username to impersonate for the operation | ||||
|       --certificate-authority string   Path to a cert. file for the certificate authority | ||||
|       --client-certificate string      Path to a client certificate file for TLS | ||||
|       --client-key string              Path to a client key file for TLS | ||||
|       --cluster string                 The name of the kubeconfig cluster to use | ||||
|       --context string                 The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify       If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure | ||||
|       --kubeconfig string              use a particular kubeconfig file | ||||
|       --log-backtrace-at value         when logging hits line file:N, emit a stack trace (default :0) | ||||
|       --log-dir value                  If non-empty, write log files in this directory | ||||
|       --logtostderr value              log to standard error instead of files | ||||
|       --match-server-version           Require server version to match client version | ||||
|   -n, --namespace string               If present, the namespace scope for this CLI request | ||||
|       --password string                Password for basic authentication to the API server | ||||
|   -s, --server string                  The address and port of the Kubernetes API server | ||||
|       --stderrthreshold value          logs at or above this threshold go to stderr (default 2) | ||||
|       --token string                   Bearer token for authentication to the API server | ||||
|       --user string                    The name of the kubeconfig user to use | ||||
|       --username string                Username for basic authentication to the API server | ||||
|   -v, --v value                        log level for V logs | ||||
|       --vmodule value                  comma-separated list of pattern=N settings for file-filtered logging | ||||
| ``` | ||||
| 
 | ||||
| ### SEE ALSO | ||||
| 
 | ||||
| * [kubectl config](kubectl_config.md)	 - Modify kubeconfig files | ||||
| 
 | ||||
| ###### Auto generated by spf13/cobra on 2-Sep-2016 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| <!-- BEGIN MUNGE: GENERATED_ANALYTICS --> | ||||
| []() | ||||
| <!-- END MUNGE: GENERATED_ANALYTICS --> | ||||
|  | @ -0,0 +1,56 @@ | |||
| --- | ||||
| --- | ||||
| 
 | ||||
| ## kubectl config delete-context | ||||
| 
 | ||||
| Delete the specified context from the kubeconfig | ||||
| 
 | ||||
| ### Synopsis | ||||
| 
 | ||||
| 
 | ||||
| Delete the specified context from the kubeconfig | ||||
| 
 | ||||
| ``` | ||||
| kubectl config delete-context NAME | ||||
| ``` | ||||
| 
 | ||||
| ### Options inherited from parent commands | ||||
| 
 | ||||
| ``` | ||||
|       --alsologtostderr value          log to standard error as well as files | ||||
|       --as string                      Username to impersonate for the operation | ||||
|       --certificate-authority string   Path to a cert. file for the certificate authority | ||||
|       --client-certificate string      Path to a client certificate file for TLS | ||||
|       --client-key string              Path to a client key file for TLS | ||||
|       --cluster string                 The name of the kubeconfig cluster to use | ||||
|       --context string                 The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify       If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure | ||||
|       --kubeconfig string              use a particular kubeconfig file | ||||
|       --log-backtrace-at value         when logging hits line file:N, emit a stack trace (default :0) | ||||
|       --log-dir value                  If non-empty, write log files in this directory | ||||
|       --logtostderr value              log to standard error instead of files | ||||
|       --match-server-version           Require server version to match client version | ||||
|   -n, --namespace string               If present, the namespace scope for this CLI request | ||||
|       --password string                Password for basic authentication to the API server | ||||
|   -s, --server string                  The address and port of the Kubernetes API server | ||||
|       --stderrthreshold value          logs at or above this threshold go to stderr (default 2) | ||||
|       --token string                   Bearer token for authentication to the API server | ||||
|       --user string                    The name of the kubeconfig user to use | ||||
|       --username string                Username for basic authentication to the API server | ||||
|   -v, --v value                        log level for V logs | ||||
|       --vmodule value                  comma-separated list of pattern=N settings for file-filtered logging | ||||
| ``` | ||||
| 
 | ||||
| ### SEE ALSO | ||||
| 
 | ||||
| * [kubectl config](kubectl_config.md)	 - Modify kubeconfig files | ||||
| 
 | ||||
| ###### Auto generated by spf13/cobra on 2-Sep-2016 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| <!-- BEGIN MUNGE: GENERATED_ANALYTICS --> | ||||
| []() | ||||
| <!-- END MUNGE: GENERATED_ANALYTICS --> | ||||
|  | @ -0,0 +1,56 @@ | |||
| --- | ||||
| --- | ||||
| 
 | ||||
| ## kubectl config get-clusters | ||||
| 
 | ||||
| Display clusters defined in the kubeconfig | ||||
| 
 | ||||
| ### Synopsis | ||||
| 
 | ||||
| 
 | ||||
| Display clusters defined in the kubeconfig | ||||
| 
 | ||||
| ``` | ||||
| kubectl config get-clusters | ||||
| ``` | ||||
| 
 | ||||
| ### Options inherited from parent commands | ||||
| 
 | ||||
| ``` | ||||
|       --alsologtostderr value          log to standard error as well as files | ||||
|       --as string                      Username to impersonate for the operation | ||||
|       --certificate-authority string   Path to a cert. file for the certificate authority | ||||
|       --client-certificate string      Path to a client certificate file for TLS | ||||
|       --client-key string              Path to a client key file for TLS | ||||
|       --cluster string                 The name of the kubeconfig cluster to use | ||||
|       --context string                 The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify       If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure | ||||
|       --kubeconfig string              use a particular kubeconfig file | ||||
|       --log-backtrace-at value         when logging hits line file:N, emit a stack trace (default :0) | ||||
|       --log-dir value                  If non-empty, write log files in this directory | ||||
|       --logtostderr value              log to standard error instead of files | ||||
|       --match-server-version           Require server version to match client version | ||||
|   -n, --namespace string               If present, the namespace scope for this CLI request | ||||
|       --password string                Password for basic authentication to the API server | ||||
|   -s, --server string                  The address and port of the Kubernetes API server | ||||
|       --stderrthreshold value          logs at or above this threshold go to stderr (default 2) | ||||
|       --token string                   Bearer token for authentication to the API server | ||||
|       --user string                    The name of the kubeconfig user to use | ||||
|       --username string                Username for basic authentication to the API server | ||||
|   -v, --v value                        log level for V logs | ||||
|       --vmodule value                  comma-separated list of pattern=N settings for file-filtered logging | ||||
| ``` | ||||
| 
 | ||||
| ### SEE ALSO | ||||
| 
 | ||||
| * [kubectl config](kubectl_config.md)	 - Modify kubeconfig files | ||||
| 
 | ||||
| ###### Auto generated by spf13/cobra on 2-Sep-2016 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| <!-- BEGIN MUNGE: GENERATED_ANALYTICS --> | ||||
| []() | ||||
| <!-- END MUNGE: GENERATED_ANALYTICS --> | ||||
|  | @ -0,0 +1,73 @@ | |||
| --- | ||||
| --- | ||||
| 
 | ||||
| ## kubectl config get-contexts | ||||
| 
 | ||||
| Describe one or many contexts | ||||
| 
 | ||||
| ### Synopsis | ||||
| 
 | ||||
| 
 | ||||
| Displays one or many contexts from the kubeconfig file. | ||||
| 
 | ||||
| ``` | ||||
| kubectl config get-contexts [(-o|--output=)name)] | ||||
| ``` | ||||
| 
 | ||||
| ### Examples | ||||
| 
 | ||||
| ``` | ||||
| # List all the contexts in your kubeconfig file | ||||
| kubectl config get-contexts | ||||
| 
 | ||||
| # Describe one context in your kubeconfig file. | ||||
| kubectl config get-contexts my-context | ||||
| ``` | ||||
| 
 | ||||
| ### Options | ||||
| 
 | ||||
| ``` | ||||
|       --no-headers      When using the default or custom-column output format, don't print headers. | ||||
|   -o, --output string   Output format. One of: json|yaml|wide|name|custom-columns=...|custom-columns-file=...|go-template=...|go-template-file=...|jsonpath=...|jsonpath-file=... See custom columns [http://kubernetes.io/docs/user-guide/kubectl-overview/#custom-columns], golang template [http://golang.org/pkg/text/template/#pkg-overview] and jsonpath template [http://kubernetes.io/docs/user-guide/jsonpath]. | ||||
| ``` | ||||
| 
 | ||||
| ### Options inherited from parent commands | ||||
| 
 | ||||
| ``` | ||||
|       --alsologtostderr value          log to standard error as well as files | ||||
|       --as string                      Username to impersonate for the operation | ||||
|       --certificate-authority string   Path to a cert. file for the certificate authority | ||||
|       --client-certificate string      Path to a client certificate file for TLS | ||||
|       --client-key string              Path to a client key file for TLS | ||||
|       --cluster string                 The name of the kubeconfig cluster to use | ||||
|       --context string                 The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify       If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure | ||||
|       --kubeconfig string              use a particular kubeconfig file | ||||
|       --log-backtrace-at value         when logging hits line file:N, emit a stack trace (default :0) | ||||
|       --log-dir value                  If non-empty, write log files in this directory | ||||
|       --logtostderr value              log to standard error instead of files | ||||
|       --match-server-version           Require server version to match client version | ||||
|   -n, --namespace string               If present, the namespace scope for this CLI request | ||||
|       --password string                Password for basic authentication to the API server | ||||
|   -s, --server string                  The address and port of the Kubernetes API server | ||||
|       --stderrthreshold value          logs at or above this threshold go to stderr (default 2) | ||||
|       --token string                   Bearer token for authentication to the API server | ||||
|       --user string                    The name of the kubeconfig user to use | ||||
|       --username string                Username for basic authentication to the API server | ||||
|   -v, --v value                        log level for V logs | ||||
|       --vmodule value                  comma-separated list of pattern=N settings for file-filtered logging | ||||
| ``` | ||||
| 
 | ||||
| ### SEE ALSO | ||||
| 
 | ||||
| * [kubectl config](kubectl_config.md)	 - Modify kubeconfig files | ||||
| 
 | ||||
| ###### Auto generated by spf13/cobra on 2-Sep-2016 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| <!-- BEGIN MUNGE: GENERATED_ANALYTICS --> | ||||
| []() | ||||
| <!-- END MUNGE: GENERATED_ANALYTICS --> | ||||
|  | @ -8,6 +8,7 @@ Sets a cluster entry in kubeconfig | |||
| ### Synopsis | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| Sets a cluster entry in kubeconfig. | ||||
| Specifying a name that already exists will merge new fields on top of existing values for those fields. | ||||
| 
 | ||||
|  | @ -18,6 +19,7 @@ kubectl config set-cluster NAME [--server=server] [--certificate-authority=path/ | |||
| ### Examples | ||||
| 
 | ||||
| ``` | ||||
| 
 | ||||
| # Set only the server field on the e2e cluster entry without touching other values. | ||||
| kubectl config set-cluster e2e --server=https://1.2.3.4 | ||||
| 
 | ||||
|  | @ -31,43 +33,42 @@ kubectl config set-cluster e2e --insecure-skip-tls-verify=true | |||
| ### Options | ||||
| 
 | ||||
| ``` | ||||
|       --api-version="": api-version for the cluster entry in kubeconfig | ||||
|       --certificate-authority="": path to certificate-authority file for the cluster entry in kubeconfig | ||||
|       --embed-certs[=false]: embed-certs for the cluster entry in kubeconfig | ||||
|       --insecure-skip-tls-verify[=false]: insecure-skip-tls-verify for the cluster entry in kubeconfig | ||||
|       --server="": server for the cluster entry in kubeconfig | ||||
|       --api-version value                       api-version for the cluster entry in kubeconfig | ||||
|       --certificate-authority value             path to certificate-authority file for the cluster entry in kubeconfig | ||||
|       --embed-certs value[=true]                embed-certs for the cluster entry in kubeconfig | ||||
|       --insecure-skip-tls-verify value[=true]   insecure-skip-tls-verify for the cluster entry in kubeconfig | ||||
|       --server value                            server for the cluster entry in kubeconfig | ||||
| ``` | ||||
| 
 | ||||
| ### Options inherited from parent commands | ||||
| 
 | ||||
| ``` | ||||
|       --alsologtostderr[=false]: log to standard error as well as files | ||||
|       --as="": Username to impersonate for the operation. | ||||
|       --client-certificate="": Path to a client certificate file for TLS. | ||||
|       --client-key="": Path to a client key file for TLS. | ||||
|       --cluster="": The name of the kubeconfig cluster to use | ||||
|       --context="": The name of the kubeconfig context to use | ||||
|       --kubeconfig="": use a particular kubeconfig file | ||||
|       --log-backtrace-at=:0: when logging hits line file:N, emit a stack trace | ||||
|       --log-dir="": If non-empty, write log files in this directory | ||||
|       --log-flush-frequency=5s: Maximum number of seconds between log flushes | ||||
|       --logtostderr[=true]: log to standard error instead of files | ||||
|       --match-server-version[=false]: Require server version to match client version | ||||
|       --namespace="": If present, the namespace scope for this CLI request. | ||||
|       --password="": Password for basic authentication to the API server. | ||||
|       --stderrthreshold=2: logs at or above this threshold go to stderr | ||||
|       --token="": Bearer token for authentication to the API server. | ||||
|       --user="": The name of the kubeconfig user to use | ||||
|       --username="": Username for basic authentication to the API server. | ||||
|       --v=0: log level for V logs | ||||
|       --vmodule=: comma-separated list of pattern=N settings for file-filtered logging | ||||
|       --alsologtostderr value       log to standard error as well as files | ||||
|       --as string                   Username to impersonate for the operation | ||||
|       --client-certificate string   Path to a client certificate file for TLS | ||||
|       --client-key string           Path to a client key file for TLS | ||||
|       --cluster string              The name of the kubeconfig cluster to use | ||||
|       --context string              The name of the kubeconfig context to use | ||||
|       --kubeconfig string           use a particular kubeconfig file | ||||
|       --log-backtrace-at value      when logging hits line file:N, emit a stack trace (default :0) | ||||
|       --log-dir value               If non-empty, write log files in this directory | ||||
|       --logtostderr value           log to standard error instead of files | ||||
|       --match-server-version        Require server version to match client version | ||||
|   -n, --namespace string            If present, the namespace scope for this CLI request | ||||
|       --password string             Password for basic authentication to the API server | ||||
|       --stderrthreshold value       logs at or above this threshold go to stderr (default 2) | ||||
|       --token string                Bearer token for authentication to the API server | ||||
|       --user string                 The name of the kubeconfig user to use | ||||
|       --username string             Username for basic authentication to the API server | ||||
|   -v, --v value                     log level for V logs | ||||
|       --vmodule value               comma-separated list of pattern=N settings for file-filtered logging | ||||
| ``` | ||||
| 
 | ||||
| ### SEE ALSO | ||||
| 
 | ||||
| * [kubectl config](kubectl_config.md)	 - config modifies kubeconfig files | ||||
| * [kubectl config](kubectl_config.md)	 - Modify kubeconfig files | ||||
| 
 | ||||
| ###### Auto generated by spf13/cobra on 12-Aug-2016 | ||||
| ###### Auto generated by spf13/cobra on 2-Sep-2016 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -8,6 +8,7 @@ Sets a context entry in kubeconfig | |||
| ### Synopsis | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| Sets a context entry in kubeconfig | ||||
| Specifying a name that already exists will merge new fields on top of existing values for those fields. | ||||
| 
 | ||||
|  | @ -18,6 +19,7 @@ kubectl config set-context NAME [--cluster=cluster_nickname] [--user=user_nickna | |||
| ### Examples | ||||
| 
 | ||||
| ``` | ||||
| 
 | ||||
| # Set the user field on the gce context entry without touching other values | ||||
| kubectl config set-context gce --user=cluster-admin | ||||
| ``` | ||||
|  | @ -25,41 +27,40 @@ kubectl config set-context gce --user=cluster-admin | |||
| ### Options | ||||
| 
 | ||||
| ``` | ||||
|       --cluster="": cluster for the context entry in kubeconfig | ||||
|       --namespace="": namespace for the context entry in kubeconfig | ||||
|       --user="": user for the context entry in kubeconfig | ||||
|       --cluster value     cluster for the context entry in kubeconfig | ||||
|       --namespace value   namespace for the context entry in kubeconfig | ||||
|       --user value        user for the context entry in kubeconfig | ||||
| ``` | ||||
| 
 | ||||
| ### Options inherited from parent commands | ||||
| 
 | ||||
| ``` | ||||
|       --alsologtostderr[=false]: log to standard error as well as files | ||||
|       --as="": Username to impersonate for the operation. | ||||
|       --certificate-authority="": Path to a cert. file for the certificate authority. | ||||
|       --client-certificate="": Path to a client certificate file for TLS. | ||||
|       --client-key="": Path to a client key file for TLS. | ||||
|       --context="": The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify[=false]: If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure. | ||||
|       --kubeconfig="": use a particular kubeconfig file | ||||
|       --log-backtrace-at=:0: when logging hits line file:N, emit a stack trace | ||||
|       --log-dir="": If non-empty, write log files in this directory | ||||
|       --log-flush-frequency=5s: Maximum number of seconds between log flushes | ||||
|       --logtostderr[=true]: log to standard error instead of files | ||||
|       --match-server-version[=false]: Require server version to match client version | ||||
|       --password="": Password for basic authentication to the API server. | ||||
|   -s, --server="": The address and port of the Kubernetes API server | ||||
|       --stderrthreshold=2: logs at or above this threshold go to stderr | ||||
|       --token="": Bearer token for authentication to the API server. | ||||
|       --username="": Username for basic authentication to the API server. | ||||
|       --v=0: log level for V logs | ||||
|       --vmodule=: comma-separated list of pattern=N settings for file-filtered logging | ||||
|       --alsologtostderr value          log to standard error as well as files | ||||
|       --as string                      Username to impersonate for the operation | ||||
|       --certificate-authority string   Path to a cert. file for the certificate authority | ||||
|       --client-certificate string      Path to a client certificate file for TLS | ||||
|       --client-key string              Path to a client key file for TLS | ||||
|       --context string                 The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify       If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure | ||||
|       --kubeconfig string              use a particular kubeconfig file | ||||
|       --log-backtrace-at value         when logging hits line file:N, emit a stack trace (default :0) | ||||
|       --log-dir value                  If non-empty, write log files in this directory | ||||
|       --logtostderr value              log to standard error instead of files | ||||
|       --match-server-version           Require server version to match client version | ||||
|       --password string                Password for basic authentication to the API server | ||||
|   -s, --server string                  The address and port of the Kubernetes API server | ||||
|       --stderrthreshold value          logs at or above this threshold go to stderr (default 2) | ||||
|       --token string                   Bearer token for authentication to the API server | ||||
|       --username string                Username for basic authentication to the API server | ||||
|   -v, --v value                        log level for V logs | ||||
|       --vmodule value                  comma-separated list of pattern=N settings for file-filtered logging | ||||
| ``` | ||||
| 
 | ||||
| ### SEE ALSO | ||||
| 
 | ||||
| * [kubectl config](kubectl_config.md)	 - config modifies kubeconfig files | ||||
| * [kubectl config](kubectl_config.md)	 - Modify kubeconfig files | ||||
| 
 | ||||
| ###### Auto generated by spf13/cobra on 12-Aug-2016 | ||||
| ###### Auto generated by spf13/cobra on 2-Sep-2016 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -8,6 +8,7 @@ Sets a user entry in kubeconfig | |||
| ### Synopsis | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| Sets a user entry in kubeconfig | ||||
| Specifying a name that already exists will merge new fields on top of existing values. | ||||
| 
 | ||||
|  | @ -24,12 +25,13 @@ Specifying a name that already exists will merge new fields on top of existing v | |||
| 
 | ||||
| 
 | ||||
| ``` | ||||
| kubectl config set-credentials NAME [--client-certificate=path/to/certfile] [--client-key=path/to/keyfile] [--token=bearer_token] [--username=basic_user] [--password=basic_password] | ||||
| kubectl config set-credentials NAME [--client-certificate=path/to/certfile] [--client-key=path/to/keyfile] [--token=bearer_token] [--username=basic_user] [--password=basic_password] [--auth-provider=provider_name] [--auth-provider-arg=key=value] | ||||
| ``` | ||||
| 
 | ||||
| ### Examples | ||||
| 
 | ||||
| ``` | ||||
| 
 | ||||
| # Set only the "client-key" field on the "cluster-admin" | ||||
| # entry, without touching other values: | ||||
| kubectl config set-credentials cluster-admin --client-key=~/.kube/admin.key | ||||
|  | @ -39,47 +41,57 @@ kubectl config set-credentials cluster-admin --username=admin --password=uXFGweU | |||
| 
 | ||||
| # Embed client certificate data in the "cluster-admin" entry | ||||
| kubectl config set-credentials cluster-admin --client-certificate=~/.kube/admin.crt --embed-certs=true | ||||
| 
 | ||||
| # Enable the Google Compute Platform auth provider for the "cluster-admin" entry | ||||
| kubectl config set-credentials cluster-admin --auth-provider=gcp | ||||
| 
 | ||||
| # Enable the OpenID Connect auth provider for the "cluster-admin" entry with additional args | ||||
| kubectl config set-credentials cluster-admin --auth-provider=oidc --auth-provider-arg=client-id=foo --auth-provider-arg=client-secret=bar | ||||
| 
 | ||||
| # Remove the "client-secret" config value for the OpenID Connect auth provider for the "cluster-admin" entry | ||||
| kubectl config set-credentials cluster-admin --auth-provider=oidc --auth-provider-arg=client-secret- | ||||
| ``` | ||||
| 
 | ||||
| ### Options | ||||
| 
 | ||||
| ``` | ||||
|       --client-certificate="": path to client-certificate file for the user entry in kubeconfig | ||||
|       --client-key="": path to client-key file for the user entry in kubeconfig | ||||
|       --embed-certs[=false]: embed client cert/key for the user entry in kubeconfig | ||||
|       --password="": password for the user entry in kubeconfig | ||||
|       --token="": token for the user entry in kubeconfig | ||||
|       --username="": username for the user entry in kubeconfig | ||||
|       --auth-provider value        auth provider for the user entry in kubeconfig | ||||
|       --auth-provider-arg value    'key=value' arugments for the auth provider (default []) | ||||
|       --client-certificate value   path to client-certificate file for the user entry in kubeconfig | ||||
|       --client-key value           path to client-key file for the user entry in kubeconfig | ||||
|       --embed-certs value[=true]   embed client cert/key for the user entry in kubeconfig | ||||
|       --password value             password for the user entry in kubeconfig | ||||
|       --token value                token for the user entry in kubeconfig | ||||
|       --username value             username for the user entry in kubeconfig | ||||
| ``` | ||||
| 
 | ||||
| ### Options inherited from parent commands | ||||
| 
 | ||||
| ``` | ||||
|       --alsologtostderr[=false]: log to standard error as well as files | ||||
|       --as="": Username to impersonate for the operation. | ||||
|       --certificate-authority="": Path to a cert. file for the certificate authority. | ||||
|       --cluster="": The name of the kubeconfig cluster to use | ||||
|       --context="": The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify[=false]: If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure. | ||||
|       --kubeconfig="": use a particular kubeconfig file | ||||
|       --log-backtrace-at=:0: when logging hits line file:N, emit a stack trace | ||||
|       --log-dir="": If non-empty, write log files in this directory | ||||
|       --log-flush-frequency=5s: Maximum number of seconds between log flushes | ||||
|       --logtostderr[=true]: log to standard error instead of files | ||||
|       --match-server-version[=false]: Require server version to match client version | ||||
|       --namespace="": If present, the namespace scope for this CLI request. | ||||
|   -s, --server="": The address and port of the Kubernetes API server | ||||
|       --stderrthreshold=2: logs at or above this threshold go to stderr | ||||
|       --user="": The name of the kubeconfig user to use | ||||
|       --v=0: log level for V logs | ||||
|       --vmodule=: comma-separated list of pattern=N settings for file-filtered logging | ||||
|       --alsologtostderr value          log to standard error as well as files | ||||
|       --as string                      Username to impersonate for the operation | ||||
|       --certificate-authority string   Path to a cert. file for the certificate authority | ||||
|       --cluster string                 The name of the kubeconfig cluster to use | ||||
|       --context string                 The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify       If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure | ||||
|       --kubeconfig string              use a particular kubeconfig file | ||||
|       --log-backtrace-at value         when logging hits line file:N, emit a stack trace (default :0) | ||||
|       --log-dir value                  If non-empty, write log files in this directory | ||||
|       --logtostderr value              log to standard error instead of files | ||||
|       --match-server-version           Require server version to match client version | ||||
|   -n, --namespace string               If present, the namespace scope for this CLI request | ||||
|   -s, --server string                  The address and port of the Kubernetes API server | ||||
|       --stderrthreshold value          logs at or above this threshold go to stderr (default 2) | ||||
|       --user string                    The name of the kubeconfig user to use | ||||
|   -v, --v value                        log level for V logs | ||||
|       --vmodule value                  comma-separated list of pattern=N settings for file-filtered logging | ||||
| ``` | ||||
| 
 | ||||
| ### SEE ALSO | ||||
| 
 | ||||
| * [kubectl config](kubectl_config.md)	 - config modifies kubeconfig files | ||||
| * [kubectl config](kubectl_config.md)	 - Modify kubeconfig files | ||||
| 
 | ||||
| ###### Auto generated by spf13/cobra on 12-Aug-2016 | ||||
| ###### Auto generated by spf13/cobra on 2-Sep-2016 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -8,6 +8,7 @@ Sets an individual value in a kubeconfig file | |||
| ### Synopsis | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| Sets an individual value in a kubeconfig file | ||||
| PROPERTY_NAME is a dot delimited name where each token represents either an attribute name or a map key.  Map keys may not contain dots. | ||||
| PROPERTY_VALUE is the new value you wish to set. Binary fields such as 'certificate-authority-data' expect a base64 encoded string unless the --set-raw-bytes flag is used. | ||||
|  | @ -19,42 +20,41 @@ kubectl config set PROPERTY_NAME PROPERTY_VALUE | |||
| ### Options | ||||
| 
 | ||||
| ``` | ||||
|       --set-raw-bytes[=false]: When writing a []byte PROPERTY_VALUE, write the given string directly without base64 decoding. | ||||
|       --set-raw-bytes value[=true]   When writing a []byte PROPERTY_VALUE, write the given string directly without base64 decoding. | ||||
| ``` | ||||
| 
 | ||||
| ### Options inherited from parent commands | ||||
| 
 | ||||
| ``` | ||||
|       --alsologtostderr[=false]: log to standard error as well as files | ||||
|       --as="": Username to impersonate for the operation. | ||||
|       --certificate-authority="": Path to a cert. file for the certificate authority. | ||||
|       --client-certificate="": Path to a client certificate file for TLS. | ||||
|       --client-key="": Path to a client key file for TLS. | ||||
|       --cluster="": The name of the kubeconfig cluster to use | ||||
|       --context="": The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify[=false]: If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure. | ||||
|       --kubeconfig="": use a particular kubeconfig file | ||||
|       --log-backtrace-at=:0: when logging hits line file:N, emit a stack trace | ||||
|       --log-dir="": If non-empty, write log files in this directory | ||||
|       --log-flush-frequency=5s: Maximum number of seconds between log flushes | ||||
|       --logtostderr[=true]: log to standard error instead of files | ||||
|       --match-server-version[=false]: Require server version to match client version | ||||
|       --namespace="": If present, the namespace scope for this CLI request. | ||||
|       --password="": Password for basic authentication to the API server. | ||||
|   -s, --server="": The address and port of the Kubernetes API server | ||||
|       --stderrthreshold=2: logs at or above this threshold go to stderr | ||||
|       --token="": Bearer token for authentication to the API server. | ||||
|       --user="": The name of the kubeconfig user to use | ||||
|       --username="": Username for basic authentication to the API server. | ||||
|       --v=0: log level for V logs | ||||
|       --vmodule=: comma-separated list of pattern=N settings for file-filtered logging | ||||
|       --alsologtostderr value          log to standard error as well as files | ||||
|       --as string                      Username to impersonate for the operation | ||||
|       --certificate-authority string   Path to a cert. file for the certificate authority | ||||
|       --client-certificate string      Path to a client certificate file for TLS | ||||
|       --client-key string              Path to a client key file for TLS | ||||
|       --cluster string                 The name of the kubeconfig cluster to use | ||||
|       --context string                 The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify       If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure | ||||
|       --kubeconfig string              use a particular kubeconfig file | ||||
|       --log-backtrace-at value         when logging hits line file:N, emit a stack trace (default :0) | ||||
|       --log-dir value                  If non-empty, write log files in this directory | ||||
|       --logtostderr value              log to standard error instead of files | ||||
|       --match-server-version           Require server version to match client version | ||||
|   -n, --namespace string               If present, the namespace scope for this CLI request | ||||
|       --password string                Password for basic authentication to the API server | ||||
|   -s, --server string                  The address and port of the Kubernetes API server | ||||
|       --stderrthreshold value          logs at or above this threshold go to stderr (default 2) | ||||
|       --token string                   Bearer token for authentication to the API server | ||||
|       --user string                    The name of the kubeconfig user to use | ||||
|       --username string                Username for basic authentication to the API server | ||||
|   -v, --v value                        log level for V logs | ||||
|       --vmodule value                  comma-separated list of pattern=N settings for file-filtered logging | ||||
| ``` | ||||
| 
 | ||||
| ### SEE ALSO | ||||
| 
 | ||||
| * [kubectl config](kubectl_config.md)	 - config modifies kubeconfig files | ||||
| * [kubectl config](kubectl_config.md)	 - Modify kubeconfig files | ||||
| 
 | ||||
| ###### Auto generated by spf13/cobra on 12-Aug-2016 | ||||
| ###### Auto generated by spf13/cobra on 2-Sep-2016 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -8,6 +8,7 @@ Unsets an individual value in a kubeconfig file | |||
| ### Synopsis | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| Unsets an individual value in a kubeconfig file | ||||
| PROPERTY_NAME is a dot delimited name where each token represents either an attribute name or a map key.  Map keys may not contain dots. | ||||
| 
 | ||||
|  | @ -18,36 +19,35 @@ kubectl config unset PROPERTY_NAME | |||
| ### Options inherited from parent commands | ||||
| 
 | ||||
| ``` | ||||
|       --alsologtostderr[=false]: log to standard error as well as files | ||||
|       --as="": Username to impersonate for the operation. | ||||
|       --certificate-authority="": Path to a cert. file for the certificate authority. | ||||
|       --client-certificate="": Path to a client certificate file for TLS. | ||||
|       --client-key="": Path to a client key file for TLS. | ||||
|       --cluster="": The name of the kubeconfig cluster to use | ||||
|       --context="": The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify[=false]: If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure. | ||||
|       --kubeconfig="": use a particular kubeconfig file | ||||
|       --log-backtrace-at=:0: when logging hits line file:N, emit a stack trace | ||||
|       --log-dir="": If non-empty, write log files in this directory | ||||
|       --log-flush-frequency=5s: Maximum number of seconds between log flushes | ||||
|       --logtostderr[=true]: log to standard error instead of files | ||||
|       --match-server-version[=false]: Require server version to match client version | ||||
|       --namespace="": If present, the namespace scope for this CLI request. | ||||
|       --password="": Password for basic authentication to the API server. | ||||
|   -s, --server="": The address and port of the Kubernetes API server | ||||
|       --stderrthreshold=2: logs at or above this threshold go to stderr | ||||
|       --token="": Bearer token for authentication to the API server. | ||||
|       --user="": The name of the kubeconfig user to use | ||||
|       --username="": Username for basic authentication to the API server. | ||||
|       --v=0: log level for V logs | ||||
|       --vmodule=: comma-separated list of pattern=N settings for file-filtered logging | ||||
|       --alsologtostderr value          log to standard error as well as files | ||||
|       --as string                      Username to impersonate for the operation | ||||
|       --certificate-authority string   Path to a cert. file for the certificate authority | ||||
|       --client-certificate string      Path to a client certificate file for TLS | ||||
|       --client-key string              Path to a client key file for TLS | ||||
|       --cluster string                 The name of the kubeconfig cluster to use | ||||
|       --context string                 The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify       If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure | ||||
|       --kubeconfig string              use a particular kubeconfig file | ||||
|       --log-backtrace-at value         when logging hits line file:N, emit a stack trace (default :0) | ||||
|       --log-dir value                  If non-empty, write log files in this directory | ||||
|       --logtostderr value              log to standard error instead of files | ||||
|       --match-server-version           Require server version to match client version | ||||
|   -n, --namespace string               If present, the namespace scope for this CLI request | ||||
|       --password string                Password for basic authentication to the API server | ||||
|   -s, --server string                  The address and port of the Kubernetes API server | ||||
|       --stderrthreshold value          logs at or above this threshold go to stderr (default 2) | ||||
|       --token string                   Bearer token for authentication to the API server | ||||
|       --user string                    The name of the kubeconfig user to use | ||||
|       --username string                Username for basic authentication to the API server | ||||
|   -v, --v value                        log level for V logs | ||||
|       --vmodule value                  comma-separated list of pattern=N settings for file-filtered logging | ||||
| ``` | ||||
| 
 | ||||
| ### SEE ALSO | ||||
| 
 | ||||
| * [kubectl config](kubectl_config.md)	 - config modifies kubeconfig files | ||||
| * [kubectl config](kubectl_config.md)	 - Modify kubeconfig files | ||||
| 
 | ||||
| ###### Auto generated by spf13/cobra on 12-Aug-2016 | ||||
| ###### Auto generated by spf13/cobra on 2-Sep-2016 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -17,36 +17,35 @@ kubectl config use-context CONTEXT_NAME | |||
| ### Options inherited from parent commands | ||||
| 
 | ||||
| ``` | ||||
|       --alsologtostderr[=false]: log to standard error as well as files | ||||
|       --as="": Username to impersonate for the operation. | ||||
|       --certificate-authority="": Path to a cert. file for the certificate authority. | ||||
|       --client-certificate="": Path to a client certificate file for TLS. | ||||
|       --client-key="": Path to a client key file for TLS. | ||||
|       --cluster="": The name of the kubeconfig cluster to use | ||||
|       --context="": The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify[=false]: If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure. | ||||
|       --kubeconfig="": use a particular kubeconfig file | ||||
|       --log-backtrace-at=:0: when logging hits line file:N, emit a stack trace | ||||
|       --log-dir="": If non-empty, write log files in this directory | ||||
|       --log-flush-frequency=5s: Maximum number of seconds between log flushes | ||||
|       --logtostderr[=true]: log to standard error instead of files | ||||
|       --match-server-version[=false]: Require server version to match client version | ||||
|       --namespace="": If present, the namespace scope for this CLI request. | ||||
|       --password="": Password for basic authentication to the API server. | ||||
|   -s, --server="": The address and port of the Kubernetes API server | ||||
|       --stderrthreshold=2: logs at or above this threshold go to stderr | ||||
|       --token="": Bearer token for authentication to the API server. | ||||
|       --user="": The name of the kubeconfig user to use | ||||
|       --username="": Username for basic authentication to the API server. | ||||
|       --v=0: log level for V logs | ||||
|       --vmodule=: comma-separated list of pattern=N settings for file-filtered logging | ||||
|       --alsologtostderr value          log to standard error as well as files | ||||
|       --as string                      Username to impersonate for the operation | ||||
|       --certificate-authority string   Path to a cert. file for the certificate authority | ||||
|       --client-certificate string      Path to a client certificate file for TLS | ||||
|       --client-key string              Path to a client key file for TLS | ||||
|       --cluster string                 The name of the kubeconfig cluster to use | ||||
|       --context string                 The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify       If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure | ||||
|       --kubeconfig string              use a particular kubeconfig file | ||||
|       --log-backtrace-at value         when logging hits line file:N, emit a stack trace (default :0) | ||||
|       --log-dir value                  If non-empty, write log files in this directory | ||||
|       --logtostderr value              log to standard error instead of files | ||||
|       --match-server-version           Require server version to match client version | ||||
|   -n, --namespace string               If present, the namespace scope for this CLI request | ||||
|       --password string                Password for basic authentication to the API server | ||||
|   -s, --server string                  The address and port of the Kubernetes API server | ||||
|       --stderrthreshold value          logs at or above this threshold go to stderr (default 2) | ||||
|       --token string                   Bearer token for authentication to the API server | ||||
|       --user string                    The name of the kubeconfig user to use | ||||
|       --username string                Username for basic authentication to the API server | ||||
|   -v, --v value                        log level for V logs | ||||
|       --vmodule value                  comma-separated list of pattern=N settings for file-filtered logging | ||||
| ``` | ||||
| 
 | ||||
| ### SEE ALSO | ||||
| 
 | ||||
| * [kubectl config](kubectl_config.md)	 - config modifies kubeconfig files | ||||
| * [kubectl config](kubectl_config.md)	 - Modify kubeconfig files | ||||
| 
 | ||||
| ###### Auto generated by spf13/cobra on 12-Aug-2016 | ||||
| ###### Auto generated by spf13/cobra on 2-Sep-2016 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -3,12 +3,13 @@ | |||
| 
 | ||||
| ## kubectl config view | ||||
| 
 | ||||
| Displays merged kubeconfig settings or a specified kubeconfig file. | ||||
| Display merged kubeconfig settings or a specified kubeconfig file | ||||
| 
 | ||||
| ### Synopsis | ||||
| 
 | ||||
| 
 | ||||
| Displays merged kubeconfig settings or a specified kubeconfig file. | ||||
| 
 | ||||
| Display merged kubeconfig settings or a specified kubeconfig file. | ||||
| 
 | ||||
| You can use --output jsonpath={...} to extract specific values using a jsonpath expression. | ||||
| 
 | ||||
|  | @ -19,6 +20,7 @@ kubectl config view | |||
| ### Examples | ||||
| 
 | ||||
| ``` | ||||
| 
 | ||||
| # Show Merged kubeconfig settings. | ||||
| kubectl config view | ||||
| 
 | ||||
|  | @ -29,52 +31,51 @@ kubectl config view -o jsonpath='{.users[?(@.name == "e2e")].user.password}' | |||
| ### Options | ||||
| 
 | ||||
| ``` | ||||
|       --flatten[=false]: flatten the resulting kubeconfig file into self-contained output (useful for creating portable kubeconfig files) | ||||
|       --merge[=true]: merge the full hierarchy of kubeconfig files | ||||
|       --minify[=false]: remove all information not used by current-context from the output | ||||
|       --no-headers[=false]: When using the default output, don't print headers. | ||||
|   -o, --output="": Output format. One of: json|yaml|wide|name|go-template=...|go-template-file=...|jsonpath=...|jsonpath-file=... See golang template [http://golang.org/pkg/text/template/#pkg-overview] and jsonpath template [http://releases.k8s.io/release-1.3/docs/user-guide/jsonpath.md]. | ||||
|       --output-version="": Output the formatted object with the given group version (for ex: 'extensions/v1beta1'). | ||||
|       --raw[=false]: display raw byte data | ||||
|   -a, --show-all[=false]: When printing, show all resources (default hide terminated pods.) | ||||
|       --show-labels[=false]: When printing, show all labels as the last column (default hide labels column) | ||||
|       --sort-by="": If non-empty, sort list types using this field specification.  The field specification is expressed as a JSONPath expression (e.g. '{.metadata.name}'). The field in the API resource specified by this JSONPath expression must be an integer or a string. | ||||
|       --template="": Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates [http://golang.org/pkg/text/template/#pkg-overview]. | ||||
|       --flatten                 flatten the resulting kubeconfig file into self-contained output (useful for creating portable kubeconfig files) | ||||
|       --merge value[=true]      merge the full hierarchy of kubeconfig files (default true) | ||||
|       --minify                  remove all information not used by current-context from the output | ||||
|       --no-headers              When using the default or custom-column output format, don't print headers. | ||||
|   -o, --output string           Output format. One of: json|yaml|wide|name|custom-columns=...|custom-columns-file=...|go-template=...|go-template-file=...|jsonpath=...|jsonpath-file=... See custom columns [http://kubernetes.io/docs/user-guide/kubectl-overview/#custom-columns], golang template [http://golang.org/pkg/text/template/#pkg-overview] and jsonpath template [http://kubernetes.io/docs/user-guide/jsonpath]. | ||||
|       --output-version string   Output the formatted object with the given group version (for ex: 'extensions/v1beta1'). | ||||
|       --raw                     display raw byte data | ||||
|   -a, --show-all                When printing, show all resources (default hide terminated pods.) | ||||
|       --show-labels             When printing, show all labels as the last column (default hide labels column) | ||||
|       --sort-by string          If non-empty, sort list types using this field specification.  The field specification is expressed as a JSONPath expression (e.g. '{.metadata.name}'). The field in the API resource specified by this JSONPath expression must be an integer or a string. | ||||
|       --template string         Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates [http://golang.org/pkg/text/template/#pkg-overview]. | ||||
| ``` | ||||
| 
 | ||||
| ### Options inherited from parent commands | ||||
| 
 | ||||
| ``` | ||||
|       --alsologtostderr[=false]: log to standard error as well as files | ||||
|       --as="": Username to impersonate for the operation. | ||||
|       --certificate-authority="": Path to a cert. file for the certificate authority. | ||||
|       --client-certificate="": Path to a client certificate file for TLS. | ||||
|       --client-key="": Path to a client key file for TLS. | ||||
|       --cluster="": The name of the kubeconfig cluster to use | ||||
|       --context="": The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify[=false]: If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure. | ||||
|       --kubeconfig="": use a particular kubeconfig file | ||||
|       --log-backtrace-at=:0: when logging hits line file:N, emit a stack trace | ||||
|       --log-dir="": If non-empty, write log files in this directory | ||||
|       --log-flush-frequency=5s: Maximum number of seconds between log flushes | ||||
|       --logtostderr[=true]: log to standard error instead of files | ||||
|       --match-server-version[=false]: Require server version to match client version | ||||
|       --namespace="": If present, the namespace scope for this CLI request. | ||||
|       --password="": Password for basic authentication to the API server. | ||||
|   -s, --server="": The address and port of the Kubernetes API server | ||||
|       --stderrthreshold=2: logs at or above this threshold go to stderr | ||||
|       --token="": Bearer token for authentication to the API server. | ||||
|       --user="": The name of the kubeconfig user to use | ||||
|       --username="": Username for basic authentication to the API server. | ||||
|       --v=0: log level for V logs | ||||
|       --vmodule=: comma-separated list of pattern=N settings for file-filtered logging | ||||
|       --alsologtostderr value          log to standard error as well as files | ||||
|       --as string                      Username to impersonate for the operation | ||||
|       --certificate-authority string   Path to a cert. file for the certificate authority | ||||
|       --client-certificate string      Path to a client certificate file for TLS | ||||
|       --client-key string              Path to a client key file for TLS | ||||
|       --cluster string                 The name of the kubeconfig cluster to use | ||||
|       --context string                 The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify       If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure | ||||
|       --kubeconfig string              use a particular kubeconfig file | ||||
|       --log-backtrace-at value         when logging hits line file:N, emit a stack trace (default :0) | ||||
|       --log-dir value                  If non-empty, write log files in this directory | ||||
|       --logtostderr value              log to standard error instead of files | ||||
|       --match-server-version           Require server version to match client version | ||||
|   -n, --namespace string               If present, the namespace scope for this CLI request | ||||
|       --password string                Password for basic authentication to the API server | ||||
|   -s, --server string                  The address and port of the Kubernetes API server | ||||
|       --stderrthreshold value          logs at or above this threshold go to stderr (default 2) | ||||
|       --token string                   Bearer token for authentication to the API server | ||||
|       --user string                    The name of the kubeconfig user to use | ||||
|       --username string                Username for basic authentication to the API server | ||||
|   -v, --v value                        log level for V logs | ||||
|       --vmodule value                  comma-separated list of pattern=N settings for file-filtered logging | ||||
| ``` | ||||
| 
 | ||||
| ### SEE ALSO | ||||
| 
 | ||||
| * [kubectl config](kubectl_config.md)	 - config modifies kubeconfig files | ||||
| * [kubectl config](kubectl_config.md)	 - Modify kubeconfig files | ||||
| 
 | ||||
| ###### Auto generated by spf13/cobra on 12-Aug-2016 | ||||
| ###### Auto generated by spf13/cobra on 2-Sep-2016 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -8,6 +8,7 @@ Convert config files between different API versions | |||
| ### Synopsis | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| Convert config files between different API versions. Both YAML | ||||
| and JSON formats are accepted. | ||||
| 
 | ||||
|  | @ -26,6 +27,7 @@ kubectl convert -f FILENAME | |||
| ### Examples | ||||
| 
 | ||||
| ``` | ||||
| 
 | ||||
| # Convert 'pod.yaml' to latest version and print to stdout. | ||||
| kubectl convert -f pod.yaml | ||||
| 
 | ||||
|  | @ -41,54 +43,53 @@ kubectl convert -f . | kubectl create -f - | |||
| ### Options | ||||
| 
 | ||||
| ``` | ||||
|   -f, --filename=[]: Filename, directory, or URL to file to need to get converted. | ||||
|       --include-extended-apis[=true]: If true, include definitions of new APIs via calls to the API server. [default true] | ||||
|       --local[=true]: If true, convert will NOT try to contact api-server but run locally. | ||||
|       --no-headers[=false]: When using the default output, don't print headers. | ||||
|   -o, --output="": Output format. One of: json|yaml|wide|name|go-template=...|go-template-file=...|jsonpath=...|jsonpath-file=... See golang template [http://golang.org/pkg/text/template/#pkg-overview] and jsonpath template [http://releases.k8s.io/release-1.3/docs/user-guide/jsonpath.md]. | ||||
|       --output-version="": Output the formatted object with the given group version (for ex: 'extensions/v1beta1'). | ||||
|   -R, --recursive[=false]: Process the directory used in -f, --filename recursively. Useful when you want to manage related manifests organized within the same directory. | ||||
|       --schema-cache-dir="~/.kube/schema": If non-empty, load/store cached API schemas in this directory, default is '$HOME/.kube/schema' | ||||
|   -a, --show-all[=false]: When printing, show all resources (default hide terminated pods.) | ||||
|       --show-labels[=false]: When printing, show all labels as the last column (default hide labels column) | ||||
|       --sort-by="": If non-empty, sort list types using this field specification.  The field specification is expressed as a JSONPath expression (e.g. '{.metadata.name}'). The field in the API resource specified by this JSONPath expression must be an integer or a string. | ||||
|       --template="": Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates [http://golang.org/pkg/text/template/#pkg-overview]. | ||||
|       --validate[=true]: If true, use a schema to validate the input before sending it | ||||
|   -f, --filename value            Filename, directory, or URL to file to need to get converted. (default []) | ||||
|       --include-extended-apis     If true, include definitions of new APIs via calls to the API server. [default true] (default true) | ||||
|       --local                     If true, convert will NOT try to contact api-server but run locally. (default true) | ||||
|       --no-headers                When using the default or custom-column output format, don't print headers. | ||||
|   -o, --output string             Output format. One of: json|yaml|wide|name|custom-columns=...|custom-columns-file=...|go-template=...|go-template-file=...|jsonpath=...|jsonpath-file=... See custom columns [http://kubernetes.io/docs/user-guide/kubectl-overview/#custom-columns], golang template [http://golang.org/pkg/text/template/#pkg-overview] and jsonpath template [http://kubernetes.io/docs/user-guide/jsonpath]. | ||||
|       --output-version string     Output the formatted object with the given group version (for ex: 'extensions/v1beta1'). | ||||
|   -R, --recursive                 Process the directory used in -f, --filename recursively. Useful when you want to manage related manifests organized within the same directory. | ||||
|       --schema-cache-dir string   If non-empty, load/store cached API schemas in this directory, default is '$HOME/.kube/schema' (default "~/.kube/schema") | ||||
|   -a, --show-all                  When printing, show all resources (default hide terminated pods.) | ||||
|       --show-labels               When printing, show all labels as the last column (default hide labels column) | ||||
|       --sort-by string            If non-empty, sort list types using this field specification.  The field specification is expressed as a JSONPath expression (e.g. '{.metadata.name}'). The field in the API resource specified by this JSONPath expression must be an integer or a string. | ||||
|       --template string           Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates [http://golang.org/pkg/text/template/#pkg-overview]. | ||||
|       --validate                  If true, use a schema to validate the input before sending it (default true) | ||||
| ``` | ||||
| 
 | ||||
| ### Options inherited from parent commands | ||||
| 
 | ||||
| ``` | ||||
|       --alsologtostderr[=false]: log to standard error as well as files | ||||
|       --as="": Username to impersonate for the operation. | ||||
|       --certificate-authority="": Path to a cert. file for the certificate authority. | ||||
|       --client-certificate="": Path to a client certificate file for TLS. | ||||
|       --client-key="": Path to a client key file for TLS. | ||||
|       --cluster="": The name of the kubeconfig cluster to use | ||||
|       --context="": The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify[=false]: If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure. | ||||
|       --kubeconfig="": Path to the kubeconfig file to use for CLI requests. | ||||
|       --log-backtrace-at=:0: when logging hits line file:N, emit a stack trace | ||||
|       --log-dir="": If non-empty, write log files in this directory | ||||
|       --log-flush-frequency=5s: Maximum number of seconds between log flushes | ||||
|       --logtostderr[=true]: log to standard error instead of files | ||||
|       --match-server-version[=false]: Require server version to match client version | ||||
|       --namespace="": If present, the namespace scope for this CLI request. | ||||
|       --password="": Password for basic authentication to the API server. | ||||
|   -s, --server="": The address and port of the Kubernetes API server | ||||
|       --stderrthreshold=2: logs at or above this threshold go to stderr | ||||
|       --token="": Bearer token for authentication to the API server. | ||||
|       --user="": The name of the kubeconfig user to use | ||||
|       --username="": Username for basic authentication to the API server. | ||||
|       --v=0: log level for V logs | ||||
|       --vmodule=: comma-separated list of pattern=N settings for file-filtered logging | ||||
|       --alsologtostderr value          log to standard error as well as files | ||||
|       --as string                      Username to impersonate for the operation | ||||
|       --certificate-authority string   Path to a cert. file for the certificate authority | ||||
|       --client-certificate string      Path to a client certificate file for TLS | ||||
|       --client-key string              Path to a client key file for TLS | ||||
|       --cluster string                 The name of the kubeconfig cluster to use | ||||
|       --context string                 The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify       If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure | ||||
|       --kubeconfig string              Path to the kubeconfig file to use for CLI requests. | ||||
|       --log-backtrace-at value         when logging hits line file:N, emit a stack trace (default :0) | ||||
|       --log-dir value                  If non-empty, write log files in this directory | ||||
|       --logtostderr value              log to standard error instead of files | ||||
|       --match-server-version           Require server version to match client version | ||||
|   -n, --namespace string               If present, the namespace scope for this CLI request | ||||
|       --password string                Password for basic authentication to the API server | ||||
|   -s, --server string                  The address and port of the Kubernetes API server | ||||
|       --stderrthreshold value          logs at or above this threshold go to stderr (default 2) | ||||
|       --token string                   Bearer token for authentication to the API server | ||||
|       --user string                    The name of the kubeconfig user to use | ||||
|       --username string                Username for basic authentication to the API server | ||||
|   -v, --v value                        log level for V logs | ||||
|       --vmodule value                  comma-separated list of pattern=N settings for file-filtered logging | ||||
| ``` | ||||
| 
 | ||||
| ### SEE ALSO | ||||
| 
 | ||||
| * [kubectl](kubectl.md)	 - kubectl controls the Kubernetes cluster manager | ||||
| 
 | ||||
| ###### Auto generated by spf13/cobra on 12-Aug-2016 | ||||
| ###### Auto generated by spf13/cobra on 2-Sep-2016 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -8,6 +8,7 @@ Mark node as unschedulable | |||
| ### Synopsis | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| Mark node as unschedulable. | ||||
| 
 | ||||
| 
 | ||||
|  | @ -18,6 +19,7 @@ kubectl cordon NODE | |||
| ### Examples | ||||
| 
 | ||||
| ``` | ||||
| 
 | ||||
| # Mark node "foo" as unschedulable. | ||||
| kubectl cordon foo | ||||
| 
 | ||||
|  | @ -26,36 +28,35 @@ kubectl cordon foo | |||
| ### Options inherited from parent commands | ||||
| 
 | ||||
| ``` | ||||
|       --alsologtostderr[=false]: log to standard error as well as files | ||||
|       --as="": Username to impersonate for the operation. | ||||
|       --certificate-authority="": Path to a cert. file for the certificate authority. | ||||
|       --client-certificate="": Path to a client certificate file for TLS. | ||||
|       --client-key="": Path to a client key file for TLS. | ||||
|       --cluster="": The name of the kubeconfig cluster to use | ||||
|       --context="": The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify[=false]: If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure. | ||||
|       --kubeconfig="": Path to the kubeconfig file to use for CLI requests. | ||||
|       --log-backtrace-at=:0: when logging hits line file:N, emit a stack trace | ||||
|       --log-dir="": If non-empty, write log files in this directory | ||||
|       --log-flush-frequency=5s: Maximum number of seconds between log flushes | ||||
|       --logtostderr[=true]: log to standard error instead of files | ||||
|       --match-server-version[=false]: Require server version to match client version | ||||
|       --namespace="": If present, the namespace scope for this CLI request. | ||||
|       --password="": Password for basic authentication to the API server. | ||||
|   -s, --server="": The address and port of the Kubernetes API server | ||||
|       --stderrthreshold=2: logs at or above this threshold go to stderr | ||||
|       --token="": Bearer token for authentication to the API server. | ||||
|       --user="": The name of the kubeconfig user to use | ||||
|       --username="": Username for basic authentication to the API server. | ||||
|       --v=0: log level for V logs | ||||
|       --vmodule=: comma-separated list of pattern=N settings for file-filtered logging | ||||
|       --alsologtostderr value          log to standard error as well as files | ||||
|       --as string                      Username to impersonate for the operation | ||||
|       --certificate-authority string   Path to a cert. file for the certificate authority | ||||
|       --client-certificate string      Path to a client certificate file for TLS | ||||
|       --client-key string              Path to a client key file for TLS | ||||
|       --cluster string                 The name of the kubeconfig cluster to use | ||||
|       --context string                 The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify       If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure | ||||
|       --kubeconfig string              Path to the kubeconfig file to use for CLI requests. | ||||
|       --log-backtrace-at value         when logging hits line file:N, emit a stack trace (default :0) | ||||
|       --log-dir value                  If non-empty, write log files in this directory | ||||
|       --logtostderr value              log to standard error instead of files | ||||
|       --match-server-version           Require server version to match client version | ||||
|   -n, --namespace string               If present, the namespace scope for this CLI request | ||||
|       --password string                Password for basic authentication to the API server | ||||
|   -s, --server string                  The address and port of the Kubernetes API server | ||||
|       --stderrthreshold value          logs at or above this threshold go to stderr (default 2) | ||||
|       --token string                   Bearer token for authentication to the API server | ||||
|       --user string                    The name of the kubeconfig user to use | ||||
|       --username string                Username for basic authentication to the API server | ||||
|   -v, --v value                        log level for V logs | ||||
|       --vmodule value                  comma-separated list of pattern=N settings for file-filtered logging | ||||
| ``` | ||||
| 
 | ||||
| ### SEE ALSO | ||||
| 
 | ||||
| * [kubectl](kubectl.md)	 - kubectl controls the Kubernetes cluster manager | ||||
| 
 | ||||
| ###### Auto generated by spf13/cobra on 12-Aug-2016 | ||||
| ###### Auto generated by spf13/cobra on 2-Sep-2016 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -8,6 +8,7 @@ Create a resource by filename or stdin | |||
| ### Synopsis | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| Create a resource by filename or stdin. | ||||
| 
 | ||||
| JSON and YAML formats are accepted. | ||||
|  | @ -19,6 +20,7 @@ kubectl create -f FILENAME | |||
| ### Examples | ||||
| 
 | ||||
| ``` | ||||
| 
 | ||||
| # Create a pod using the data in pod.json. | ||||
| kubectl create -f ./pod.json | ||||
| 
 | ||||
|  | @ -29,53 +31,55 @@ cat pod.json | kubectl create -f - | |||
| ### Options | ||||
| 
 | ||||
| ``` | ||||
|   -f, --filename=[]: Filename, directory, or URL to file to use to create the resource | ||||
|       --include-extended-apis[=true]: If true, include definitions of new APIs via calls to the API server. [default true] | ||||
|   -o, --output="": Output mode. Use "-o name" for shorter output (resource/name). | ||||
|       --record[=false]: Record current kubectl command in the resource annotation. | ||||
|   -R, --recursive[=false]: Process the directory used in -f, --filename recursively. Useful when you want to manage related manifests organized within the same directory. | ||||
|       --save-config[=false]: If true, the configuration of current object will be saved in its annotation. This is useful when you want to perform kubectl apply on this object in the future. | ||||
|       --schema-cache-dir="~/.kube/schema": If non-empty, load/store cached API schemas in this directory, default is '$HOME/.kube/schema' | ||||
|       --validate[=true]: If true, use a schema to validate the input before sending it | ||||
|   -f, --filename value            Filename, directory, or URL to file to use to create the resource (default []) | ||||
|       --include-extended-apis     If true, include definitions of new APIs via calls to the API server. [default true] (default true) | ||||
|   -o, --output string             Output mode. Use "-o name" for shorter output (resource/name). | ||||
|       --record                    Record current kubectl command in the resource annotation. If set to false, do not record the command. If set to true, record the command. If not set, default to updating the existing annotation value only if one already exists. | ||||
|   -R, --recursive                 Process the directory used in -f, --filename recursively. Useful when you want to manage related manifests organized within the same directory. | ||||
|       --save-config               If true, the configuration of current object will be saved in its annotation. This is useful when you want to perform kubectl apply on this object in the future. | ||||
|       --schema-cache-dir string   If non-empty, load/store cached API schemas in this directory, default is '$HOME/.kube/schema' (default "~/.kube/schema") | ||||
|       --validate                  If true, use a schema to validate the input before sending it (default true) | ||||
| ``` | ||||
| 
 | ||||
| ### Options inherited from parent commands | ||||
| 
 | ||||
| ``` | ||||
|       --alsologtostderr[=false]: log to standard error as well as files | ||||
|       --as="": Username to impersonate for the operation. | ||||
|       --certificate-authority="": Path to a cert. file for the certificate authority. | ||||
|       --client-certificate="": Path to a client certificate file for TLS. | ||||
|       --client-key="": Path to a client key file for TLS. | ||||
|       --cluster="": The name of the kubeconfig cluster to use | ||||
|       --context="": The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify[=false]: If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure. | ||||
|       --kubeconfig="": Path to the kubeconfig file to use for CLI requests. | ||||
|       --log-backtrace-at=:0: when logging hits line file:N, emit a stack trace | ||||
|       --log-dir="": If non-empty, write log files in this directory | ||||
|       --log-flush-frequency=5s: Maximum number of seconds between log flushes | ||||
|       --logtostderr[=true]: log to standard error instead of files | ||||
|       --match-server-version[=false]: Require server version to match client version | ||||
|       --namespace="": If present, the namespace scope for this CLI request. | ||||
|       --password="": Password for basic authentication to the API server. | ||||
|   -s, --server="": The address and port of the Kubernetes API server | ||||
|       --stderrthreshold=2: logs at or above this threshold go to stderr | ||||
|       --token="": Bearer token for authentication to the API server. | ||||
|       --user="": The name of the kubeconfig user to use | ||||
|       --username="": Username for basic authentication to the API server. | ||||
|       --v=0: log level for V logs | ||||
|       --vmodule=: comma-separated list of pattern=N settings for file-filtered logging | ||||
|       --alsologtostderr value          log to standard error as well as files | ||||
|       --as string                      Username to impersonate for the operation | ||||
|       --certificate-authority string   Path to a cert. file for the certificate authority | ||||
|       --client-certificate string      Path to a client certificate file for TLS | ||||
|       --client-key string              Path to a client key file for TLS | ||||
|       --cluster string                 The name of the kubeconfig cluster to use | ||||
|       --context string                 The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify       If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure | ||||
|       --kubeconfig string              Path to the kubeconfig file to use for CLI requests. | ||||
|       --log-backtrace-at value         when logging hits line file:N, emit a stack trace (default :0) | ||||
|       --log-dir value                  If non-empty, write log files in this directory | ||||
|       --logtostderr value              log to standard error instead of files | ||||
|       --match-server-version           Require server version to match client version | ||||
|   -n, --namespace string               If present, the namespace scope for this CLI request | ||||
|       --password string                Password for basic authentication to the API server | ||||
|   -s, --server string                  The address and port of the Kubernetes API server | ||||
|       --stderrthreshold value          logs at or above this threshold go to stderr (default 2) | ||||
|       --token string                   Bearer token for authentication to the API server | ||||
|       --user string                    The name of the kubeconfig user to use | ||||
|       --username string                Username for basic authentication to the API server | ||||
|   -v, --v value                        log level for V logs | ||||
|       --vmodule value                  comma-separated list of pattern=N settings for file-filtered logging | ||||
| ``` | ||||
| 
 | ||||
| ### SEE ALSO | ||||
| 
 | ||||
| * [kubectl](kubectl.md)	 - kubectl controls the Kubernetes cluster manager | ||||
| * [kubectl create configmap](kubectl_create_configmap.md)	 - Create a configMap from a local file, directory or literal value. | ||||
| * [kubectl create namespace](kubectl_create_namespace.md)	 - Create a namespace with the specified name. | ||||
| * [kubectl create secret](kubectl_create_secret.md)	 - Create a secret using specified subcommand. | ||||
| * [kubectl create serviceaccount](kubectl_create_serviceaccount.md)	 - Create a service account with the specified name. | ||||
| * [kubectl create configmap](kubectl_create_configmap.md)	 - Create a configmap from a local file, directory or literal value | ||||
| * [kubectl create deployment](kubectl_create_deployment.md)	 - Create a deployment with the specified name. | ||||
| * [kubectl create namespace](kubectl_create_namespace.md)	 - Create a namespace with the specified name | ||||
| * [kubectl create quota](kubectl_create_quota.md)	 - Create a quota with the specified name. | ||||
| * [kubectl create secret](kubectl_create_secret.md)	 - Create a secret using specified subcommand | ||||
| * [kubectl create service](kubectl_create_service.md)	 - Create a service using specified subcommand. | ||||
| * [kubectl create serviceaccount](kubectl_create_serviceaccount.md)	 - Create a service account with the specified name | ||||
| 
 | ||||
| ###### Auto generated by spf13/cobra on 12-Aug-2016 | ||||
| ###### Auto generated by spf13/cobra on 2-Sep-2016 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -3,11 +3,12 @@ | |||
| 
 | ||||
| ## kubectl create configmap | ||||
| 
 | ||||
| Create a configMap from a local file, directory or literal value. | ||||
| Create a configmap from a local file, directory or literal value | ||||
| 
 | ||||
| ### Synopsis | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| Create a configmap based on a file, directory, or specified literal value. | ||||
| 
 | ||||
| A single configmap may package one or more key/value pairs. | ||||
|  | @ -27,68 +28,68 @@ kubectl create configmap NAME [--from-file=[key=]source] [--from-literal=key1=va | |||
| ### Examples | ||||
| 
 | ||||
| ``` | ||||
|   # Create a new configmap named my-config with keys for each file in folder bar | ||||
|   kubectl create configmap my-config --from-file=path/to/bar | ||||
| 
 | ||||
|   # Create a new configmap named my-config with specified keys instead of names on disk | ||||
|   kubectl create configmap my-config --from-file=key1=/path/to/bar/file1.txt --from-file=key2=/path/to/bar/file2.txt | ||||
| # Create a new configmap named my-config with keys for each file in folder bar | ||||
| kubectl create configmap my-config --from-file=path/to/bar | ||||
| 
 | ||||
|   # Create a new configMap named my-config with key1=config1 and key2=config2 | ||||
|   kubectl create configmap my-config --from-literal=key1=config1 --from-literal=key2=config2 | ||||
| # Create a new configmap named my-config with specified keys instead of names on disk | ||||
| kubectl create configmap my-config --from-file=key1=/path/to/bar/file1.txt --from-file=key2=/path/to/bar/file2.txt | ||||
| 
 | ||||
| # Create a new configmap named my-config with key1=config1 and key2=config2 | ||||
| kubectl create configmap my-config --from-literal=key1=config1 --from-literal=key2=config2 | ||||
| ``` | ||||
| 
 | ||||
| ### Options | ||||
| 
 | ||||
| ``` | ||||
|       --dry-run[=false]: If true, only print the object that would be sent, without sending it. | ||||
|       --from-file=[]: Key files can be specified using their file path, in which case a default name will be given to them, or optionally with a name and file path, in which case the given name will be used.  Specifying a directory will iterate each named file in the directory that is a valid configmap key. | ||||
|       --from-literal=[]: Specify a key and literal value to insert in configmap (i.e. mykey=somevalue) | ||||
|       --generator="configmap/v1": The name of the API generator to use. | ||||
|       --no-headers[=false]: When using the default output, don't print headers. | ||||
|   -o, --output="": Output format. One of: json|yaml|wide|name|go-template=...|go-template-file=...|jsonpath=...|jsonpath-file=... See golang template [http://golang.org/pkg/text/template/#pkg-overview] and jsonpath template [http://releases.k8s.io/release-1.3/docs/user-guide/jsonpath.md]. | ||||
|       --output-version="": Output the formatted object with the given group version (for ex: 'extensions/v1beta1'). | ||||
|       --save-config[=false]: If true, the configuration of current object will be saved in its annotation. This is useful when you want to perform kubectl apply on this object in the future. | ||||
|       --schema-cache-dir="~/.kube/schema": If non-empty, load/store cached API schemas in this directory, default is '$HOME/.kube/schema' | ||||
|   -a, --show-all[=false]: When printing, show all resources (default hide terminated pods.) | ||||
|       --show-labels[=false]: When printing, show all labels as the last column (default hide labels column) | ||||
|       --sort-by="": If non-empty, sort list types using this field specification.  The field specification is expressed as a JSONPath expression (e.g. '{.metadata.name}'). The field in the API resource specified by this JSONPath expression must be an integer or a string. | ||||
|       --template="": Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates [http://golang.org/pkg/text/template/#pkg-overview]. | ||||
|       --validate[=true]: If true, use a schema to validate the input before sending it | ||||
|       --dry-run                   If true, only print the object that would be sent, without sending it. | ||||
|       --from-file value           Key files can be specified using their file path, in which case a default name will be given to them, or optionally with a name and file path, in which case the given name will be used.  Specifying a directory will iterate each named file in the directory that is a valid configmap key. (default []) | ||||
|       --from-literal value        Specify a key and literal value to insert in configmap (i.e. mykey=somevalue) (default []) | ||||
|       --generator string          The name of the API generator to use. (default "configmap/v1") | ||||
|       --no-headers                When using the default or custom-column output format, don't print headers. | ||||
|   -o, --output string             Output format. One of: json|yaml|wide|name|custom-columns=...|custom-columns-file=...|go-template=...|go-template-file=...|jsonpath=...|jsonpath-file=... See custom columns [http://kubernetes.io/docs/user-guide/kubectl-overview/#custom-columns], golang template [http://golang.org/pkg/text/template/#pkg-overview] and jsonpath template [http://kubernetes.io/docs/user-guide/jsonpath]. | ||||
|       --output-version string     Output the formatted object with the given group version (for ex: 'extensions/v1beta1'). | ||||
|       --save-config               If true, the configuration of current object will be saved in its annotation. This is useful when you want to perform kubectl apply on this object in the future. | ||||
|       --schema-cache-dir string   If non-empty, load/store cached API schemas in this directory, default is '$HOME/.kube/schema' (default "~/.kube/schema") | ||||
|   -a, --show-all                  When printing, show all resources (default hide terminated pods.) | ||||
|       --show-labels               When printing, show all labels as the last column (default hide labels column) | ||||
|       --sort-by string            If non-empty, sort list types using this field specification.  The field specification is expressed as a JSONPath expression (e.g. '{.metadata.name}'). The field in the API resource specified by this JSONPath expression must be an integer or a string. | ||||
|       --template string           Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates [http://golang.org/pkg/text/template/#pkg-overview]. | ||||
|       --validate                  If true, use a schema to validate the input before sending it (default true) | ||||
| ``` | ||||
| 
 | ||||
| ### Options inherited from parent commands | ||||
| 
 | ||||
| ``` | ||||
|       --alsologtostderr[=false]: log to standard error as well as files | ||||
|       --as="": Username to impersonate for the operation. | ||||
|       --certificate-authority="": Path to a cert. file for the certificate authority. | ||||
|       --client-certificate="": Path to a client certificate file for TLS. | ||||
|       --client-key="": Path to a client key file for TLS. | ||||
|       --cluster="": The name of the kubeconfig cluster to use | ||||
|       --context="": The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify[=false]: If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure. | ||||
|       --kubeconfig="": Path to the kubeconfig file to use for CLI requests. | ||||
|       --log-backtrace-at=:0: when logging hits line file:N, emit a stack trace | ||||
|       --log-dir="": If non-empty, write log files in this directory | ||||
|       --log-flush-frequency=5s: Maximum number of seconds between log flushes | ||||
|       --logtostderr[=true]: log to standard error instead of files | ||||
|       --match-server-version[=false]: Require server version to match client version | ||||
|       --namespace="": If present, the namespace scope for this CLI request. | ||||
|       --password="": Password for basic authentication to the API server. | ||||
|   -s, --server="": The address and port of the Kubernetes API server | ||||
|       --stderrthreshold=2: logs at or above this threshold go to stderr | ||||
|       --token="": Bearer token for authentication to the API server. | ||||
|       --user="": The name of the kubeconfig user to use | ||||
|       --username="": Username for basic authentication to the API server. | ||||
|       --v=0: log level for V logs | ||||
|       --vmodule=: comma-separated list of pattern=N settings for file-filtered logging | ||||
|       --alsologtostderr value          log to standard error as well as files | ||||
|       --as string                      Username to impersonate for the operation | ||||
|       --certificate-authority string   Path to a cert. file for the certificate authority | ||||
|       --client-certificate string      Path to a client certificate file for TLS | ||||
|       --client-key string              Path to a client key file for TLS | ||||
|       --cluster string                 The name of the kubeconfig cluster to use | ||||
|       --context string                 The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify       If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure | ||||
|       --kubeconfig string              Path to the kubeconfig file to use for CLI requests. | ||||
|       --log-backtrace-at value         when logging hits line file:N, emit a stack trace (default :0) | ||||
|       --log-dir value                  If non-empty, write log files in this directory | ||||
|       --logtostderr value              log to standard error instead of files | ||||
|       --match-server-version           Require server version to match client version | ||||
|   -n, --namespace string               If present, the namespace scope for this CLI request | ||||
|       --password string                Password for basic authentication to the API server | ||||
|   -s, --server string                  The address and port of the Kubernetes API server | ||||
|       --stderrthreshold value          logs at or above this threshold go to stderr (default 2) | ||||
|       --token string                   Bearer token for authentication to the API server | ||||
|       --user string                    The name of the kubeconfig user to use | ||||
|       --username string                Username for basic authentication to the API server | ||||
|   -v, --v value                        log level for V logs | ||||
|       --vmodule value                  comma-separated list of pattern=N settings for file-filtered logging | ||||
| ``` | ||||
| 
 | ||||
| ### SEE ALSO | ||||
| 
 | ||||
| * [kubectl create](kubectl_create.md)	 - Create a resource by filename or stdin | ||||
| 
 | ||||
| ###### Auto generated by spf13/cobra on 12-Aug-2016 | ||||
| ###### Auto generated by spf13/cobra on 2-Sep-2016 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -0,0 +1,83 @@ | |||
| --- | ||||
| --- | ||||
| 
 | ||||
| ## kubectl create deployment | ||||
| 
 | ||||
| Create a deployment with the specified name. | ||||
| 
 | ||||
| ### Synopsis | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| Create a deployment with the specified name. | ||||
| 
 | ||||
| ``` | ||||
| kubectl create deployment NAME --image=image [--dry-run] | ||||
| ``` | ||||
| 
 | ||||
| ### Examples | ||||
| 
 | ||||
| ``` | ||||
| 
 | ||||
| # Create a new deployment named my-dep that runs the busybox image. | ||||
| kubectl create deployment my-dep --image=busybox | ||||
| ``` | ||||
| 
 | ||||
| ### Options | ||||
| 
 | ||||
| ``` | ||||
|       --dry-run                   If true, only print the object that would be sent, without sending it. | ||||
|       --generator string          The name of the API generator to use. (default "deployment-basic/v1beta1") | ||||
|       --image value               Image name to run. (default []) | ||||
|       --no-headers                When using the default or custom-column output format, don't print headers. | ||||
|   -o, --output string             Output format. One of: json|yaml|wide|name|custom-columns=...|custom-columns-file=...|go-template=...|go-template-file=...|jsonpath=...|jsonpath-file=... See custom columns [http://kubernetes.io/docs/user-guide/kubectl-overview/#custom-columns], golang template [http://golang.org/pkg/text/template/#pkg-overview] and jsonpath template [http://kubernetes.io/docs/user-guide/jsonpath]. | ||||
|       --output-version string     Output the formatted object with the given group version (for ex: 'extensions/v1beta1'). | ||||
|       --save-config               If true, the configuration of current object will be saved in its annotation. This is useful when you want to perform kubectl apply on this object in the future. | ||||
|       --schema-cache-dir string   If non-empty, load/store cached API schemas in this directory, default is '$HOME/.kube/schema' (default "~/.kube/schema") | ||||
|   -a, --show-all                  When printing, show all resources (default hide terminated pods.) | ||||
|       --show-labels               When printing, show all labels as the last column (default hide labels column) | ||||
|       --sort-by string            If non-empty, sort list types using this field specification.  The field specification is expressed as a JSONPath expression (e.g. '{.metadata.name}'). The field in the API resource specified by this JSONPath expression must be an integer or a string. | ||||
|       --template string           Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates [http://golang.org/pkg/text/template/#pkg-overview]. | ||||
|       --validate                  If true, use a schema to validate the input before sending it (default true) | ||||
| ``` | ||||
| 
 | ||||
| ### Options inherited from parent commands | ||||
| 
 | ||||
| ``` | ||||
|       --alsologtostderr value          log to standard error as well as files | ||||
|       --as string                      Username to impersonate for the operation | ||||
|       --certificate-authority string   Path to a cert. file for the certificate authority | ||||
|       --client-certificate string      Path to a client certificate file for TLS | ||||
|       --client-key string              Path to a client key file for TLS | ||||
|       --cluster string                 The name of the kubeconfig cluster to use | ||||
|       --context string                 The name of the kubeconfig context to use | ||||
|       --insecure-skip-tls-verify       If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure | ||||
|       --kubeconfig string              Path to the kubeconfig file to use for CLI requests. | ||||
|       --log-backtrace-at value         when logging hits line file:N, emit a stack trace (default :0) | ||||
|       --log-dir value                  If non-empty, write log files in this directory | ||||
|       --logtostderr value              log to standard error instead of files | ||||
|       --match-server-version           Require server version to match client version | ||||
|   -n, --namespace string               If present, the namespace scope for this CLI request | ||||
|       --password string                Password for basic authentication to the API server | ||||
|   -s, --server string                  The address and port of the Kubernetes API server | ||||
|       --stderrthreshold value          logs at or above this threshold go to stderr (default 2) | ||||
|       --token string                   Bearer token for authentication to the API server | ||||
|       --user string                    The name of the kubeconfig user to use | ||||
|       --username string                Username for basic authentication to the API server | ||||
|   -v, --v value                        log level for V logs | ||||
|       --vmodule value                  comma-separated list of pattern=N settings for file-filtered logging | ||||
| ``` | ||||
| 
 | ||||
| ### SEE ALSO | ||||
| 
 | ||||
| * [kubectl create](kubectl_create.md)	 - Create a resource by filename or stdin | ||||
| 
 | ||||
| ###### Auto generated by spf13/cobra on 2-Sep-2016 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| <!-- BEGIN MUNGE: GENERATED_ANALYTICS --> | ||||
| []() | ||||
| <!-- END MUNGE: GENERATED_ANALYTICS --> | ||||
Some files were not shown because too many files have changed in this diff Show More
		Loading…
	
		Reference in New Issue