upgrade_control_plane.yml 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. ---
  2. #
  3. # Control Plane Upgrade Playbook
  4. #
  5. # Upgrades masters and Docker (only on standalone etcd hosts)
  6. #
  7. # This upgrade does not include:
  8. # - node service running on masters
  9. # - docker running on masters
  10. # - node service running on dedicated nodes
  11. #
  12. # You can run the upgrade_nodes.yml playbook after this to upgrade these components separately.
  13. #
  14. - import_playbook: ../init.yml
  15. vars:
  16. l_upgrade_no_switch_firewall_hosts: "oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config"
  17. l_init_fact_hosts: "oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config"
  18. ## Check to see if they're running 3.7 and if so upgrade them to 3.8 on control plan
  19. ## If they've specified pkg_version or image_tag preserve that for later use
  20. - name: Configure the upgrade target for the common upgrade tasks 3.8
  21. hosts: oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config
  22. tasks:
  23. - set_fact:
  24. openshift_upgrade_target: '3.8'
  25. openshift_upgrade_min: '3.7'
  26. openshift_release: '3.8'
  27. _requested_pkg_version: "{{ openshift_pkg_version if openshift_pkg_version is defined else omit }}"
  28. openshift_pkg_version: ''
  29. _requested_image_tag: "{{ openshift_image_tag if openshift_image_tag is defined else omit }}"
  30. l_double_upgrade_cp: True
  31. when: hostvars[groups.oo_first_master.0].openshift_currently_installed_version | version_compare('3.8','<')
  32. - name: set l_force_image_tag_to_version = True
  33. set_fact:
  34. # Need to set this during 3.8 upgrade to ensure image_tag is set correctly
  35. # to match 3.8 version
  36. l_force_image_tag_to_version: True
  37. when: _requested_image_tag is defined
  38. - import_playbook: ../pre/config.yml
  39. # These vars a meant to exclude oo_nodes from plays that would otherwise include
  40. # them by default.
  41. vars:
  42. l_openshift_version_set_hosts: "oo_etcd_to_config:oo_masters_to_config:!oo_first_master"
  43. l_openshift_version_check_hosts: "oo_masters_to_config:!oo_first_master"
  44. l_upgrade_repo_hosts: "oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config"
  45. l_upgrade_no_proxy_hosts: "oo_masters_to_config"
  46. l_upgrade_health_check_hosts: "oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config"
  47. l_upgrade_verify_targets_hosts: "oo_masters_to_config"
  48. l_upgrade_docker_target_hosts: "oo_masters_to_config:oo_etcd_to_config"
  49. l_upgrade_excluder_hosts: "oo_masters_to_config"
  50. openshift_protect_installed_version: False
  51. when: hostvars[groups.oo_first_master.0].openshift_currently_installed_version | version_compare('3.8','<')
  52. - name: Flag pre-upgrade checks complete for hosts without errors 3.8
  53. hosts: oo_masters_to_config:oo_etcd_to_config
  54. tasks:
  55. - set_fact:
  56. pre_upgrade_complete: True
  57. when: hostvars[groups.oo_first_master.0].openshift_currently_installed_version | version_compare('3.8','<')
  58. # Pre-upgrade completed
  59. - name: Intermediate 3.8 Upgrade
  60. import_playbook: ../upgrade_control_plane.yml
  61. when: hostvars[groups.oo_first_master.0].openshift_currently_installed_version | version_compare('3.8','<')
  62. ## 3.8 upgrade complete we should now be able to upgrade to 3.9
  63. - name: Configure the upgrade target for the common upgrade tasks 3.9
  64. hosts: oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config
  65. tasks:
  66. - meta: clear_facts
  67. - set_fact:
  68. openshift_upgrade_target: '3.9'
  69. openshift_upgrade_min: '3.8'
  70. openshift_release: '3.9'
  71. openshift_pkg_version: "{{ _requested_pkg_version if _requested_pkg_version is defined else '' }}"
  72. # Set the user's specified image_tag for 3.9 upgrade if it was provided.
  73. - set_fact:
  74. openshift_image_tag: "{{ _requested_image_tag }}"
  75. l_force_image_tag_to_version: False
  76. when: _requested_image_tag is defined
  77. # If the user didn't specify an image_tag, we need to force update image_tag
  78. # because it will have already been set during 3.8. If we aren't running
  79. # a double upgrade, then we can preserve image_tag because it will still
  80. # be the user provided value.
  81. - set_fact:
  82. l_force_image_tag_to_version: True
  83. when:
  84. - l_double_upgrade_cp is defined and l_double_upgrade_cp
  85. - _requested_image_tag is not defined
  86. - import_playbook: ../pre/config.yml
  87. # These vars a meant to exclude oo_nodes from plays that would otherwise include
  88. # them by default.
  89. vars:
  90. l_openshift_version_set_hosts: "oo_etcd_to_config:oo_masters_to_config:!oo_first_master"
  91. l_openshift_version_check_hosts: "oo_masters_to_config:!oo_first_master"
  92. l_upgrade_repo_hosts: "oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config"
  93. l_upgrade_no_proxy_hosts: "oo_masters_to_config"
  94. l_upgrade_health_check_hosts: "oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config"
  95. l_upgrade_verify_targets_hosts: "oo_masters_to_config"
  96. l_upgrade_docker_target_hosts: "oo_masters_to_config:oo_etcd_to_config"
  97. l_upgrade_excluder_hosts: "oo_masters_to_config"
  98. openshift_protect_installed_version: False
  99. openshift_version_reinit: True
  100. - name: Flag pre-upgrade checks complete for hosts without errors
  101. hosts: oo_masters_to_config:oo_etcd_to_config
  102. tasks:
  103. - set_fact:
  104. pre_upgrade_complete: True
  105. - import_playbook: ../upgrade_control_plane.yml
  106. # All controllers must be stopped at the same time then restarted
  107. - name: Cycle all controller services to force new leader election mode
  108. hosts: oo_masters_to_config
  109. gather_facts: no
  110. roles:
  111. - role: openshift_facts
  112. tasks:
  113. - name: Restart master controllers to force new leader election mode
  114. service:
  115. name: "{{ openshift_service_type }}-master-controllers"
  116. state: restarted
  117. when: openshift.common.rolling_restart_mode == 'services'
  118. - name: Re-enable master controllers to force new leader election mode
  119. service:
  120. name: "{{ openshift_service_type }}-master-controllers"
  121. enabled: true
  122. when: openshift.common.rolling_restart_mode == 'system'
  123. - import_playbook: ../post_control_plane.yml
  124. - hosts: oo_masters
  125. tasks:
  126. - import_role:
  127. name: openshift_web_console
  128. tasks_from: remove_old_asset_config