summaryrefslogtreecommitdiffstats
path: root/playbooks/common/openshift-cluster/upgrades/v3_8/upgrade_control_plane.yml
blob: 2d6284c6db5e7cbd4debc76185399201e26ecf3e (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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
---
#
# Control Plane Upgrade Playbook
#
# Upgrades masters and Docker (only on standalone etcd hosts)
#
# This upgrade does not include:
# - node service running on masters
# - docker running on masters
# - node service running on dedicated nodes
#
# You can run the upgrade_nodes.yml playbook after this to upgrade these components separately.
#
- include: ../init.yml
  tags:
  - pre_upgrade

- name: Configure the upgrade target for the common upgrade tasks
  hosts: oo_all_hosts
  tags:
  - pre_upgrade
  tasks:
  - set_fact:
      openshift_upgrade_target: '3.8'
      openshift_upgrade_min: '3.7'

# Pre-upgrade
- include: ../initialize_nodes_to_upgrade.yml
  tags:
  - pre_upgrade

- include: ../pre/verify_etcd3_backend.yml
  tags:
  - pre_upgrade

- name: Update repos on control plane hosts
  hosts: oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config
  tags:
  - pre_upgrade
  roles:
  - openshift_repos

- name: Set openshift_no_proxy_internal_hostnames
  hosts: oo_masters_to_config:oo_nodes_to_upgrade
  tags:
  - pre_upgrade
  tasks:
  - set_fact:
      openshift_no_proxy_internal_hostnames: "{{ hostvars | oo_select_keys(groups['oo_nodes_to_config']
                                                    | union(groups['oo_masters_to_config'])
                                                    | union(groups['oo_etcd_to_config'] | default([])))
                                                | oo_collect('openshift.common.hostname') | default([]) | join (',')
                                                }}"
    when:
    - openshift_http_proxy is defined or openshift_https_proxy is defined
    - openshift_generate_no_proxy_hosts | default(True) | bool

- include: ../pre/verify_inventory_vars.yml
  tags:
  - pre_upgrade

- include: ../pre/verify_health_checks.yml
  tags:
  - pre_upgrade

- include: ../pre/verify_control_plane_running.yml
  tags:
  - pre_upgrade

- include: ../disable_master_excluders.yml
  tags:
  - pre_upgrade

- include: ../../../../init/version.yml
  tags:
  - pre_upgrade
  vars:
    # Request specific openshift_release and let the openshift_version role handle converting this
    # to a more specific version, respecting openshift_image_tag and openshift_pkg_version if
    # defined, and overriding the normal behavior of protecting the installed version
    openshift_release: "{{ openshift_upgrade_target }}"
    openshift_protect_installed_version: False

- include: ../../../../openshift-master/private/validate_restart.yml
  tags:
  - pre_upgrade

- name: Verify upgrade targets
  hosts: oo_masters_to_config
  tasks:
  - include: ../pre/verify_upgrade_targets.yml
  tags:
  - pre_upgrade

- name: Verify docker upgrade targets
  hosts: oo_masters_to_config:oo_etcd_to_config
  tasks:
  - include: ../pre/tasks/verify_docker_upgrade_targets.yml
  tags:
  - pre_upgrade

- include: validator.yml
  tags:
  - pre_upgrade

- include: ../pre/gate_checks.yml
  tags:
  - pre_upgrade

# Pre-upgrade completed, nothing after this should be tagged pre_upgrade.

# Separate step so we can execute in parallel and clear out anything unused
# before we get into the serialized upgrade process which will then remove
# remaining images if possible.
- name: Cleanup unused Docker images
  hosts: oo_masters_to_config:oo_etcd_to_config
  tasks:
  - include: ../cleanup_unused_images.yml

- include: ../upgrade_control_plane.yml
  vars:
    master_config_hook: "v3_7/master_config_upgrade.yml"

# All controllers must be stopped at the same time then restarted
- name: Cycle all controller services to force new leader election mode
  hosts: oo_masters_to_config
  gather_facts: no
  tasks:
  - name: Stop {{ openshift_service_type }}-master-controllers
    systemd:
      name: "{{ openshift_service_type }}-master-controllers"
      state: stopped
  - name: Start {{ openshift_service_type }}-master-controllers
    systemd:
      name: "{{ openshift_service_type }}-master-controllers"
      state: started

- include: ../post_control_plane.yml