|
1 | | -{# Stores storage items that contains info for volumes, vol mounts, perms dirs and perms mounts #} |
2 | | -{% set storage_items = namespace(items=[]) %} |
3 | | -{# Stores the top level volumes #} |
4 | | -{% set volumes = namespace(items={}) %} |
5 | | -{# Stores the container volume mounts #} |
6 | | -{% set volume_mounts = namespace(items=[]) %} |
| 1 | +{% set tpl = ix_lib.base.render.Render(values) %} |
7 | 2 |
|
8 | | -{% do storage_items.items.append(ix_lib.base.storage.storage_item(data=dict(values.storage.config, **{"mount_path": "/app/db"}), values=values)) %} |
9 | | -{% do storage_items.items.append(ix_lib.base.storage.storage_item(data=dict(values.storage.downloads, **{"mount_path": "/app/temp_downloads"}), values=values)) %} |
10 | | -{% do storage_items.items.append(ix_lib.base.storage.storage_item(data=dict(values.storage.content, **{"mount_path": "/content"}), values=values)) %} |
11 | | -{% do storage_items.items.append(ix_lib.base.storage.storage_item(data={"type":"anonymous", "mount_path": "/tmp"})) %} |
| 3 | +{% set c1 = tpl.add_container(values.consts.kapowarr_container_name, "image") %} |
| 4 | +{% do c1.healthcheck.set_test("http", {"port": values.consts.internal_web_port, "path": "/"}) %} |
12 | 5 |
|
13 | | -{% for store in values.storage.additional_storage %} |
14 | | - {% do storage_items.items.append(ix_lib.base.storage.storage_item(data=store, values=values)) %} |
15 | | -{% endfor %} |
| 6 | +{% do c1.environment.add_user_envs(values.kapowarr.additional_envs) %} |
16 | 7 |
|
17 | | -{# Add each item to the above lists #} |
18 | | -{% for item in storage_items.items %} |
19 | | - {% if item.vol and volumes.items.update(item.vol) %}{% endif %} |
20 | | - {% if item.vol_mount and volume_mounts.items.append(item.vol_mount) %}{% endif %} |
21 | | -{% endfor %} |
| 8 | +{% if not values.network.host_network %} |
| 9 | + {% do c1.ports.add_port(values.network.web_port, values.consts.internal_web_port) %} |
| 10 | +{% endif %} |
22 | 11 |
|
23 | | -{# Containers #} |
24 | | -services: |
25 | | - {{ values.consts.kapowarr_container_name }}: |
26 | | - image: {{ ix_lib.base.utils.get_image(images=values.images, name="image") }} |
27 | | - restart: unless-stopped |
28 | | - deploy: |
29 | | - resources: {{ ix_lib.base.resources.resources(values.resources) | tojson }} |
30 | | - devices: {{ ix_lib.base.resources.get_devices(values.resources) | tojson }} |
31 | | - {% if values.network.host_network %} |
32 | | - network_mode: host |
33 | | - {% endif %} |
34 | | - cap_drop: {{ ix_lib.base.security.get_caps().drop | tojson }} |
35 | | - security_opt: {{ ix_lib.base.security.get_sec_opts() | tojson }} |
36 | | - {% if values.network.dns_opts %} |
37 | | - dns_opt: {{ ix_lib.base.network.dns_opts(values.network.dns_opts) | tojson }} |
38 | | - {% endif %} |
39 | | - {% set test = ix_lib.base.healthchecks.http_test(port=5656, path="/") %} |
40 | | - healthcheck: {{ ix_lib.base.healthchecks.check_health(test) | tojson }} |
41 | | - environment: {{ ix_lib.base.environment.envs(app={}, user=values.kapowarr.additional_envs, values=values) | tojson }} |
42 | | - {% if not values.network.host_network %} |
43 | | - ports: |
44 | | - - {{ ix_lib.base.ports.get_port(port={"target": 5656, "published": values.network.web_port}) | tojson }} |
45 | | - {% endif %} |
46 | | - volumes: {{ volume_mounts.items | tojson }} |
| 12 | +{% do c1.add_storage("/app/db", values.storage.config) %} |
| 13 | +{% do c1.add_storage("/app/temp_downloads", values.storage.downloads) %} |
| 14 | +{% do c1.add_storage("/content", values.storage.content) %} |
47 | 15 |
|
48 | | -{% if volumes.items %} |
49 | | -volumes: {{ volumes.items | tojson }} |
50 | | -{% endif %} |
| 16 | +{% for store in values.storage.additional_storage %} |
| 17 | + {% do c1.add_storage(store.mount_path, store) %} |
| 18 | +{% endfor %} |
| 19 | + |
| 20 | +{% do tpl.portals.add_portal({"port": values.consts.internal_web_port if values.network.host_network else values.network.web_port}) %} |
51 | 21 |
|
52 | | -x-portals: {{ ix_lib.base.metadata.get_portals([{"port": 5656 if values.network.host_network else values.network.web_port}]) | tojson }} |
53 | | -x-notes: {{ ix_lib.base.metadata.get_notes("Kapowarr") | tojson }} |
| 22 | +{{ tpl.render() | tojson }} |
0 commit comments