--- 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 %}