Files
computer-playbook/roles/web-app-wazuh/templates/compose.yml.j2
Prageeth Panicker 70ea5bd691 refactor(web-app-wazuh): map the nofile limits over services.yml
The manager and indexer nofile limits now live next to their other resource settings in services.yml and the compose template reads them from there, as requested in review. The values are unchanged.
2026-10-09 08:18:07 +00:00

73 lines
3.6 KiB
Django/Jinja

{% 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') }}