upgrade.yml 5.7 KB

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