-
Notifications
You must be signed in to change notification settings - Fork 14.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Updated Deployments concepts doc #5491
Changes from 2 commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -288,6 +288,8 @@ It is generally discouraged to make label selector updates and it is suggested t | |
In any case, if you need to perform a label selector update, exercise great caution and make sure you have grasped | ||
all of the implications. | ||
|
||
Note that in API version `apps/v1beta2`, a Deployment's label selector is immutable after it gets created. | ||
|
||
* Selector additions require the pod template labels in the Deployment spec to be updated with the new label too, | ||
otherwise a validation error is returned. This change is a non-overlapping one, meaning that the new selector does | ||
not select ReplicaSets and Pods created with the old selector, resulting in orphaning all old ReplicaSets and | ||
|
@@ -850,9 +852,9 @@ allowed, which is the default if not specified. | |
`.spec.selector` is an optional field that specifies a [label selector](/docs/concepts/overview/working-with-objects/labels/) | ||
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` defaults to | ||
`.spec.template.metadata.labels`. | ||
`.spec.selector` must match `.spec.template.metadata.labels`, or it will be rejected by the API. | ||
|
||
In API version `apps/v1beta2`, `.spec.selector` and `.metadata.labels` no longer default to `.spec.template.metadata.labels` if not set. So they must be set explicitly. Also note that `.spec.selector` is immutable after creation of the Deployment in `apps/v1beta2`. | ||
|
||
A Deployment may terminate Pods whose labels match the selector if their template is different | ||
from `.spec.template` or if the total number of such Pods exceeds `.spec.replicas`. It brings up new | ||
|
@@ -926,20 +928,7 @@ a Pod is considered ready, see [Container Probes](/docs/concepts/workloads/pods/ | |
|
||
### Rollback To | ||
|
||
`.spec.rollbackTo` is an optional field with the configuration the Deployment | ||
should roll back to. Setting this field triggers a rollback, and this field will | ||
be cleared by the server after a rollback is done. | ||
|
||
Because this field will be cleared by the server, it should not be used | ||
declaratively. For example, you should not perform `kubectl apply` with a | ||
manifest with `.spec.rollbackTo` field set. | ||
|
||
#### Revision | ||
|
||
`.spec.rollbackTo.revision` is an optional field specifying the revision to roll | ||
back to. Setting to 0 means rolling back to the last revision in history; | ||
otherwise, means rolling back to the specified revision. This defaults to 0 when | ||
[`spec.rollbackTo`](#rollback-to) is set. | ||
Field `.spec.rollbackTo` has been deprecated in API versions `extensions/v1beta1` and `apps/v1beta1`, and removed in API version `apps/v1beta2`. Instead, `kubectl rollout undo` as introduced in [Rolling Back to a Previous Revision](#rolling-back-to-a-previous-revision) should be used. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. More precisely, these fields aren't "removed", because There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Done. |
||
|
||
### Revision History Limit | ||
|
||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,14 @@ | ||
apiVersion: apps/v1beta1 # for versions before 1.6.0 use extensions/v1beta1 | ||
apiVersion: apps/v1beta2 # for versions before 1.7.0 use apps/v1beta1 | ||
kind: Deployment | ||
metadata: | ||
name: nginx-deployment | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. API version should be changed to There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Done. |
||
labels: | ||
app: nginx | ||
spec: | ||
replicas: 3 | ||
selector: | ||
matchLabels: | ||
app: nginx | ||
template: | ||
metadata: | ||
labels: | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Write notes with the following format:
Note: In API version ... {: .note}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done.