Skip to content
Latchkey

podman kube play: Run Kubernetes YAML Locally

podman kube play reads a Kubernetes YAML and creates the equivalent Podman pods and containers locally.

podman kube play (formerly podman play kube) lets a CI job run a Kubernetes manifest without a cluster, handy for testing the same YAML you deploy.

What it does

podman kube play parses a Kubernetes Pod, Deployment, or related manifest and creates matching Podman pods and containers. podman kube down tears them back down. It is the bridge between Podman and Kubernetes-style YAML.

Common usage

Terminal
podman kube play app.yaml
podman kube play --build app.yaml
podman kube down app.yaml
# generate a manifest from a running pod
podman kube generate mypod > app.yaml

Options

Command/FlagWhat it does
kube play <file>Create pods/containers from the YAML
kube down <file>Remove what the YAML created
--buildBuild images referenced in the manifest
--replaceReplace existing pods with the same name
--network <name>Attach the pod to a named network

In CI

Use podman kube play to smoke-test a deployment manifest in a pipeline before it reaches a cluster. Note Podman supports a subset of Kubernetes fields, so a manifest that runs here is not a guarantee it is fully valid for a real cluster.

Common errors in CI

"Error: short-name ... no resolution" appears when container images in the YAML are unqualified; fully qualify them. "Error: unsupported Kubernetes kind" means the manifest uses a kind Podman does not implement. "pod ... already exists" on a re-run is cleared with --replace or a prior podman kube down. Image pulls still need podman login for private registries.

Related guides

Run this faster and cheaper on Latchkey managed runners. Start free →