123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- ---
- #
- # 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.
- #
- - import_playbook: ../init.yml
- vars:
- l_upgrade_no_switch_firewall_hosts: "oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config"
- l_init_fact_hosts: "oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config"
- l_base_packages_hosts: "oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config"
- - name: Configure the initial upgrade target for the common upgrade tasks
- hosts: oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config
- tasks:
- - set_fact:
- # We use 3.9 here so when we run openshift_version we can get
- # correct values for 3.9, 3.8 we will hard-code the values in
- # ../pre/version_override.yml, if necessary.
- openshift_upgrade_target: '3.9'
- openshift_upgrade_min: '3.7'
- ## Check to see if we need to double upgrade (3.7 -> 3.8 -> 3.9)
- - name: Configure variables for double upgrade
- hosts: oo_masters_to_config:oo_etcd_to_config
- tasks:
- - set_fact:
- l_double_upgrade_cp: True
- l_version_override_hosts: "oo_masters_to_config:oo_etcd_to_config"
- l_double_upgrade_first_version: "3.8"
- l_double_upgrade_first_release: "3.8"
- when: hostvars[groups.oo_first_master.0].openshift_currently_installed_version | version_compare('3.8','<')
- - import_playbook: ../pre/config.yml
- # These vars a meant to exclude oo_nodes from plays that would otherwise include
- # them by default.
- vars:
- l_version_override_hosts: "oo_masters_to_config:oo_etcd_to_config"
- l_openshift_version_set_hosts: "oo_etcd_to_config:oo_masters_to_config:!oo_first_master"
- l_openshift_version_check_hosts: "oo_masters_to_config:!oo_first_master"
- l_upgrade_repo_hosts: "oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config"
- l_upgrade_no_proxy_hosts: "oo_masters_to_config"
- l_upgrade_health_check_hosts: "oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config"
- l_upgrade_verify_targets_hosts: "oo_masters_to_config"
- l_upgrade_docker_target_hosts: "oo_masters_to_config:oo_etcd_to_config"
- l_upgrade_excluder_hosts: "oo_masters_to_config"
- openshift_protect_installed_version: False
- when: l_double_upgrade_cp | default(False)
- - name: Flag pre-upgrade checks complete for hosts without errors 3.8
- hosts: oo_masters_to_config:oo_etcd_to_config
- tasks:
- - set_fact:
- pre_upgrade_complete: True
- when: l_double_upgrade_cp | default(False)
- # Pre-upgrade completed
- - name: Intermediate 3.8 Upgrade
- import_playbook: ../upgrade_control_plane.yml
- when: l_double_upgrade_cp | default(False)
- - name: Restore 3.9 version variables
- hosts: oo_masters_to_config:oo_etcd_to_config
- tasks:
- - set_fact:
- # all:!all == 0 hosts
- l_version_override_hosts: "all:!all"
- openshift_version: "{{ l_double_upgrade_saved_version }}"
- openshift_release: "{{ l_double_upgrade_saved_release }}"
- openshift_image_tag: "{{ l_double_upgrade_saved_tag }}"
- openshift_pkg_version: "{{ l_double_upgrade_saved_pkgv }}"
- when: l_double_upgrade_cp | default(False)
- ## 3.8 upgrade complete we should now be able to upgrade to 3.9
- - name: Clear some values now that we're done with double upgrades.
- hosts: oo_masters_to_config:oo_etcd_to_config
- tasks:
- - set_fact:
- l_double_upgrade_cp: False
- l_double_upgrade_cp_reset_version: False
- # We should be on 3.8 at this point, need to set upgrade_target to 3.9
- - name: Configure the upgrade target for second upgrade
- hosts: oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config
- tasks:
- - set_fact:
- openshift_upgrade_target: '3.9'
- openshift_upgrade_min: '3.8'
- - import_playbook: ../pre/config.yml
- # These vars a meant to exclude oo_nodes from plays that would otherwise include
- # them by default.
- vars:
- l_openshift_version_set_hosts: "oo_etcd_to_config:oo_masters_to_config:!oo_first_master"
- l_openshift_version_check_hosts: "oo_masters_to_config:!oo_first_master"
- l_upgrade_repo_hosts: "oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config"
- l_upgrade_no_proxy_hosts: "oo_masters_to_config"
- l_upgrade_health_check_hosts: "oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config"
- l_upgrade_verify_targets_hosts: "oo_masters_to_config"
- l_upgrade_docker_target_hosts: "oo_masters_to_config:oo_etcd_to_config"
- l_upgrade_excluder_hosts: "oo_masters_to_config"
- openshift_protect_installed_version: False
- - name: Flag pre-upgrade checks complete for hosts without errors
- hosts: oo_masters_to_config:oo_etcd_to_config
- tasks:
- - set_fact:
- pre_upgrade_complete: True
- - import_playbook: ../upgrade_control_plane.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
- roles:
- - role: openshift_facts
- tasks:
- - name: Restart master controllers to force new leader election mode
- service:
- name: "{{ openshift_service_type }}-master-controllers"
- state: restarted
- when: openshift.common.rolling_restart_mode == 'services'
- - name: Re-enable master controllers to force new leader election mode
- service:
- name: "{{ openshift_service_type }}-master-controllers"
- enabled: true
- when: openshift.common.rolling_restart_mode == 'system'
- - import_playbook: ../post_control_plane.yml
- - hosts: oo_masters
- tasks:
- - import_role:
- name: openshift_web_console
- tasks_from: remove_old_asset_config
- # This is for a migration for a dc/docker-registry env var
- # https://bugzilla.redhat.com/show_bug.cgi?id=1540467
- # OPENSHIFT_DEFAULT_REGISTRY to REGISTRY_OPENSHIFT_SERVER_ADDR
- - hosts: oo_first_master
- tasks:
- - import_role:
- name: openshift_hosted
- tasks_from: migrate_default_registry_var.yml
|