{% include 'roles/sys-svc-compose/templates/base.yml.j2' %} {# Exception: swarm ignores depends_on, so in swarm tasks/certs/swarm.yml generates the certs before the stack deploys. #} {% set certs_generator_dependency = {'certs_generator': {'condition': 'service_completed_successfully'}} if DEPLOYMENT_MODE == 'compose' else {} %} {% if DEPLOYMENT_MODE == 'compose' %} {% set service_name = 'certs_generator' %} {% set docker_restart_policy = 'no' %} {{ service_name }}: {% include 'roles/sys-svc-container/templates/base.yml.j2' %} {{ lookup('container_image', application_id, 'certs_generator') }} {{ lookup('compose_only', 'container_name', WAZUH_CERTS_GENERATOR_CONTAINER) }} entrypoint: ["{{ WAZUH_CERTS_ENTRYPOINT_TARGET }}"] environment: - CERT_TOOL_VERSION={{ WAZUH_CERTS_TOOL_VERSION }} - WAZUH_MANAGER_NODE={{ WAZUH_MANAGER_CONTAINER }} {{ lookup('container_volumes', service_name) | indent(4) }} {% endif %} {% set service_name = 'manager' %} {% set docker_restart_policy = DOCKER_RESTART_POLICY %} {% set docker_compose_env = WAZUH_MANAGER_ENV_FILE %} {{ service_name }}: {% include 'roles/sys-svc-container/templates/base.yml.j2' %} {{ lookup('container_image', application_id, 'manager') }} {{ lookup('compose_only', 'container_name', WAZUH_MANAGER_CONTAINER) }} hostname: "{{ WAZUH_MANAGER_CONTAINER }}" ulimits: nofile: soft: {{ lookup('config', application_id, 'services.manager.nofile') }} hard: {{ lookup('config', application_id, 'services.manager.nofile') }} {{ lookup('container_volumes', service_name) | indent(4) }} {{ lookup('container_networks') | indent(4) }} {{ lookup('container_depends_on', application_id, extra=certs_generator_dependency) | indent(4) }} {% set service_name = 'indexer' %} {% set docker_compose_env = '' %} {{ service_name }}: {% include 'roles/sys-svc-container/templates/base.yml.j2' %} {{ lookup('container_image', application_id, 'indexer') }} {{ lookup('compose_only', 'container_name', WAZUH_INDEXER_CONTAINER) }} hostname: "{{ WAZUH_INDEXER_CONTAINER }}" entrypoint: ["{{ WAZUH_INDEXER_ENTRYPOINT_TARGET }}"] command: ["opensearchwrapper"] {{ lookup('container_ports', ['indexer', 'http', DOCKER_BIND_HOST]) | indent(4) }} environment: - "OPENSEARCH_JAVA_OPTS=-Xms{{ WAZUH_INDEXER_HEAP }} -Xmx{{ WAZUH_INDEXER_HEAP }}" ulimits: nofile: soft: {{ lookup('config', application_id, 'services.indexer.nofile') }} hard: {{ lookup('config', application_id, 'services.indexer.nofile') }} {{ lookup('container_volumes', service_name) | indent(4) }} {{ lookup('container_networks') | indent(4) }} {{ lookup('container_depends_on', application_id, extra=certs_generator_dependency) | indent(4) }} {{ lookup('container_healthcheck', service_name) | indent(4) }} {% set service_name = 'dashboard' %} {% set docker_compose_env = WAZUH_DASHBOARD_ENV_FILE %} {{ service_name }}: {% include 'roles/sys-svc-container/templates/base.yml.j2' %} {{ lookup('container_image', application_id, 'console') }} {{ lookup('compose_only', 'container_name', WAZUH_DASHBOARD_CONTAINER) }} hostname: "{{ WAZUH_DASHBOARD_CONTAINER }}" {{ lookup('container_ports', ['console', 'http', DOCKER_BIND_HOST]) | indent(4) }} {{ lookup('container_volumes', service_name) | indent(4) }} {{ lookup('container_networks') | indent(4) }} {{ lookup('container_depends_on', application_id, extra={ 'indexer': {'condition': 'service_healthy'}, 'manager': {'condition': 'service_started'}, }) | indent(4) }} {{ lookup('compose_volumes') }} {{ lookup('compose_networks') }}