summaryrefslogtreecommitdiffstats
path: root/playbooks/common/openshift-cluster/upgrades/post_control_plane.yml
blob: d9ddf38605b67cdceb62fbfe60d530221631580e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
---
###############################################################################
# Post upgrade - Upgrade default router, default registry and examples
###############################################################################
- name: Upgrade default router and default registry
  hosts: oo_first_master
  vars:
    registry_image: "{{  openshift.master.registry_url | replace( '${component}', 'docker-registry' )  |
                         replace ( '${version}', openshift_image_tag ) }}"
    router_image: "{{ openshift.master.registry_url | replace( '${component}', 'haproxy-router' ) |
                      replace ( '${version}', openshift_image_tag ) }}"
    registry_console_image: "{{ openshift.master.registry_url | regex_replace ( '(origin|ose)-\\${component}', 'registry-console') |
                                replace ( '${version}', 'v' ~ openshift.common.short_version ) }}"

  pre_tasks:
  - name: Load lib_openshift modules
    include_role:
      name: lib_openshift
  - name: Collect all routers
    oc_obj:
      state: list
      kind: pods
      all_namespaces: True
      selector: 'router'
    register: all_routers

  - set_fact:
      haproxy_routers: "{{ all_routers.results.results[0]['items'] |
                           oo_pods_match_component(openshift_deployment_type, 'haproxy-router') |
                           oo_select_keys_from_list(['metadata']) }}"
    when:
    - all_routers.results.returncode == 0

  - set_fact: haproxy_routers=[]
    when:
    - all_routers.results.returncode != 0

  - name: Update router image to current version
    oc_edit:
      kind: dc
      name: "{{ item['labels']['deploymentconfig'] }}"
      namespace: "{{ item['namespace'] }}"
      content:
        spec.template.spec.containers[0].image: "{{ router_image }}"
    with_items: "{{ haproxy_routers }}"
    when:
    - all_routers.results.returncode == 0

  - name: Check for default registry
    oc_obj:
      state: list
      kind: dc
      name: docker-registry
    register: _default_registry

  - name: Update registry image to current version
    oc_edit:
      kind: dc
      name: docker-registry
      namespace: default
      content:
        spec.template.spec.containers[0].image: "{{ registry_image }}"
    when:
    - _default_registry.results.results[0] != {}

  - name: Check for registry-console
    oc_obj:
      state: list
      kind: dc
      name: registry-console
    register: _registry_console
    when:
    - openshift.common.deployment_type != 'origin'

  - name: Update registry-console image to current version
    oc_edit:
      kind: dc
      name: registry-console
      namespace: default
      content:
        spec.template.spec.containers[0].image: "{{ registry_console_image }}"
    when:
    - openshift.common.deployment_type != 'origin'
    - _registry_console.results.results[0] != {}

  roles:
  - openshift_manageiq
  # Create the new templates shipped in 3.2, existing templates are left
  # unmodified. This prevents the subsequent role definition for
  # openshift_examples from failing when trying to replace templates that do
  # not already exist. We could have potentially done a replace --force to
  # create and update in one step.
  - openshift_examples
  - openshift_hosted_templates
  # Update the existing templates
  - role: openshift_examples
    registry_url: "{{ openshift.master.registry_url }}"
    openshift_examples_import_command: replace
  - role: openshift_hosted_templates
    registry_url: "{{ openshift.master.registry_url }}"
    openshift_hosted_templates_import_command: replace

# Check for warnings to be printed at the end of the upgrade:
- name: Check for warnings
  hosts: oo_masters_to_config
  tasks:
  # Check if any masters are using pluginOrderOverride and warn if so, only for 1.3/3.3 and beyond:
  - name: grep pluginOrderOverride
    command: grep pluginOrderOverride {{ openshift.common.config_base }}/master/master-config.yaml
    register: grep_plugin_order_override
    when: openshift.common.version_gte_3_3_or_1_3 | bool
    changed_when: false
    failed_when: false

  - name: Warn if pluginOrderOverride is in use in master-config.yaml
    debug:
      msg: "WARNING pluginOrderOverride is being deprecated in master-config.yaml, please see https://docs.openshift.com/enterprise/latest/architecture/additional_concepts/admission_controllers.html for more information."
    when:
    - not grep_plugin_order_override | skipped
    - grep_plugin_order_override.rc == 0

- name: Re-enable excluder if it was previously enabled
  hosts: oo_masters_to_config
  tags:
  - always
  gather_facts: no
  roles:
  - role: openshift_excluder
    r_openshift_excluder_action: enable
    r_openshift_excluder_service_type: "{{ openshift.common.service_type }}"