Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions candy/layer-nerdctl/.agents/skills/layer-nerdctl/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
---
name: layer-nerdctl
description: 'nerdctl (containerd CLI) + the rootless containerd/buildkit/CNI stack
— native Arch/Alpine packages, the pinned sha256 nerdctl-full tarball on Fedora/Debian/Ubuntu,
nerdctl.toml + the charly CNI conflist + the nested-pod posture. Use when working
with the nerdctl engine, the layer-nerdctl candy, or engine: nerdctl deploys.'
---

# layer-nerdctl

nerdctl (the containerd CLI) plus the rootless containerd + buildkit + CNI
stack, as ONE candy. Composed by a box that wants the opt-in `engine: nerdctl`
engine.

## What it installs

- **Native packages** on Arch/CachyOS/Omarchy and Alpine: `nerdctl`,
`cni-plugins`, `rootlesskit`, `slirp4netns`, `buildkit`, `fuse-overlayfs`,
`crun`, `iptables-nft` (arch) / `iptables` (alpine).
- **Non-native distros** (Fedora/Debian/Ubuntu) install the pinned,
sha256-verified `nerdctl-full` tarball (step `nerdctl-full-tarball`), which
supplies nerdctl + containerd + `containerd-fuse-overlayfs-grpc` + CNI +
buildkit + rootlesskit in one archive.
- `/etc/nerdctl/nerdctl.toml` (charly namespace + CNI path) and
the `charly` CNI network conflist at `/etc/cni/net.d/charly.conflist`.
- The **nested-pod posture**: userns-scoped `cap_add: ALL`, `/dev/fuse`,
`/dev/net/tun`, `unmask=/proc/*`.

## Engine capability

The `engine: nerdctl` word is served by `opencharly/plugin-nerdctl`
(out-of-process) or compiled in; every engine op delegates to
`container.InvokeEngineOp("nerdctl", …)` in the spec module. nerdctl has no
`--keep-id`, so the start-plan runs the workload as `--user 0:0` (uid 0 == the
host user under rootless), guaranteeing uid-identical sharing; a non-zero uid
needs the subuid caveat.

## Use when

Working with the nerdctl engine, the layer-nerdctl candy, or an
`engine: nerdctl` deploy.
35 changes: 0 additions & 35 deletions candy/layer-nerdctl/charly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -142,38 +142,3 @@ layer-nerdctl-skill:
family: distros
owner: layer-nerdctl
description: "nerdctl (containerd CLI) + the rootless containerd/buildkit/CNI stack — native Arch/Alpine packages, the pinned sha256 nerdctl-full tarball on Fedora/Debian/Ubuntu, nerdctl.toml + the charly CNI conflist + the nested-pod posture. Use when working with the nerdctl engine, the layer-nerdctl candy, or engine: nerdctl deploys."
content: |
# layer-nerdctl

nerdctl (the containerd CLI) plus the rootless containerd + buildkit + CNI
stack, as ONE candy. Composed by a box that wants the opt-in `engine: nerdctl`
engine.

## What it installs

- **Native packages** on Arch/CachyOS/Omarchy and Alpine: `nerdctl`,
`cni-plugins`, `rootlesskit`, `slirp4netns`, `buildkit`, `fuse-overlayfs`,
`crun`, `iptables-nft` (arch) / `iptables` (alpine).
- **Non-native distros** (Fedora/Debian/Ubuntu) install the pinned,
sha256-verified `nerdctl-full` tarball (step `nerdctl-full-tarball`), which
supplies nerdctl + containerd + `containerd-fuse-overlayfs-grpc` + CNI +
buildkit + rootlesskit in one archive.
- `/etc/nerdctl/nerdctl.toml` (charly namespace + CNI path) and
the `charly` CNI network conflist at `/etc/cni/net.d/charly.conflist`.
- The **nested-pod posture**: userns-scoped `cap_add: ALL`, `/dev/fuse`,
`/dev/net/tun`, `unmask=/proc/*`.

## Engine capability

The `engine: nerdctl` word is served by `opencharly/plugin-nerdctl`
(out-of-process) or compiled in; every engine op delegates to
`container.InvokeEngineOp("nerdctl", …)` in the spec module. nerdctl has no
`--keep-id`, so the start-plan runs the workload as `--user 0:0` (uid 0 == the
host user under rootless), guaranteeing uid-identical sharing; a non-zero uid
needs the subuid caveat.

## Use when

Working with the nerdctl engine, the layer-nerdctl candy, or an
`engine: nerdctl` deploy.

Loading