Skip to content

Prep and fixes - #55

Open
zmc wants to merge 9 commits into
mainfrom
stacks-0-prereqs
Open

zmc wants to merge 9 commits into
mainfrom
stacks-0-prereqs

Conversation

@zmc

@zmc zmc commented Oct 21, 2026 •

Copy link
Copy Markdown
Member

Small fixes and improvements that stand on their own that the rest of the configurable stacks PRs build on.

The README fix is needed because main fails pre-commit without it. The last four came out of running orch:cephadm:smoke-small on a CentOS 9 host with podman 5.8.5 and crun 1.29.1: nested containers need /proc unmasked, four concurrent jobs exhaust the default keyring quota, and a stopped teuthology container kept a stale SSH agent socket and TEUTHOLOGY_* settings.

Each commit applies to main on its own and passes unit tests and pre-commit run --all-files.

Testing

orch:cephadm:smoke-small 4/4 passed on folio12 with these changes and the stock main build (d42b952); without them, all four jobs failed.

zmc added 9 commits October 21, 2026 14:25
cmd(check=True) raised CalledProcessError with none of the command's
output, which made failures hard to diagnose. Log stdout and stderr on
failure, and attach them to the exception.

Signed-off-by: Zack Cerza <zack@cerza.org>
podman machine ssh joins its arguments into one remote shell line, so
an argument like a bash -c script was split into words. Quote each one.

Signed-off-by: Zack Cerza <zack@cerza.org>
doctor only checked that a ceph_devstack module was loaded, so an
outdated one went unnoticed and could block containers. Compare the
installed module's hash with the shipped ceph_devstack.pp, falling back
to the presence check if the installed one can't be extracted.

Signed-off-by: Zack Cerza <zack@cerza.org>
Every nested container gets a session keyring charged to the rootless
user. The default quota (200 keys, 20000 bytes) ran out with four
concurrent orch:cephadm:smoke-small jobs, failing cephadm commands at
random with "crun: join keyctl ...: Disk quota exceeded". Require
kernel.keys.maxkeys >= 20000 and kernel.keys.maxbytes >= 2000000.

Signed-off-by: Zack Cerza <zack@cerza.org>
cephadm reads device properties from the udev database. Mount it
read-only, and allow that in the SELinux policy.

Signed-off-by: Zack Cerza <zack@cerza.org>
With podman 5.8 and crun 1.29 on the host, containers that cephadm
started inside a testnode failed with "crun: mount `tmpfs` to
`proc/acpi`: Permission denied". Unmasking /proc in the testnode lets
nested containers mask it themselves.

Signed-off-by: Zack Cerza <zack@cerza.org>
The teuthology container keeps the environment it was created with, so
a later start ignored a newly exported TEUTHOLOGY_SUITE, and failed
outright if the SSH agent socket it mounted was gone (as when create and
start run in different SSH sessions):

  crun: cannot stat `/tmp/ssh-XXXX.../agent.NNN`: No such file or directory

A stopped teuthology container holds nothing the archive doesn't, so
replace it unless it is running. Also check for the agent socket on the
container host rather than the local machine.

Signed-off-by: Zack Cerza <zack@cerza.org>
Teuthology is expected to exit when its run completes, so watch mode
should not restart it.

Signed-off-by: Zack Cerza <zack@cerza.org>
@zmc
zmc added this pull request to stack #57 October 21, 2026 22:18

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant