---
etcd_services:
  etcd:
    container_name: etcd
    group: etcd
    enabled: true
    environment:
      ETCD_DATA_DIR: "/var/lib/etcd"
      ETCD_NAME: "{{ ansible_facts.hostname }}"
      ETCD_ADVERTISE_CLIENT_URLS: "{{ etcd_client_internal_endpoint }}"
      ETCD_LISTEN_CLIENT_URLS: "{{ etcd_client_internal_endpoint }}"
      ETCD_INITIAL_ADVERTISE_PEER_URLS: "{{ etcd_peer_internal_endpoint }}"
      ETCD_LISTEN_PEER_URLS: "{{ etcd_peer_internal_endpoint }}"
      ETCD_INITIAL_CLUSTER_TOKEN: "{{ etcd_cluster_token }}"
      ETCD_INITIAL_CLUSTER: "{% for host in groups['etcd'] %}{{ hostvars[host].ansible_facts.hostname }}={{ etcd_protocol }}://{{ 'api' | kolla_address(host) | put_address_in_context('url') }}:{{ etcd_peer_port }}{% if not loop.last %},{% endif %}{% endfor %}"
      ETCD_INITIAL_CLUSTER_STATE: "new"
      ETCD_OUT_FILE: "/var/log/kolla/etcd/etcd.log"
      KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
      ETCD_CERT_FILE: "{% if etcd_enable_tls | bool %}/etc/etcd/certs/etcd-cert.pem{% endif %}"
      ETCD_KEY_FILE: "{% if etcd_enable_tls | bool %}/etc/etcd/certs/etcd-key.pem{% endif %}"
      ETCD_PEER_CERT_FILE: "{% if etcd_enable_tls | bool %}/etc/etcd/certs/etcd-cert.pem{% endif %}"
      ETCD_PEER_KEY_FILE: "{% if etcd_enable_tls | bool %}/etc/etcd/certs/etcd-key.pem{% endif %}"
    image: "{{ etcd_image_full }}"
    volumes: "{{ etcd_default_volumes + etcd_extra_volumes }}"
    dimensions: "{{ etcd_dimensions }}"
    haproxy:
      etcd:
        enabled: true
        mode: "http"
        external: false
        port: "{{ etcd_client_port }}"
        tls_backend: "{{ etcd_enable_tls | bool }}"

####################
# Docker
####################
etcd_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/etcd"
etcd_tag: "{{ openstack_tag }}"
etcd_image_full: "{{ etcd_image }}:{{ etcd_tag }}"
etcd_dimensions: "{{ default_container_dimensions }}"

etcd_default_volumes:
  - "{{ node_config_directory }}/etcd/:{{ container_config_directory }}/:ro"
  - "/etc/localtime:/etc/localtime:ro"
  - "{{ '/etc/timezone:/etc/timezone:ro' if ansible_facts.os_family == 'Debian' else '' }}"
  - "kolla_etcd:/var/lib/etcd/"
  - "kolla_logs:/var/log/kolla/"
etcd_extra_volumes: "{{ default_extra_volumes }}"

############
# Endpoints
############
etcd_client_internal_endpoint: "{{ etcd_protocol }}://{{ api_interface_address | put_address_in_context('url') }}:{{ etcd_client_port }}"
etcd_peer_internal_endpoint: "{{ etcd_protocol }}://{{ api_interface_address | put_address_in_context('url') }}:{{ etcd_peer_port }}"
