upgrade.yml 5.3 KB

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