-
Notifications
You must be signed in to change notification settings - Fork 0
Troubleshooting
The failures you are most likely to hit, with the actual fix.
# go.podman.io/storage/drivers/btrfs
fatal error: btrfs/version.h: No such file or directory
# github.com/proglottis/gpgme
Package gpgme was not found in the pkg-config search path.
You built without the tags. Use make build, or pass
-tags "containers_image_openpgp exclude_graphdriver_btrfs exclude_graphdriver_devicemapper".
Full rationale in Building.
You combined the tag set with integration using a comma. The tag list can't
mix spaces and commas — append with a space:
-tags "$(TAGS) integration".
The runner runs the job inside a container, and actions/checkout/actions/cache
are JavaScript actions needing a node binary the base image doesn't ship.
Install nodejs in a run: step before any uses: step (run steps use the
shell, not node).
runs-on: names a label no registered runner carries. This instance's runner is
labelled self-hosted.
The podman-in-podman job needs a privileged container for nested podman
(storage + play kube hostPort networking). If the runner forbids privileged
jobs, that has to be allowed in the runner config — it can't be fixed in the
workflow.
The registry was unreachable (or the tag doesn't exist) during the mandatory
pre-pull. The message is the registry's own. No secret or pod is created — fix
the image ref / registry and retry. ?skip_pull=true bypasses the pre-pull only
when the image is already local.
The store is always on, but -spec-key-file is optional and gates secrets
only. A deploy that carries secret material (or a PUT …/secrets that tries to
persist) is refused when the daemon was started without a key — there is
nothing to seal the secret at rest with. Either start the daemon with
-spec-key-file=/etc/podman-api/spec.key, or deploy without secrets. Templates
and no-secret deploys work key-less. See Operating → The state store.
-state-db is a location (default /var/lib/podman-api/state.db) and the
store is always opened. The daemon creates the parent directory, but a non-root
run pointed at the privileged default path gets a permission error. Point
-state-db at a writable path, or run as a user that owns
/var/lib/podman-api/ (the bundled installer's podman-api user does). See
Provisioning-a-Podman-Host § 8.
DELETE keeps per-instance secrets unless you pass ?prune_secrets=true (and
?prune_volumes=true for volumes). To reap an already-orphaned secret, call
DELETE ...?prune_secrets=true&prune_volumes=true again — delete is an
idempotent reconcile and will remove orphans even though the pod is gone. Or use
the per-resource endpoints: DELETE /hosts/{host}/secrets/{name} and
DELETE /hosts/{host}/volumes/{name}.
-
unknown host→ nohosts/<id>.yamlwith thatid, or it didn't load. Check-hosts-dir. - SSH/tunnel errors → wrong
addr, wrongssh_key, the key isn't authorised on the target, or thesocketpath is wrong. Verify withssh <addr> trueand check the socket path is/run/user/<uid>/podman/podman.sock. See Provisioning a Podman Host.
The target (or your local dev box) lacks the pause binary podman uses for the
pod infra container. Install it: sudo dnf install -y catatonit (AlmaLinux/Rocky).
The quay.io/podman/stable CI image already includes it.
No. On SIGHUP, a parse error or an empty key list is logged and the
previous list stays live. Fix the file and reload again. See Operating.