aboutsummaryrefslogtreecommitdiff
path: root/ansible/roles/etcd/handlers/main.yml
blob: b1bb605e90cdb5a4c10b232b03d5cdbf7c439b30 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
---
- name: Bootstrap etcd on new cluster
  include_tasks: "bootstrap_cluster.yml"
  when:
    - kolla_action != "config"
  listen:
    - Bootstrap etcd cluster

- name: Look up the cluster leader
  include_tasks: "lookup_leader.yml"
  listen:
    - Restart etcd container
    - Bootstrap etcd services
    - Bootstrap etcd cluster
    - Check for deleted members

- name: Bootstrap etcd on new services
  include_tasks: "bootstrap_services.yml"
  when:
    - groups.etcd_had_volume_False is defined
    - inventory_hostname in groups.etcd_had_volume_False
    - kolla_action != "config"
  listen:
    - Bootstrap etcd services

# When upgrading an etcd cluster we have to do it one by one
- name: Upgrade etcd non-leaders
  include_tasks: "restart_services.yml"
  when:
    - inventory_hostname not in (groups.etcd_is_leader_True | default([]))
    - kolla_action == "upgrade"
  listen:
    - Restart etcd container
  loop: "{{ groups.etcd }}"

# When there is no upgrade we can restart 25% of the services without
# losing quorum.
- name: Rolling restart of etcd non-leaders
  include_tasks: "restart_services.yml"
  when:
    - inventory_hostname not in (groups.etcd_is_leader_True | default([]))
    - groups.etcd.index(inventory_hostname) % 4 == item
    - kolla_action != "upgrade"
  listen:
    - Restart etcd container
    - Bootstrap etcd services
    - Bootstrap etcd cluster
  loop:
    - 0
    - 1
    - 2
    - 3

- name: Restart etcd leader
  include_tasks: "restart_services.yml"
  when:
    - inventory_hostname in (groups.etcd_is_leader_True | default([]))
  listen:
    - Restart etcd container
    - Bootstrap etcd services
    - Bootstrap etcd cluster

- name: Remove deleted members
  include_tasks: "remove_deleted_members.yml"
  when:
    - kolla_action != "config"
  listen:
    - Check for deleted members