upgrade.yml 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. ---
  2. ###############################################################################
  3. # The restart playbook should be run after this playbook completes.
  4. ###############################################################################
  5. - include: docker_upgrade.yml
  6. when: not openshift.common.is_atomic | bool
  7. ###############################################################################
  8. # Upgrade Masters
  9. ###############################################################################
  10. - name: Upgrade master
  11. hosts: oo_masters_to_config
  12. tasks:
  13. - include: rpm_upgrade.yml component=master
  14. when: not openshift.common.is_containerized | bool
  15. - include: containerized_upgrade.yml
  16. when: openshift.common.is_containerized | bool
  17. # - name: Upgrade master configuration
  18. # openshift_upgrade_config:
  19. # from_version: '3.1'
  20. # to_version: '3.2'
  21. # role: master
  22. # config_base: "{{ hostvars[inventory_hostname].openshift.common.config_base }}"
  23. - name: Set master update status to complete
  24. hosts: oo_masters_to_config
  25. tasks:
  26. - set_fact:
  27. master_update_complete: True
  28. ##############################################################################
  29. # Gate on master update complete
  30. ##############################################################################
  31. - name: Gate on master update
  32. hosts: localhost
  33. connection: local
  34. become: no
  35. tasks:
  36. - set_fact:
  37. master_update_completed: "{{ hostvars
  38. | oo_select_keys(groups.oo_masters_to_config)
  39. | oo_collect('inventory_hostname', {'master_update_complete': true}) }}"
  40. - set_fact:
  41. master_update_failed: "{{ groups.oo_masters_to_config | difference(master_update_completed) }}"
  42. - fail:
  43. msg: "Upgrade cannot continue. The following masters did not finish updating: {{ master_update_failed | join(',') }}"
  44. when: master_update_failed | length > 0
  45. ###############################################################################
  46. # Upgrade Nodes
  47. ###############################################################################
  48. - name: Upgrade nodes
  49. hosts: oo_nodes_to_config
  50. tasks:
  51. - include: rpm_upgrade.yml
  52. vars:
  53. component: "node"
  54. openshift_version: "{{ openshift_pkg_version | default('') }}"
  55. when: not openshift.common.is_containerized | bool
  56. - include: containerized_upgrade.yml
  57. when: openshift.common.is_containerized | bool
  58. # This will restart the node
  59. - name: Restart openvswitch service
  60. service: name="{{ openshift.common.service_type }}-node" state=restarted
  61. - set_fact:
  62. node_update_complete: True
  63. ##############################################################################
  64. # Gate on nodes update
  65. ##############################################################################
  66. - name: Gate on nodes update
  67. hosts: localhost
  68. connection: local
  69. become: no
  70. tasks:
  71. - set_fact:
  72. node_update_completed: "{{ hostvars
  73. | oo_select_keys(groups.oo_nodes_to_config)
  74. | oo_collect('inventory_hostname', {'node_update_complete': true}) }}"
  75. - set_fact:
  76. node_update_failed: "{{ groups.oo_nodes_to_config | difference(node_update_completed) }}"
  77. - fail:
  78. msg: "Upgrade cannot continue. The following nodes did not finish updating: {{ node_update_failed | join(',') }}"
  79. when: node_update_failed | length > 0
  80. ###############################################################################
  81. # Reconcile Cluster Roles, Cluster Role Bindings and Security Context Constraints
  82. ###############################################################################
  83. - name: Reconcile Cluster Roles and Cluster Role Bindings and Security Context Constraints
  84. hosts: oo_masters_to_config
  85. roles:
  86. - { role: openshift_cli, image_tag: "v{{ g_new_version }}" }
  87. vars:
  88. origin_reconcile_bindings: "{{ deployment_type == 'origin' and g_new_version | version_compare('1.0.6', '>') }}"
  89. ent_reconcile_bindings: true
  90. openshift_master_ha: "{{ groups.oo_masters_to_config | length > 1 }}"
  91. tasks:
  92. - name: Verifying the correct commandline tools are available
  93. shell: grep {{ verify_upgrade_version }} {{ openshift.common.admin_binary}}
  94. when: openshift.common.is_containerized | bool and verify_upgrade_version is defined
  95. - name: Reconcile Cluster Roles
  96. command: >
  97. {{ openshift.common.admin_binary}} --config={{ openshift.common.config_base }}/master/admin.kubeconfig
  98. policy reconcile-cluster-roles --confirm
  99. run_once: true
  100. - name: Reconcile Cluster Role Bindings
  101. command: >
  102. {{ openshift.common.admin_binary}} --config={{ openshift.common.config_base }}/master/admin.kubeconfig
  103. policy reconcile-cluster-role-bindings
  104. --exclude-groups=system:authenticated
  105. --exclude-groups=system:authenticated:oauth
  106. --exclude-groups=system:unauthenticated
  107. --exclude-users=system:anonymous
  108. --additive-only=true --confirm
  109. when: origin_reconcile_bindings | bool or ent_reconcile_bindings | bool
  110. run_once: true
  111. - name: Reconcile Security Context Constraints
  112. command: >
  113. {{ openshift.common.admin_binary}} policy reconcile-sccs --confirm
  114. run_once: true
  115. - set_fact:
  116. reconcile_complete: True
  117. ##############################################################################
  118. # Gate on reconcile
  119. ##############################################################################
  120. - name: Gate on reconcile
  121. hosts: localhost
  122. connection: local
  123. become: no
  124. tasks:
  125. - set_fact:
  126. reconcile_completed: "{{ hostvars
  127. | oo_select_keys(groups.oo_masters_to_config)
  128. | oo_collect('inventory_hostname', {'reconcile_complete': true}) }}"
  129. - set_fact:
  130. reconcile_failed: "{{ groups.oo_masters_to_config | difference(reconcile_completed) }}"
  131. - fail:
  132. msg: "Upgrade cannot continue. The following masters did not finish reconciling: {{ reconcile_failed | join(',') }}"
  133. when: reconcile_failed | length > 0