upgrade.yml 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. ---
  2. - name: Upgrade base package on masters
  3. hosts: masters
  4. roles:
  5. - openshift_facts
  6. vars:
  7. openshift_version: "{{ openshift_pkg_version | default('') }}"
  8. tasks:
  9. - name: Upgrade base package
  10. yum: pkg={{ openshift.common.service_type }}{{ openshift_version }} state=latest
  11. - name: Re-Run cluster configuration to apply latest configuration changes
  12. include: ../../common/openshift-cluster/config.yml
  13. vars:
  14. g_etcd_group: "{{ 'etcd' }}"
  15. g_masters_group: "{{ 'masters' }}"
  16. g_nodes_group: "{{ 'nodes' }}"
  17. openshift_cluster_id: "{{ cluster_id | default('default') }}"
  18. openshift_deployment_type: "{{ deployment_type }}"
  19. - name: Upgrade masters
  20. hosts: masters
  21. vars:
  22. openshift_version: "{{ openshift_pkg_version | default('') }}"
  23. tasks:
  24. - name: Upgrade master packages
  25. yum: pkg={{ openshift.common.service_type }}-master{{ openshift_version }} state=latest
  26. - name: Restart master services
  27. service: name="{{ openshift.common.service_type}}-master" state=restarted
  28. - name: Upgrade nodes
  29. hosts: nodes
  30. vars:
  31. openshift_version: "{{ openshift_pkg_version | default('') }}"
  32. tasks:
  33. - name: Upgrade node packages
  34. yum: pkg={{ openshift.common.service_type }}-node{{ openshift_version }} state=latest
  35. - name: Restart node services
  36. service: name="{{ openshift.common.service_type }}-node" state=restarted
  37. - name: Determine new master version
  38. hosts: oo_first_master
  39. tasks:
  40. - name: Determine new version
  41. command: >
  42. rpm -q --queryformat '%{version}' {{ openshift.common.service_type }}-master
  43. register: _new_version
  44. - name: Ensure AOS 3.0.2 or Origin 1.0.6
  45. hosts: oo_first_master
  46. tasks:
  47. fail: This playbook requires Origin 1.0.6 or Atomic OpenShift 3.0.2 or later
  48. when: _new_version.stdout | version_compare('1.0.6','<') or ( _new_version.stdout | version_compare('3.0','>=' and _new_version.stdout | version_compare('3.0.2','<') )
  49. - name: Update cluster policy
  50. hosts: oo_first_master
  51. tasks:
  52. - name: oadm policy reconcile-cluster-roles --confirm
  53. command: >
  54. {{ openshift.common.admin_binary}} --config={{ openshift.common.config_base }}/master/admin.kubeconfig
  55. policy reconcile-cluster-roles --confirm
  56. - name: Update cluster policy bindings
  57. hosts: oo_first_master
  58. tasks:
  59. - name: oadm policy reconcile-cluster-role-bindings --confirm
  60. command: >
  61. {{ openshift.common.admin_binary}} --config={{ openshift.common.config_base }}/master/admin.kubeconfig
  62. policy reconcile-cluster-role-bindings
  63. --exclude-groups=system:authenticated
  64. --exclude-groups=system:unauthenticated
  65. --exclude-users=system:anonymous
  66. --additive-only=true --confirm
  67. when: ( _new_version.stdout | version_compare('1.0.6', '>') and _new_version.stdout | version_compare('3.0','<') ) or _new_version.stdout | version_compare('3.0.2','>')
  68. - name: Upgrade default router
  69. hosts: oo_first_master
  70. vars:
  71. - router_image: "{{ openshift.master.registry_url | replace( '${component}', 'haproxy-router' ) | replace ( '${version}', 'v' + _new_version.stdout ) }}"
  72. - oc_cmd: "{{ openshift.common.client_binary }} --config={{ openshift.common.config_base }}/master/admin.kubeconfig"
  73. tasks:
  74. - name: Check for default router
  75. command: >
  76. {{ oc_cmd }} get -n default dc/router
  77. register: _default_router
  78. failed_when: false
  79. changed_when: false
  80. - name: Check for allowHostNetwork and allowHostPorts
  81. when: _default_router.rc == 0
  82. shell: >
  83. {{ oc_cmd }} get -o yaml scc/privileged | /usr/bin/grep -e allowHostPorts -e allowHostNetwork
  84. register: _scc
  85. - name: Grant allowHostNetwork and allowHostPorts
  86. when:
  87. - _default_router.rc == 0
  88. - "'false' in _scc.stdout"
  89. command: >
  90. {{ oc_cmd }} patch scc/privileged -p '{"allowHostPorts":true,"allowHostNetwork":true}' --loglevel=9
  91. - name: Update deployment config to 1.0.4/3.0.1 spec
  92. when: _default_router.rc == 0
  93. command: >
  94. {{ oc_cmd }} patch dc/router -p
  95. '{"spec":{"strategy":{"rollingParams":{"updatePercent":-10},"spec":{"serviceAccount":"router","serviceAccountName":"router"}}}}'
  96. - name: Switch to hostNetwork=true
  97. when: _default_router.rc == 0
  98. command: >
  99. {{ oc_cmd }} patch dc/router -p '{"spec":{"template":{"spec":{"hostNetwork":true}}}}'
  100. - name: Update router image to current version
  101. when: _default_router.rc == 0
  102. command: >
  103. {{ oc_cmd }} patch dc/router -p
  104. '{"spec":{"template":{"spec":{"containers":[{"name":"router","image":"{{ router_image }}"}]}}}}'
  105. - name: Upgrade default
  106. hosts: oo_first_master
  107. vars:
  108. - registry_image: "{{ openshift.master.registry_url | replace( '${component}', 'docker-registry' ) | replace ( '${version}', 'v' + _new_version.stdout ) }}"
  109. - oc_cmd: "{{ openshift.common.client_binary }} --config={{ openshift.common.config_base }}/master/admin.kubeconfig"
  110. tasks:
  111. - name: Check for default registry
  112. command: >
  113. {{ oc_cmd }} get -n default dc/docker-registry
  114. register: _default_registry
  115. failed_when: false
  116. changed_when: false
  117. - name: Update registry image to current version
  118. when: _default_registry.rc == 0
  119. command: >
  120. {{ oc_cmd }} patch dc/docker-registry -p
  121. '{"spec":{"template":{"spec":{"containers":[{"name":"registry","image":"{{ registry_image }}"}]}}}}'
  122. - name: Update image streams and templates
  123. hosts: oo_first_master
  124. vars:
  125. openshift_examples_import_command: "update"
  126. openshift_deployment_type: "{{ deployment_type }}"
  127. roles:
  128. - openshift_examples