cri-o
Files
SKILL.mdagentsreferences
Install
Install the containing plugin
/plugin install ci-cd@llm-skills
Invoke this skill after installation
/ci-cd:cri-o
This skill is bundled inside ci-cd. Install the plugin once, then Claude Code can use any of its included skills. Browse the full plugin repository at github.com/alisonaquinas/llm-ci-dev.
SKILL.md
name: cri-o description: Configure and debug CRI-O as a Kubernetes container runtime with crictl. Use when tasks mention cri-o, CRI-O, crictl, /etc/crio/crio.conf, CRI-O container runtime, or configuring Kubernetes with CRI-O.
CRI-O
Use this skill to configure and debug CRI-O as a Kubernetes container runtime using crictl and crio.conf.
Quick Start
- Set
CONTAINER_RUNTIME_ENDPOINT=unix:///var/run/crio/crio.sockbefore usingcrictl. - Run
crictl infoto verify CRI-O is running and reachable. - Use
crictl podsandcrictl psto inspect pods and containers. - Back up
/etc/crio/crio.confbefore making any configuration changes.
Intent Router
references/install-and-setup.md— install CRI-O, crictl, OCI runtime, CNI pluginsreferences/command-cookbook.md— crictl pods/ps/images/exec/logs/inspect/stats commandsreferences/crio-configuration.md— crio.conf structure, runtime table, image config, log configreferences/kubernetes-integration.md— kubelet CRI socket, CNI config, OCI runtime selection, GC tuning
Workflow
Inspect Running Pods and Containers
# List all pod sandboxes
crictl pods
# List all containers
crictl ps
# Exec into a container
crictl exec -it <container-id> sh
# View container logs
crictl logs <container-id>
Reload Configuration
# Back up config first
sudo cp /etc/crio/crio.conf /etc/crio/crio.conf.bak
# Edit configuration
sudo vi /etc/crio/crio.conf
# Reload without restarting (for supported settings)
sudo systemctl reload crio
Debug a Failed Pod
crictl pods --name failing-pod
crictl inspect <container-id>
crictl inspectp <pod-id>
crictl logs <container-id>
Safety Guardrails
- Always set
CONTAINER_RUNTIME_ENDPOINT=unix:///var/run/crio/crio.sockor configure/etc/crictl.yamlbefore usingcrictlto ensure commands target CRI-O. - Use
crictlonly for read-only inspection in production — avoidcrictl runporcrictl rmpon live Kubernetes nodes as it bypasses kubelet. - Back up
/etc/crio/crio.confbefore modifying; invalid TOML syntax prevents CRI-O from starting and breaks the Kubernetes node. - Use
systemctl reload criofor configuration changes that support live reload; usesystemctl restart crioonly when necessary as it briefly disrupts running containers. - Verify CRI-O version compatibility with the Kubernetes version before upgrading either component.
- When changing the OCI runtime (e.g., from runc to crun), test on a non-production node first.
- Ensure
cgroup_managerin crio.conf matches the kubelet--cgroup-driversetting; mismatch causes pod creation failures.
Related Skills
containerd, podman, kubectl