upgrade.yml 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  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 < 1.0.6 or (_new_version.stdout >= 3.0 and _new_version.stdout < 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: Upgrade default router
  48. hosts: oo_first_master
  49. vars:
  50. - router_image: "{{ openshift.master.registry_url | replace( '${component}', 'haproxy-router' ) | replace ( '${version}', 'v' + _new_version.stdout ) }}"
  51. - oc_cmd: "{{ openshift.common.client_binary }} --config={{ openshift.common.config_base }}/master/admin.kubeconfig"
  52. tasks:
  53. - name: Check for default router
  54. command: >
  55. {{ oc_cmd }} get -n default dc/router
  56. register: _default_router
  57. failed_when: false
  58. changed_when: false
  59. - name: Check for allowHostNetwork and allowHostPorts
  60. when: _default_router.rc == 0
  61. shell: >
  62. {{ oc_cmd }} get -o yaml scc/privileged | /usr/bin/grep -e allowHostPorts -e allowHostNetwork
  63. register: _scc
  64. - name: Grant allowHostNetwork and allowHostPorts
  65. when:
  66. - _default_router.rc == 0
  67. - "'false' in _scc.stdout"
  68. command: >
  69. {{ oc_cmd }} patch scc/privileged -p '{"allowHostPorts":true,"allowHostNetwork":true}' --loglevel=9
  70. - name: Update deployment config to 1.0.4/3.0.1 spec
  71. when: _default_router.rc == 0
  72. command: >
  73. {{ oc_cmd }} patch dc/router -p
  74. '{"spec":{"strategy":{"rollingParams":{"updatePercent":-10},"spec":{"serviceAccount":"router","serviceAccountName":"router"}}}}'
  75. - name: Switch to hostNetwork=true
  76. when: _default_router.rc == 0
  77. command: >
  78. {{ oc_cmd }} patch dc/router -p '{"spec":{"template":{"spec":{"hostNetwork":true}}}}'
  79. - name: Update router image to current version
  80. when: _default_router.rc == 0
  81. command: >
  82. {{ oc_cmd }} patch dc/router -p
  83. '{"spec":{"template":{"spec":{"containers":[{"name":"router","image":"{{ router_image }}"}]}}}}'
  84. - name: Upgrade default
  85. hosts: oo_first_master
  86. vars:
  87. - registry_image: "{{ openshift.master.registry_url | replace( '${component}', 'docker-registry' ) | replace ( '${version}', 'v' + _new_version.stdout ) }}"
  88. - oc_cmd: "{{ openshift.common.client_binary }} --config={{ openshift.common.config_base }}/master/admin.kubeconfig"
  89. tasks:
  90. - name: Check for default registry
  91. command: >
  92. {{ oc_cmd }} get -n default dc/docker-registry
  93. register: _default_registry
  94. failed_when: false
  95. changed_when: false
  96. - name: Update registry image to current version
  97. when: _default_registry.rc == 0
  98. command: >
  99. {{ oc_cmd }} patch dc/docker-registry -p
  100. '{"spec":{"template":{"spec":{"containers":[{"name":"registry","image":"{{ registry_image }}"}]}}}}'
  101. - name: Update image streams and templates
  102. hosts: oo_first_master
  103. vars:
  104. openshift_examples_import_command: "update"
  105. openshift_deployment_type: "{{ deployment_type }}"
  106. roles:
  107. - openshift_examples