diff options
| author | Robert Günzler <r@gnzler.io> | 2025-09-07 17:32:13 +0200 |
|---|---|---|
| committer | Robert Günzler <r@gnzler.io> | 2025-09-07 17:42:42 +0200 |
| commit | 38be6c13f76e893cf47636257071b440dec0c5b2 (patch) | |
| tree | f7ded3235a7e3362cbd1ed3d91523968fe0faf90 /bundles/containers/items.py | |
initial commit
Signed-off-by: Robert Günzler <r@gnzler.io>
Diffstat (limited to 'bundles/containers/items.py')
| -rw-r--r-- | bundles/containers/items.py | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/bundles/containers/items.py b/bundles/containers/items.py new file mode 100644 index 0000000..eb28c44 --- /dev/null +++ b/bundles/containers/items.py @@ -0,0 +1,63 @@ +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"}, + }, +} + +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/services/default/contents.d/containers": { + "content_type": "text", + "content": "", + "triggers": { + "svc_openrc:s6-rc-up:restart", + }, + }, + "/etc/s6-rc/services/containers/type": { + "content_type": "text", + "content": "bundle", + "triggers": { + "svc_openrc:s6-rc-up:restart", + }, + }, + + "/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" }, +} + +repo.libs.gen.add_files_recursive( + files, + join(repo.path, "bundles", "containers", "files"), +) + +directories = { + "/etc/s6-rc/services/containers/contents.d": {} +} + +for container, _ in node.metadata.get("containers", {}).items(): + svc_s6rc[container] = { + "bundle": "containers", + "generate": "container", + "triggers": { + "svc_openrc:s6-rc-init:reload", + "svc_openrc:s6-rc-up:reload", + }, + } |