From c93e7ede8e940989d96cd9dbd3a4d7f873731a06 Mon Sep 17 00:00:00 2001 From: Roger Luethi Date: Sun, 21 Jun 2026 18:45:22 +0200 Subject: [PATCH 1/2] deploy-guide: document the seed container The seed container (registry.osism.tech/osism/seed) has so far been undocumented; the deploy guide only described installing the required packages on the seed node by hand. Document the container as the first option, requiring nothing but Docker (or Podman) on the seed node, and keep the manual package installation as the second option. The seed image is published as a rolling latest tag and rebuilt nightly from the OSISM collections' main branches; there are no versioned tags. Point to this maintained location -- quay.io/osism/seed has not been updated since 2025-02-17 and must no longer be used. Assisted-by: Claude:claude-opus-4-8 Signed-off-by: Roger Luethi --- docs/guides/deploy-guide/seed.md | 35 +++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/docs/guides/deploy-guide/seed.md b/docs/guides/deploy-guide/seed.md index bdb2cd35a9..4b212e0bb1 100644 --- a/docs/guides/deploy-guide/seed.md +++ b/docs/guides/deploy-guide/seed.md @@ -25,7 +25,40 @@ The use of Linux on the seed node is recommended. Other operating systems should work without problems. It is assumed in this documentation that Ubuntu 24.04 is used on the seed node. -## Install required packages +There are two ways to run the seed tooling: + +* **Seed container** — a prebuilt container image with Ansible and all required + OSISM collections. The only prerequisite on the seed node is a working + Docker (or Podman) installation. No packages are installed on the seed node + itself. +* **Manual installation** — install the required packages on the seed node and + use the `run.sh` script from the configuration repository. + +## Option 1: Seed container {#option-1-seed-container} + +```bash +docker pull registry.osism.tech/osism/seed +``` + +`run.sh` itself runs the playbooks inside the seed container automatically — +there is no separate wrapper. When a container engine (Docker or Podman) is +available and `SEED_CONTAINER` is left at its default value of `auto`, `run.sh` +execs the `registry.osism.tech/osism/seed` image with the configuration +repository bind-mounted, so every Manager step is the same plain command: + +```bash +./run.sh +``` + +No extra setup is required beyond having Docker (or Podman) installed on the +seed node. The same `./run.sh ` command is used whether you are +running with the seed container or with a local venv installation — the +difference is transparent. + +To force the local-venv path (Option 2) even when a container engine is +present, set `SEED_CONTAINER=false` before running any playbook. + +## Option 2: Manual installation ```bash sudo apt-get install git python3-pip python3-virtualenv sshpass libssh-dev From 9037d6eb0de018494c33119117dbdd0735df286a Mon Sep 17 00:00:00 2001 From: Roger Luethi Date: Mon, 22 Jun 2026 08:22:11 +0200 Subject: [PATCH 2/2] deploy-guide: run.sh uses the seed container run.sh automatically runs the playbooks inside the osism/seed container when a container engine (Docker or Podman) is present on the seed node, bind-mounting the configuration repository. With SEED_CONTAINER=auto (the default) there is nothing extra to set up, so every Manager step is the same plain ./run.sh whether it runs in the container or in a local venv. Document the two knobs a deployer actually chooses -- SEED_CONTAINER (auto/true/false) and CONTAINER_ENGINE (docker/podman) -- plus SEED_CONTAINER_MOUNT_OPTS for Podman on enforcing SELinux. The image reference and pull policy default correctly to registry.osism.tech/osism/seed:latest; the SEED_CONTAINER_REGISTRY, SEED_CONTAINER_IMAGE, SEED_CONTAINER_TAG and SEED_CONTAINER_PULL overrides are only mentioned for offline or local-build setups. Assisted-by: Claude:claude-opus-4-8 Signed-off-by: Roger Luethi --- docs/guides/deploy-guide/manager.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/docs/guides/deploy-guide/manager.md b/docs/guides/deploy-guide/manager.md index fb086367f4..741af3db1d 100644 --- a/docs/guides/deploy-guide/manager.md +++ b/docs/guides/deploy-guide/manager.md @@ -45,6 +45,25 @@ cd environments/manager If you are working with Git branches, read [the instructions](../configuration-guide/manager.mdx). +`run.sh` automatically uses the [seed container](./seed.md#option-1-seed-container) when a +container engine (Docker or Podman) is available on the seed node. The default +`SEED_CONTAINER=auto` means you do not need to choose a separate execution method — +every step on this page is simply: + +```bash +./run.sh +``` + +Two environment variables control the seed-container behaviour. The rest are +auto-detected and pull `registry.osism.tech/osism/seed:latest`, so you normally +do not need to set anything: + +| Variable | Default | Purpose | +|:----------------------------|:---------|:------------------------------------------------------------------------------------------------------| +| `SEED_CONTAINER` | `auto` | `auto` uses the container when an engine is present; `true` forces it; `false` forces the local venv. | +| `CONTAINER_ENGINE` | `docker` | Set to `podman` to use Podman. | +| `SEED_CONTAINER_MOUNT_OPTS` | (empty) | Appended to the bind mount, e.g. `:z` or `:Z` for Podman on enforcing SELinux. | + ### Step 1: Create operator user The operator user is created on each node. It is used as a service account for OSISM. All