1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
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"},
},
}
directories = {
"/etc/s6-rc/src/containers/contents.d": { 'purge': True },
}
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",
},
},
"/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"),
)
for container, _ in node.metadata.get("containers", {}).items():
svc_s6rc[container] = {
"bundle": "containers",
"generate": "container",
"triggers": {
"svc_openrc:svtree:reload",
},
}
|