upgrade.yml 5.5 KB

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