blob: ac9ea32cbc7ecd5871e926f8a142bebb77550364 (
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
|
---
# input variables:
# - l_docker_upgrade
# - openshift.common.is_atomic
# - node_config_hook
# - openshift_pkg_version
# - openshift.common.is_containerized
# - deployment_type
# - openshift_release
# tasks file for openshift_node_upgrade
- name: Stop node and openvswitch services
service:
name: "{{ item }}"
state: stopped
with_items:
- "{{ openshift.common.service_type }}-node"
- openvswitch
failed_when: false
- name: Stop additional containerized services
service:
name: "{{ item }}"
state: stopped
with_items:
- "{{ openshift.common.service_type }}-master"
- "{{ openshift.common.service_type }}-master-controllers"
- "{{ openshift.common.service_type }}-master-api"
- etcd_container
failed_when: false
when: openshift.common.is_containerized | bool
- name: Pre-pull node image
command: >
docker pull {{ openshift.node.node_image }}:{{ openshift_image_tag }}
register: pull_result
changed_when: "'Downloaded newer image' in pull_result.stdout"
when: openshift.common.is_containerized | bool
- name: Pre-pull openvswitch image
command: >
docker pull {{ openshift.node.ovs_image }}:{{ openshift_image_tag }}
register: pull_result
changed_when: "'Downloaded newer image' in pull_result.stdout"
when: openshift.common.is_containerized | bool and openshift.common.use_openshift_sdn | bool
- include: docker/upgrade.yml
vars:
# We will restart Docker ourselves after everything is ready:
skip_docker_restart: True
when:
- l_docker_upgrade is defined
- l_docker_upgrade | bool
- include: "{{ node_config_hook }}"
when: node_config_hook is defined
- include: rpm_upgrade.yml
vars:
component: "node"
openshift_version: "{{ openshift_pkg_version | default('') }}"
when: not openshift.common.is_containerized | bool
- name: Remove obsolete docker-sdn-ovs.conf
file:
path: "/etc/systemd/system/docker.service.d/docker-sdn-ovs.conf"
state: absent
when: (deployment_type == 'openshift-enterprise' and openshift_release | version_compare('3.4', '>='))
or (deployment_type == 'origin' and openshift_release | version_compare('1.4', '>='))
- include: containerized_node_upgrade.yml
when: openshift.common.is_containerized | bool
- name: Ensure containerized services stopped before Docker restart
service:
name: "{{ item }}"
state: stopped
with_items:
- etcd_container
- openvswitch
- "{{ openshift.common.service_type }}-master"
- "{{ openshift.common.service_type }}-master-api"
- "{{ openshift.common.service_type }}-master-controllers"
- "{{ openshift.common.service_type }}-node"
failed_when: false
when: openshift.common.is_containerized | bool
- name: Stop rpm based services
service:
name: "{{ item }}"
state: stopped
with_items:
- "{{ openshift.common.service_type }}-node"
- openvswitch
failed_when: false
when: not openshift.common.is_containerized | bool
- name: Upgrade openvswitch
package:
name: openvswitch
state: latest
when: not openshift.common.is_containerized | bool
- name: Update oreg value
yedit:
src: "{{ openshift.common.config_base }}/node/node-config.yaml"
key: 'imageConfig.format'
value: "{{ oreg_url | default(oreg_url_node) }}"
when: oreg_url is defined or oreg_url_node is defined
# https://docs.openshift.com/container-platform/3.4/admin_guide/overcommit.html#disabling-swap-memory
- name: Check for swap usage
command: grep "^[^#].*swap" /etc/fstab
# grep: match any lines which don't begin with '#' and contain 'swap'
changed_when: false
failed_when: false
register: swap_result
# Disable Swap Block
- block:
- name: Disable swap
command: swapoff --all
- name: Remove swap entries from /etc/fstab
replace:
dest: /etc/fstab
regexp: '(^[^#].*swap.*)'
replace: '# \1'
backup: yes
- name: Add notice about disabling swap
lineinfile:
dest: /etc/fstab
line: '# OpenShift-Ansible Installer disabled swap per overcommit guidelines'
state: present
when:
- swap_result.stdout_lines | length > 0
- openshift_disable_swap | default(true) | bool
# End Disable Swap Block
- name: Reset selinux context
command: restorecon -RF {{ openshift.common.data_dir }}/openshift.local.volumes
when:
- ansible_selinux is defined
- ansible_selinux.status == 'enabled'
- name: Apply 3.6 dns config changes
yedit:
src: /etc/origin/node/node-config.yaml
key: "{{ item.key }}"
value: "{{ item.value }}"
with_items:
- key: "dnsBindAddress"
value: "127.0.0.1:53"
- key: "dnsRecursiveResolvConf"
value: "/etc/origin/node/resolv.conf"
# Restart all services
- include: restart.yml
- name: Wait for node to be ready
oc_obj:
state: list
kind: node
name: "{{ openshift.common.hostname | lower }}"
register: node_output
delegate_to: "{{ groups.oo_first_master.0 }}"
until: node_output.results.returncode == 0 and node_output.results.results[0].status.conditions | selectattr('type', 'match', '^Ready$') | map(attribute='status') | join | bool == True
# Give the node two minutes to come back online.
retries: 24
delay: 5
- include_role:
name: openshift_node_dnsmasq
|