|
@@ -0,0 +1,115 @@
|
|
|
+---
|
|
|
+- name: Re-Run cluster configuration to apply latest configuration changes
|
|
|
+ include: ../../common/openshift-cluster/config.yml
|
|
|
+ vars:
|
|
|
+ g_etcd_group: "{{ 'etcd' }}"
|
|
|
+ g_masters_group: "{{ 'masters' }}"
|
|
|
+ g_nodes_group: "{{ 'nodes' }}"
|
|
|
+ openshift_cluster_id: "{{ cluster_id | default('default') }}"
|
|
|
+ openshift_deployment_type: "{{ deployment_type }}"
|
|
|
+
|
|
|
+- name: Upgrade masters
|
|
|
+ hosts: masters
|
|
|
+ vars:
|
|
|
+ openshift_version: "{{ openshift_pkg_version | default('') }}"
|
|
|
+ tasks:
|
|
|
+ - name: Upgrade master packages
|
|
|
+ yum: pkg={{ openshift.common.service_type }}-master{{ openshift_version }} state=latest
|
|
|
+ - name: Restart master services
|
|
|
+ service: name="{{ openshift.common.service_type}}-master" state=restarted
|
|
|
+
|
|
|
+- name: Upgrade nodes
|
|
|
+ hosts: nodes
|
|
|
+ vars:
|
|
|
+ openshift_version: "{{ openshift_pkg_version | default('') }}"
|
|
|
+ tasks:
|
|
|
+ - name: Upgrade node packages
|
|
|
+ yum: pkg={{ openshift.common.service_type }}-node{{ openshift_version }} state=latest
|
|
|
+ - name: Restart node services
|
|
|
+ service: name="{{ openshift.common.service_type }}-node" state=restarted
|
|
|
+
|
|
|
+- name: Determine new master version
|
|
|
+ hosts: oo_first_master
|
|
|
+ tasks:
|
|
|
+ - name: Determine new version
|
|
|
+ command: >
|
|
|
+ rpm -q --queryformat '%{version}' {{ openshift.common.service_type }}-master
|
|
|
+ register: _new_version
|
|
|
+
|
|
|
+- name: Ensure AOS 3.0.2 or Origin 1.0.6
|
|
|
+ hosts: oo_first_master
|
|
|
+ tasks:
|
|
|
+ fail: This playbook requires Origin 1.0.6 or Atomic OpenShift 3.0.2 or later
|
|
|
+ when: _new_version.stdout < 1.0.6 or (_new_version.stdout >= 3.0 and _new_version.stdout < 3.0.2)
|
|
|
+
|
|
|
+- name: Update cluster policy
|
|
|
+ hosts: oo_first_master
|
|
|
+ tasks:
|
|
|
+ - name: oadm policy reconcile-cluster-roles --confirm
|
|
|
+ command: >
|
|
|
+ {{ openshift.common.admin_binary}} --config={{ openshift.common.config_base }}/master/admin.kubeconfig
|
|
|
+ policy reconcile-cluster-roles --confirm
|
|
|
+
|
|
|
+- name: Upgrade default router
|
|
|
+ hosts: oo_first_master
|
|
|
+ vars:
|
|
|
+ - router_image: "{{ openshift.master.registry_url | replace( '${component}', 'haproxy-router' ) | replace ( '${version}', 'v' + _new_version.stdout ) }}"
|
|
|
+ - oc_cmd: "{{ openshift.common.client_binary }} --config={{ openshift.common.config_base }}/master/admin.kubeconfig"
|
|
|
+ tasks:
|
|
|
+ - name: Check for default router
|
|
|
+ command: >
|
|
|
+ {{ oc_cmd }} get -n default dc/router
|
|
|
+ register: _default_router
|
|
|
+ failed_when: false
|
|
|
+ changed_when: false
|
|
|
+ - name: Check for allowHostNetwork and allowHostPorts
|
|
|
+ when: _default_router.rc == 0
|
|
|
+ shell: >
|
|
|
+ {{ oc_cmd }} get -o yaml scc/privileged | /usr/bin/grep -e allowHostPorts -e allowHostNetwork
|
|
|
+ register: _scc
|
|
|
+ - name: Grant allowHostNetwork and allowHostPorts
|
|
|
+ when:
|
|
|
+ - _default_router.rc == 0
|
|
|
+ - "'false' in _scc.stdout"
|
|
|
+ command: >
|
|
|
+ {{ oc_cmd }} patch scc/privileged -p '{"allowHostPorts":true,"allowHostNetwork":true}' --loglevel=9
|
|
|
+ - name: Update deployment config to 1.0.4/3.0.1 spec
|
|
|
+ when: _default_router.rc == 0
|
|
|
+ command: >
|
|
|
+ {{ oc_cmd }} patch dc/router -p
|
|
|
+ '{"spec":{"strategy":{"rollingParams":{"updatePercent":-10},"spec":{"serviceAccount":"router","serviceAccountName":"router"}}}}'
|
|
|
+ - name: Switch to hostNetwork=true
|
|
|
+ when: _default_router.rc == 0
|
|
|
+ command: >
|
|
|
+ {{ oc_cmd }} patch dc/router -p '{"spec":{"template":{"spec":{"hostNetwork":true}}}}'
|
|
|
+ - name: Update router image to current version
|
|
|
+ when: _default_router.rc == 0
|
|
|
+ command: >
|
|
|
+ {{ oc_cmd }} patch dc/router -p
|
|
|
+ '{"spec":{"template":{"spec":{"containers":[{"name":"router","image":"{{ router_image }}"}]}}}}'
|
|
|
+
|
|
|
+- name: Upgrade default
|
|
|
+ hosts: oo_first_master
|
|
|
+ vars:
|
|
|
+ - registry_image: "{{ openshift.master.registry_url | replace( '${component}', 'docker-registry' ) | replace ( '${version}', 'v' + _new_version.stdout ) }}"
|
|
|
+ - oc_cmd: "{{ openshift.common.client_binary }} --config={{ openshift.common.config_base }}/master/admin.kubeconfig"
|
|
|
+ tasks:
|
|
|
+ - name: Check for default registry
|
|
|
+ command: >
|
|
|
+ {{ oc_cmd }} get -n default dc/docker-registry
|
|
|
+ register: _default_registry
|
|
|
+ failed_when: false
|
|
|
+ changed_when: false
|
|
|
+ - name: Update registry image to current version
|
|
|
+ when: _default_registry.rc == 0
|
|
|
+ command: >
|
|
|
+ {{ oc_cmd }} patch dc/docker-registry -p
|
|
|
+ '{"spec":{"template":{"spec":{"containers":[{"name":"registry","image":"{{ registry_image }}"}]}}}}'
|
|
|
+
|
|
|
+- name: Update image streams and templates
|
|
|
+ hosts: oo_first_master
|
|
|
+ vars:
|
|
|
+ openshift_examples_import_command: "update"
|
|
|
+ openshift_deployment_type: "{{ deployment_type }}"
|
|
|
+ roles:
|
|
|
+ - openshift_examples
|