Deployment [page]deterministic
Deployment enables declarative updates for Pods and ReplicaSets.
`apiVersion: apps/v1`
`import "k8s.io/api/apps/v1"`
## Deployment {#Deployment}
Deployment enables declarative updates for Pods and ReplicaSets.
<hr>
<table> <thead><tr><th>Field</th><th>Description</th></tr></thead> <tbody> <tr> <td><code>apiVersion</code><br/><em>string</em></td> <td>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: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources</td> </tr> <tr> <td><code>kind</code><br/><em>string</em></td> <td>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: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds</td> </tr> <tr> <td><code>metadata</code><br/><em><a href="">ObjectMeta</a></em></td> <td>Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata</td> </tr> <tr> <td><code>spec</code><br/><em><a href="">DeploymentSpec</a></em></td> <td>Specification of the desired behavior of the Deployment.</td> </tr> <tr> <td><code>status</code><br/><em><a href="">DeploymentStatus</a></em></td> <td>Most recently observed status of the Deployment.</td> </tr> </tbody> </table>
## DeploymentSpec {#DeploymentSpec}
DeploymentSpec is the specification of the desired behavior of the Deployment.
<hr>
<table> <thead><tr><th>Field</th><th>Description</th></tr></thead> <tbody> <tr> <td><code>minReadySeconds</code><br/><em>integer</em></td> <td>Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)</td> </tr> <tr> <td><code>paused</code><br/><em>boolean</em></td> <td>Indicates that the deployment is paused.</td> </tr> <tr> <td><code>progressDeadlineSeconds</code><br/><em>integer</em></td> <td>The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s.</td> </tr> <tr> <td><code>replicas</code><br/><em>integer</em></td> <td>Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.</td> </tr> <tr> <td><code>revisionHistoryLimit</code><br/><em>integer</em></td> <td>The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.</td> </tr> <tr> <td><code>selector</code> <strong>*</strong><br/><em><a href="">LabelSelector</a></em></td> <td>Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment. It must match the pod template's labels.</td> </tr> <tr> <td><code>strategy</code><br/><em><a href="">DeploymentStrategy</a></em><br/><em>patch strategy: retainKeys</em></td> <td>The deployment strategy to use to replace existing pods with new ones.</td> </tr> <tr> <td><code>strategy.rollingUpdate</code><br/><em><a href="">RollingUpdateDeployment</a></em></td> <td>Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.</td> </tr> <tr> <td><code>strategy.rollingUpdate.maxSurge</code><br/><em> …(trimmed)