infra-role-alertmanager/templates/docker-compose.yml.j2
2025-01-13 15:11:31 +01:00

45 lines
1.8 KiB
Django/Jinja

---
version: '3.7'
services:
'{{ alertmanager_service_name }}':
container_name: '{{ alertmanager_cont_name }}'
image: '{{ alertmanager_cont_image }}'
user: 'root'
restart: 'always'
ports:
- '0.0.0.0:{{ alertmanager_webui_port }}:{{ alertmanager_webui_port }}' # Web UI
- '0.0.0.0:{{ alertmanager_cluster_port }}:{{ alertmanager_cluster_port }}/tcp' # Cluster
- '0.0.0.0:{{ alertmanager_cluster_port }}:{{ alertmanager_cluster_port }}/udp' # Cluster
volumes:
- '{{ alertmanager_service_path }}/conf/alertmanager.yml:/etc/alertmanager.yml:ro'
- '{{ alertmanager_service_path }}/conf/amtool.yml:/etc/amtool/config.yml:ro'
- '{{ alertmanager_service_path }}/conf/templates:/etc/alertmanager/templates:ro'
- '{{ alertmanager_service_path }}/data:/data'
- '/certs:/certs'
{% if alertmanager_cont_networks %}
networks: {{ alertmanager_cont_networks | to_json }}
{% endif %}
command:
- '--storage.path=/data'
- '--config.file=/etc/alertmanager.yml'
- '--log.format={{ alertmanager_cont_log_fmt }}'
- '--log.level={{ alertmanager_cont_log_lvl }}'
- '--web.external-url={{ alertmanager_url }}'
- '--cluster.advertise-address={{ ansible_local.wireguard.vpn_ip }}:{{ alertmanager_cluster_port }}'
- '--cluster.listen-address=0.0.0.0:{{ alertmanager_cluster_port }}'
- '--cluster.probe-timeout={{ alertmanager_probe_timeout }}'
- '--cluster.probe-interval={{ alertmanager_probe_interval }}'
{% for peer in alertmanager_cluster_peers %}
{% if peer.Node != inventory_hostname %}
- '--cluster.peer={{ peer.ServiceAddress }}:{{ alertmanager_cluster_port }}' # {{ peer.Node }}
{% endif %}
{% endfor %}
{% if alertmanager_cont_networks %}
networks:
{% for network in alertmanager_cont_networks %}
{{network}}:
external: true
{% endfor %}
{% endif %}