upgrade_nodes.yml 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. ---
  2. #
  3. # Node Upgrade Playbook
  4. #
  5. # Upgrades nodes only, but requires the control plane to have already been upgraded.
  6. #
  7. - include: ../init.yml
  8. tags:
  9. - pre_upgrade
  10. - name: Configure the upgrade target for the common upgrade tasks
  11. hosts: oo_all_hosts
  12. tags:
  13. - pre_upgrade
  14. tasks:
  15. - set_fact:
  16. openshift_upgrade_target: "{{ '1.5' if deployment_type == 'origin' else '3.5' }}"
  17. openshift_upgrade_min: "{{ '1.4' if deployment_type == 'origin' else '3.4' }}"
  18. # Pre-upgrade
  19. - include: ../initialize_nodes_to_upgrade.yml
  20. tags:
  21. - pre_upgrade
  22. - name: Update repos on nodes
  23. hosts: oo_masters_to_config:oo_nodes_to_upgrade:oo_etcd_to_config:oo_lb_to_config
  24. roles:
  25. - openshift_repos
  26. tags:
  27. - pre_upgrade
  28. - name: Set openshift_no_proxy_internal_hostnames
  29. hosts: oo_masters_to_config:oo_nodes_to_upgrade
  30. tags:
  31. - pre_upgrade
  32. tasks:
  33. - set_fact:
  34. openshift_no_proxy_internal_hostnames: "{{ hostvars | oo_select_keys(groups['oo_nodes_to_upgrade']
  35. | union(groups['oo_masters_to_config'])
  36. | union(groups['oo_etcd_to_config'] | default([])))
  37. | oo_collect('openshift.common.hostname') | default([]) | join (',')
  38. }}"
  39. when: "{{ (openshift_http_proxy is defined or openshift_https_proxy is defined) and
  40. openshift_generate_no_proxy_hosts | default(True) | bool }}"
  41. - include: ../pre/verify_inventory_vars.yml
  42. tags:
  43. - pre_upgrade
  44. - include: ../disable_node_excluders.yml
  45. tags:
  46. - pre_upgrade
  47. - include: ../../initialize_openshift_version.yml
  48. tags:
  49. - pre_upgrade
  50. vars:
  51. # Request specific openshift_release and let the openshift_version role handle converting this
  52. # to a more specific version, respecting openshift_image_tag and openshift_pkg_version if
  53. # defined, and overriding the normal behavior of protecting the installed version
  54. openshift_release: "{{ openshift_upgrade_target }}"
  55. openshift_protect_installed_version: False
  56. # We skip the docker role at this point in upgrade to prevent
  57. # unintended package, container, or config upgrades which trigger
  58. # docker restarts. At this early stage of upgrade we can assume
  59. # docker is configured and running.
  60. skip_docker_role: True
  61. - name: Verify masters are already upgraded
  62. hosts: oo_masters_to_config
  63. tags:
  64. - pre_upgrade
  65. tasks:
  66. - fail: msg="Master running {{ openshift.common.version }} must be upgraded to {{ openshift_version }} before node upgrade can be run."
  67. when: openshift.common.version != openshift_version
  68. - include: ../pre/verify_control_plane_running.yml
  69. tags:
  70. - pre_upgrade
  71. - name: Verify upgrade targets
  72. hosts: oo_nodes_to_upgrade
  73. tasks:
  74. - include: ../pre/verify_upgrade_targets.yml
  75. tags:
  76. - pre_upgrade
  77. - name: Verify docker upgrade targets
  78. hosts: oo_nodes_to_upgrade
  79. tasks:
  80. - include: ../pre/verify_docker_upgrade_targets.yml
  81. tags:
  82. - pre_upgrade
  83. - include: ../pre/gate_checks.yml
  84. tags:
  85. - pre_upgrade
  86. # Pre-upgrade completed, nothing after this should be tagged pre_upgrade.
  87. # Separate step so we can execute in parallel and clear out anything unused
  88. # before we get into the serialized upgrade process which will then remove
  89. # remaining images if possible.
  90. - name: Cleanup unused Docker images
  91. hosts: oo_nodes_to_upgrade
  92. tasks:
  93. - include: ../cleanup_unused_images.yml
  94. - include: ../upgrade_nodes.yml