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", }, }