{% set tpl = ix_lib.base.render.Render(values) %}
{% set c1 = tpl.add_container(values.consts.blindspark_container_name, "image") %}
{% set perm_container = tpl.deps.perms(values.consts.perms_container_name) %}
{% set perms_config = {"uid": values.consts.run_as_user, "gid": values.consts.run_as_group, "mode": "check"} %}
{% do c1.set_user(values.consts.run_as_user, values.consts.run_as_group) %}
{% if values.network.host_network %}
{% set internal_port = values.network.web_port.port_number %}
{% else %}
{% set internal_port = values.consts.default_api_port %}
{% endif %}
{% set command = namespace(args=[
"start",
"--storage", "/data",
"--port", "%d" | format(internal_port)
]) %}
{% if values.blindspark.holesail %}
{% do command.args.append("--holesail") %}
{% endif %}
{% do c1.set_command(command.args) %}
{% do c1.healthcheck.set_test("wget", {"port": internal_port, "path": "/health"}) %}
{% do c1.healthcheck.set_start_period(30) %}
{% do c1.environment.add_env("HOME", "/data") %}
{% do c1.environment.add_env("HIVERELAY_STORAGE", "/data") %}
{% do c1.environment.add_env("HIVERELAY_API_KEY", values.blindspark.api_key) %}
{% do c1.environment.add_env("HIVERELAY_ACCEPT_MODE", values.blindspark.accept_mode) %}
{% do c1.environment.add_env("HIVERELAY_MAX_STORAGE", "%dGB" | format(values.blindspark.max_storage_gb)) %}
{% do c1.environment.add_env("HIVERELAY_LOG_LEVEL", values.blindspark.log_level) %}
{% do c1.environment.add_env("HIVERELAY_UI_SIMPLE", values.blindspark.simple_dashboard) %}
{% do c1.environment.add_env("HIVERELAY_UI_EXPOSE_TOKEN", values.blindspark.expose_token) %}
{% do c1.environment.add_user_envs(values.blindspark.additional_envs) %}
{% if not values.network.host_network %}
{% do c1.add_port(values.network.web_port, {"container_port": internal_port}) %}
{% endif %}
{% do c1.add_storage("/data", values.storage.data) %}
{% do perm_container.add_or_skip_action("data", values.storage.data, perms_config) %}
{% if perm_container.has_actions() %}
{% do perm_container.activate() %}
{% do c1.depends.add_dependency(values.consts.perms_container_name, "service_completed_successfully") %}
{% endif %}
{% do tpl.portals.add(values.network.web_port, {"scheme": "http", "path": "/"}) %}
{{ tpl.render() | tojson }}