summaryrefslogtreecommitdiffstats
path: root/playbooks/common/openshift-master/scaleup.yml
blob: ed54e6ca48f08bf6799af8f041d10e225686d8c8 (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
---
- name: Update master count
  hosts: oo_masters:!oo_masters_to_config
  serial: 1
  roles:
  - openshift_facts
  post_tasks:
  - openshift_facts:
      role: master
      local_facts:
        ha: "{{ openshift_master_ha | default(groups.oo_masters | length > 1) }}"
        master_count: "{{ openshift_master_count | default(groups.oo_masters | length) }}"
  - name: Update master count
    modify_yaml:
      dest: "{{ openshift.common.config_base}}/master/master-config.yaml"
      yaml_key: 'kubernetesMasterConfig.masterCount'
      yaml_value: "{{ openshift.master.master_count }}"
    notify:
    - restart master api
    - restart master controllers
  handlers:
  - name: restart master api
    service: name={{ openshift.common.service_type }}-master-controllers state=restarted
    notify: verify api server
  # We retry the controllers because the API may not be 100% initialized yet.
  - name: restart master controllers
    command: "systemctl restart {{ openshift.common.service_type }}-master-controllers"
    retries: 3
    delay: 5
    register: result
    until: result.rc == 0
  - name: verify api server
    command: >
      curl --silent --tlsv1.2
      --cacert {{ openshift.common.config_base }}/master/ca-bundle.crt
      {{ openshift.master.api_url }}/healthz/ready
    args:
      # Disables the following warning:
      # Consider using get_url or uri module rather than running curl
      warn: no
    register: api_available_output
    until: api_available_output.stdout == 'ok'
    retries: 120
    delay: 1
    changed_when: false

- include: ../openshift-master/set_network_facts.yml

- include: ../../openshift-etcd/private/certificates.yml

- include: ../openshift-master/config.yml

- include: ../../openshift-loadbalancer/private/config.yml

- include: ../../openshift-node/private/certificates.yml

- include: ../../openshift-node/private/config.yml