1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- {# Adjust values to library will pick some things automatically #}
- {% do values.update({
- "skip_generic_variables": true,
- "images": {
- "image": {
- "repository": values.image.repository,
- "tag": values.image.tag or "latest",
- }
- },
- "network": {
- "dns_opts": values.dns_config.get("options", []),
- "dns_searches": values.dns_config.get("searches", []),
- "dns_nameservers": values.dns_config.get("nameservers", []),
- }
- }) %}
- {% for label in values.labels %}
- {% do label.update({"containers": [values.ix_context.app_name]}) %}
- {% endfor %}
- {# Any manipulation to values should be done before this point #}
- {# Template starts here #}
- {% set tpl = ix_lib.base.render.Render(values) %}
- {# Image Configuration #}
- {% set c1 = tpl.add_container(values.ix_context.app_name, "image") %}
- {% do c1.set_pull_policy(values.image.pull_policy) %}
- {# Container Configuration #}
- {% if values.restart_policy == "on-failure" %}
- {% do c1.restart.set_policy(values.restart_policy, values.max_retry_count) %}
- {% else %}
- {% do c1.restart.set_policy(values.restart_policy) %}
- {% endif %}
- {% do c1.set_tty(values.tty) %}
- {% do c1.set_stdin(values.stdin) %}
- {% if values.hostname %}
- {% do c1.set_hostname(values.hostname) %}
- {% endif %}
- {% if values.entrypoint %}
- {% do c1.set_entrypoint(values.entrypoint) %}
- {% endif %}
- {% if values.command %}
- {% do c1.set_command(values.command) %}
- {% endif %}
- {% for device in values.devices %}
- {% do c1.devices.add_device(device.host_device, device.container_device) %}
- {% endfor %}
- {% if values.disable_builtin_healthcheck %}
- {% do c1.healthcheck.disable() %}
- {% else %}
- {% do c1.healthcheck.use_built_in() %}
- {% endif %}
- {% do c1.environment.add_env("TZ", values.TZ) %}
- {% do c1.environment.add_user_envs(values.envs) %}
- {# Network Configuration #}
- {% if values.host_network %}
- {% do c1.set_network_mode("host") %}
- {% else %}
- {% for port in values.ports %}
- {% do c1.add_port(port) %}
- {% endfor %}
- {% endif %}
- {# Security Context Configuration #}
- {% do c1.set_privileged(values.privileged) %}
- {% do c1.clear_caps() %}
- {% do c1.remove_security_opt("no-new-privileges") %}
- {% do c1.add_caps(values.capabilities.add) %}
- {% if values.run_as_custom_user %}
- {% do c1.set_user(values.run_as.user, values.run_as.group) %}
- {% endif %}
- {% for store in values.storage %}
- {% do c1.add_storage(store.mount_path, store) %}
- {% endfor %}
- {% if not values.resources.enable_resource_limits %}
- {% do c1.deploy.resources.remove_cpus_and_memory() %}
- {% endif %}
- {% for portal in values.portals %}
- {% do tpl.portals.add({"bind_mode": "published"}, portal) %}
- {% endfor %}
- {% do tpl.notes.set_body(values.notes) %}
- {{ tpl.render() | tojson }}
|