ccfa2a6c16
* Updates etcd to v3.4 * Updated the config to use v3.4's logging mechanism * Deprecated etcd CA parameters aren't used, so we are not affected by their removal. * Note that we are not currently guarding against skip-version updates for etcd. Notable non-voting jobs exercising some of this: * kolla-ansible-ubuntu-upgrade-cephadm (cinder->tooz->etcd3gw->etcd) * kolla-ansible-ubuntu-zun (see https://review.opendev.org/c/openstack/openstack-ansible/+/883194 ) Depends-On: https://review.opendev.org/c/openstack/kolla/+/890464 Change-Id: I086e7bbc7db64421445731a533265e7056fbdb43
83 lines
3.9 KiB
YAML
83 lines
3.9 KiB
YAML
---
|
|
etcd_services:
|
|
etcd:
|
|
container_name: etcd
|
|
group: etcd
|
|
enabled: true
|
|
environment: "{{ etcd_base_environment | combine(etcd_default_environment) }}"
|
|
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 }}"
|
|
|
|
####################
|
|
# Environment
|
|
####################
|
|
etcd_base_environment:
|
|
# KOLLA_BOOTSTRAP_STATUS is used to indicate whether the container should
|
|
# be recreated. Otherwise the kolla_container task doesn't detect that the
|
|
# environment has changed if variables are removed.
|
|
KOLLA_BOOTSTRAP_STATUS: "undefined"
|
|
ETCDCTL_API: "3"
|
|
ETCDCTL_ENDPOINTS: "{{ etcd_client_internal_endpoint }}"
|
|
ETCDCTL_WRITE_OUT: "json"
|
|
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_LISTEN_PEER_URLS: "{{ etcd_peer_internal_endpoint }}"
|
|
ETCD_LOGGER: "zap"
|
|
ETCD_LOG_OUTPUTS: "stderr,/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 %}"
|
|
etcd_default_environment:
|
|
KOLLA_BOOTSTRAP_STATUS: "bootstrap completed"
|
|
etcd_bootstrap_service_environment:
|
|
KOLLA_BOOTSTRAP_STATUS: "bootstrap service"
|
|
ETCD_INITIAL_CLUSTER_STATE: "existing"
|
|
ETCD_INITIAL_ADVERTISE_PEER_URLS: "{{ etcd_peer_internal_endpoint }}"
|
|
ETCD_INITIAL_CLUSTER_TOKEN: "{{ etcd_cluster_token }}"
|
|
ETCD_INITIAL_CLUSTER: "{% for host in groups['etcd_had_volume_True'] %}{{ hostvars[host].ansible_facts.hostname }}={{ etcd_protocol }}://{{ 'api' | kolla_address(host) | put_address_in_context('url') }}:{{ etcd_peer_port }},{% endfor %}{{ ansible_facts.hostname }}={{ etcd_protocol }}://{{ 'api' | kolla_address(inventory_hostname) | put_address_in_context('url') }}:{{ etcd_peer_port }}"
|
|
etcd_bootstrap_cluster_environment:
|
|
KOLLA_BOOTSTRAP_STATUS: "bootstrap cluster"
|
|
ETCD_INITIAL_CLUSTER_STATE: "new"
|
|
ETCD_INITIAL_ADVERTISE_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 %}"
|
|
|
|
####################
|
|
# 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 }}"
|
|
|
|
###################
|
|
# Managing members
|
|
###################
|
|
etcd_remove_deleted_members: "no"
|