--- # 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 - include_tasks: registry_auth.yml - 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-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 - openshift_use_openshift_sdn | bool - include_tasks: 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_tasks: "{{ node_config_hook }}" when: node_config_hook is defined - 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: Ensure containerized services stopped before Docker restart service: name: "{{ item }}" state: stopped with_items: - etcd_container - openvswitch - "{{ 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 # https://bugzilla.redhat.com/show_bug.cgi?id=1513054 - name: Clean up dockershim data file: path: "/var/lib/dockershim/sandbox/" state: absent - 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 # 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_node_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_tasks: upgrade/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_tasks: dnsmasq.yml