// Module included in the following assemblies:
//
// * applications/deployments/managing-deployment-processes.adoc

[id="deployments-setting-resources_{context}"]
= Setting deployment resources

[NOTE]
====
This resource is available only if a cluster administrator has enabled the
ephemeral storage technology preview. This feature is disabled by default.
====

A deployment is completed by a Pod that consumes resources (memory, CPU, and
ephemeral storage) on a node. By default, pods consume unbounded node resources.
However, if a project specifies default container limits, then pods consume
resources up to those limits.

You can also limit resource use by specifying resource limits as part of the
deployment strategy. Deployment resources can be used with the Recreate,
Rolling, or Custom deployment strategies.

.Procedure

. In the following example, each of `resources`, `cpu`, `memory`, and
`ephemeral-storage` is optional:
+
[source,yaml]
----
type: "Recreate"
resources:
  limits:
    cpu: "100m" <1>
    memory: "256Mi" <2>
    ephemeral-storage: "1Gi" <3>
----
<1> `cpu` is in CPU units: `100m` represents 0.1 CPU units (100 * 1e-3).
<2> `memory` is in bytes: `256Mi` represents 268435456 bytes (256 * 2 ^ 20).
<3> `ephemeral-storage` is in bytes: `1Gi` represents 1073741824 bytes (2 ^ 30).
This applies only if your cluster administrator enabled the ephemeral storage
technology preview.
+
However, if a quota has been defined for your project, one of the following two
items is required:
+
--
- A `resources` section set with an explicit `requests`:
+
[source,yaml]
----
  type: "Recreate"
  resources:
    requests: <1>
      cpu: "100m"
      memory: "256Mi"
      ephemeral-storage: "1Gi"
----
<1> The `requests` object contains the list of resources that correspond to
the list of resources in the quota.

- A limit range defined in your project, where the defaults from the `LimitRange`
object apply to pods created during the deployment process.
--
+
To set deployment resources, choose one of the above options. Otherwise, deploy
Pod creation fails, citing a failure to satisfy quota.
