> ## Documentation Index
> Fetch the complete documentation index at: https://docs.idyl.network/llms.txt
> Use this file to discover all available pages before exploring further.

# Pod specs and containers

> How workloads define containers, resources, and host requirements.

A pod spec defines the containers and pod-level requirements for runnable work.

Deployments, jobs, cron jobs, pods, and replica sets all use pod specs. The path differs by workload type, but the container and requirement model is shared.

## Containers

A container spec defines the image and process to run.

Common container settings include:

* `imageURI` for the container image.
* `imageDigest` when an image digest should be pinned.
* `imagePullPolicy` for pull behavior.
* `command` and `args` to override image defaults.
* `env` for environment variables.
* `resources.requests` and `resources.limits` for CPU, memory, and disk.

## Requests and limits

IDYL uses resource requests for placement.

If a request is omitted for a resource but a limit is present for the same resource, the limit is used as the effective request for placement.

## GPU requirements

GPU requirements belong on the pod spec as `gpu`.

GPU is a host device requirement for the pod, not a per-container setting. All containers in the pod share the pod-level GPU access.

```yaml theme={null}
spec:
  gpu: nvidia:24Gi
```

## Host requirements

Use `require` when a workload needs host capabilities beyond CPU, memory, disk, or GPU selection.

```yaml theme={null}
require:
  cuda: ">=13.0"
```

## Related resources

* [Workloads](/resources/workloads)
* [Resource manifest reference](/resources/reference/generated)
