From 4fa05f4c140205450f63337626680c65f2879896 Mon Sep 17 00:00:00 2001 From: Robert Günzler Date: Mon, 23 Feb 2026 14:12:22 +0100 Subject: replace containers,www with svtree modules equivalents MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Robert Günzler --- bundles/svtree-containers/items.py | 86 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 bundles/svtree-containers/items.py (limited to 'bundles/svtree-containers/items.py') diff --git a/bundles/svtree-containers/items.py b/bundles/svtree-containers/items.py new file mode 100644 index 0000000..320ab75 --- /dev/null +++ b/bundles/svtree-containers/items.py @@ -0,0 +1,86 @@ +if node.os != "alpine": + raise BundleError(f"{node.name}: OS {node.os} is not supported.") + +from os.path import join + +# TODO: healthcheck metrics? +svc_openrc = { + "podman-healthcheck": { + "runlevel": "default", + "enabled": True, + "needs": { + "file:/etc/init.d/podman-healthcheck", + }, + }, +} + +svc_s6rc = { + "podman-exporter": { + "bundle": "services", + "generate": "service", + "needs": { + "file:/etc/s6-rc/services/podman-exporter.run", + }, + } +} + +files = { + "/etc/containers/containers.conf.d/10-firewall-driver.conf": { + "needs": { + "bundle:firewall", + }, + }, + "/etc/s6-rc/templates/container/+service-srv/run": {"mode": "0755"}, + "/etc/s6-rc/templates/container/+service-log/run": {"mode": "0755"}, + "/etc/s6-rc/src/default/contents.d/containers": { + "content_type": "text", + "content": "", + "triggers": { + "svc_openrc:svtree:reload", + }, + }, + "/etc/s6-rc/src/containers/type": { + "content_type": "text", + "content": "bundle", + "triggers": { + "svc_openrc:svtree:reload", + }, + }, + # healthchecks + "/bin/podman-healthcheck": {"mode": "0755"}, + "/etc/periodic/15min/podman-healthcheck": {"mode": "0755"}, + "/etc/periodic/weekly/podman-prune": {"mode": "0755"}, + "/bin/podman-healthcheckd": {"mode": "0755"}, + "/etc/init.d/podman-healthcheck": {"mode": "0755"}, + # monitoring + "/etc/s6-rc/services/podman-exporter.run": { + "mode": "0755", + "triggers": { + "svc_s6rc:podman-exporter:restart", + }, + }, + "/etc/traefik/podman-exporter.yaml": { + "content_type": "mako", + }, +} + +repo.libs.gen.add_files_recursive( + files, + join(repo.bundles_dir, "svtree-containers", "files"), +) + +# TODO: can we use purge = True here? + +directories = { + "/etc/s6-rc/src/containers/contents.d": {}, +} + +for container, _ in node.metadata.get("containers", {}).items(): + svc_s6rc[container] = { + "bundle": "containers", + "generate": "container", + "triggers": { + "svc_openrc:svtree:reload", + }, + } + -- cgit 1.4.1