diff --git a/docs/user-guide/deployments.md b/docs/user-guide/deployments.md index 3951248c54..e42782d190 100644 --- a/docs/user-guide/deployments.md +++ b/docs/user-guide/deployments.md @@ -432,6 +432,12 @@ The `.spec.template` is a [pod template](/docs/user-guide/replication-controller the same schema as a [Pod](/docs/user-guide/pods), except it is nested and does not have an `apiVersion` or `kind`. +In addition to required fields for a Pod, a pod template in a Deployment must specify appropriate +labels (i.e. don't overlap with other controllers, see [selector](#selector)) and an appropriate restart policy. + +Only a [`.spec.template.spec.restartPolicy`](/docs/user-guide/pod-states/) equal to `Always` is allowed, which is the default +if not specified. + ### Replicas `.spec.replicas` is an optional field that specifies the number of desired Pods. It defaults @@ -439,8 +445,14 @@ to 1. ### Selector -`.spec.selector` is an optional field that specifies label selectors for Pods -targeted by this deployment. Deployment kills some of these Pods, if their +`.spec.selector` is an optional field that specifies a [label selector](/docs/user-guide/labels/#label-selectors) for the Pods +targeted by this deployment. + +If specified, `.spec.selector` must match `.spec.template.metadata.labels`, or it will +be rejected by the API. If `.spec.selector` is unspecified, `.spec.selector.matchLabels` will be defaulted to +`.spec.template.metadata.labels`. + +Deployment may kill Pods whose labels match the selector, in the case that their template is different than `.spec.template` or if the total number of such Pods exceeds `.spec.replicas`. It will bring up new Pods with `.spec.template` if number of Pods are less than the desired number. diff --git a/docs/user-guide/labels.md b/docs/user-guide/labels.md index 86df0df9af..4ffc415f05 100644 --- a/docs/user-guide/labels.md +++ b/docs/user-guide/labels.md @@ -54,6 +54,8 @@ An empty label selector (that is, one with zero requirements) selects every obje A null label selector (which is only possible for optional selector fields) selects no objects. +**Note**: the label selectors of two controllers must not overlap within a namespace, otherwise they will fight with each other. + ### _Equality-based_ requirement _Equality-_ or _inequality-based_ requirements allow filtering by label keys and values. Matching objects must satisfy all of the specified label constraints, though they may have additional labels as well. @@ -147,9 +149,9 @@ selector: this selector (respectively in `json` or `yaml` format) is equivalent to `component=redis` or `component in (redis)`. -#### Job and other new resources +#### Resources that support set-based requirements -Newer resources, such as [job](/docs/user-guide/jobs), support _set-based_ requirements as well. +Newer resources, such as [`Job`](/docs/user-guide/jobs), [`Deployment`](/docs/user-guide/deployments/), [`Replica Set`](/docs/user-guide/replicasets/), and [`Daemon Set`](/docs/admin/daemons/), support _set-based_ requirements as well. ```yaml selector: diff --git a/docs/user-guide/replication-controller/index.md b/docs/user-guide/replication-controller/index.md index 49e393fe4f..9dbf4f3a93 100644 --- a/docs/user-guide/replication-controller/index.md +++ b/docs/user-guide/replication-controller/index.md @@ -96,10 +96,10 @@ The `.spec.template` is a [pod template](#pod-template). It has exactly the same schema as a [pod](/docs/user-guide/pods/), except it is nested and does not have an `apiVersion` or `kind`. -In addition to required fields for a Pod, a pod template in a job must specify appropriate -labels (see [pod selector](#pod-selector) and an appropriate restart policy. +In addition to required fields for a Pod, a pod template in a Replication Controller must specify appropriate +labels (i.e. don't overlap with other controllers, see [pod selector](#pod-selector)) and an appropriate restart policy. -Only a [`RestartPolicy`](/docs/user-guide/pod-states/) equal to `Always` is allowed, which is the default +Only a [`.spec.template.spec.restartPolicy`](/docs/user-guide/pod-states/) equal to `Always` is allowed, which is the default if not specified. For local container restarts, replication controllers delegate to an agent on the node,