summaryrefslogtreecommitdiffstats
path: root/roles/openshift_node/tasks/upgrade_pre.yml
blob: 5d7961a24401037554e7aeddbe2f12616376ae60 (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
---
# This is a hack to allow us to update various components without restarting
# services.  This will persist into the upgrade play as well, so everything
# needs to be restarted by hand.
- set_fact:
    skip_node_svc_handlers: True

- include_tasks: registry_auth.yml

- name: Check Docker image count
  shell: "docker images -aq | wc -l"
  register: docker_image_count
  when:
  - l_docker_upgrade is defined
  - l_docker_upgrade | bool

- debug: var=docker_image_count.stdout
  when:
  - l_docker_upgrade is defined
  - l_docker_upgrade | bool

- name: Upgrade Docker
  package: name=docker{{ '-' + docker_version }} state=present
  register: result
  until: result | success
  when:
  - l_docker_upgrade is defined
  - l_docker_upgrade | 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
  - openshift_use_openshift_sdn | bool

- include_tasks: upgrade/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

- include_tasks: upgrade/containerized_node_upgrade.yml
  when: openshift.common.is_containerized | bool

- name: Upgrade openvswitch
  package:
    name: openvswitch
    state: latest
  when: not openshift.common.is_containerized | bool
  register: result
  until: result | success

- 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

# Set this fact here so we can use it during the next play, which is serial.
- name: set_fact swap_result
  set_fact:
    openshift_node_upgrade_swap_result: "{{ swap_result.stdout_lines | length > 0 | bool }}"

# Disable Swap Block (pre)
- block:
  - 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:
  - openshift_node_upgrade_swap_result | default(False) | bool
  - openshift_disable_swap | default(true) | bool
  # End Disable Swap Block

- 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"

- include_tasks: dnsmasq_install.yml