summaryrefslogtreecommitdiffstats
path: root/playbooks/common/openshift-cluster/node_docker_ca.yml
blob: 6482c827bb9ff52201537b259e831e02df64fd0d (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
---
- name: Configure CA certificate for secure registry
  hosts: oo_nodes_to_config
  tags:
  - hosted
  tasks:
  - name: Create temp directory for kubeconfig
    command: mktemp -d /tmp/openshift-ansible-XXXXXX
    register: mktemp
    when: openshift_hosted_manage_registry | default(true) | bool
    changed_when: false
    delegate_to: "{{ groups.oo_first_master.0 }}"
    run_once: true

  - set_fact:
      openshift_hosted_kubeconfig: "{{ mktemp.stdout }}/admin.kubeconfig"
    when: openshift_hosted_manage_registry | default(true) | bool
    delegate_to: "{{ groups.oo_first_master.0 }}"
    run_once: true

  - name: Copy the admin client config(s)
    command: >
      cp {{ openshift.common.config_base }}/master/admin.kubeconfig {{ openshift_hosted_kubeconfig }}
    when: openshift_hosted_manage_registry | default(true) | bool
    changed_when: false
    delegate_to: "{{ groups.oo_first_master.0 }}"
    run_once: true

  - name: Retrieve docker-registry route
    command: >
      {{ openshift.common.client_binary }} get route docker-registry
      -o jsonpath='{.spec.host}'
      --config={{ openshift_hosted_kubeconfig }}
      -n default
    register: docker_registry_route
    when: openshift_hosted_manage_registry | default(true) | bool
    changed_when: false
    delegate_to: "{{ groups.oo_first_master.0 }}"
    run_once: true

  - name: Retrieve registry service IP
    command: >
      {{ openshift.common.client_binary }} get svc/docker-registry
      -o jsonpath='{.spec.clusterIP}'
      --config={{ openshift_hosted_kubeconfig }}
      -n default
    register: docker_registry_service_ip
    when: openshift_hosted_manage_registry | default(true) | bool
    changed_when: false
    delegate_to: "{{ groups.oo_first_master.0 }}"
    run_once: true

  - name: Create registry CA directories
    file:
      path: "/etc/docker/certs.d/{{ item }}"
      state: directory
    with_items:
    - "{{ docker_registry_service_ip.stdout }}:5000"
    - "{{ docker_registry_route.stdout }}"
    - "docker-registry.default.svc.cluster.local:5000"
    when: openshift_hosted_manage_registry | default(true) | bool

  - name: Copy CA to registry CA directories
    copy:
      src: "{{ openshift.common.config_base }}/node/ca.crt"
      dest: "/etc/docker/certs.d/{{ item }}"
      remote_src: yes
      force: yes
    with_items:
    - "{{ docker_registry_service_ip.stdout }}:5000"
    - "{{ docker_registry_route.stdout }}"
    - "docker-registry.default.svc.cluster.local:5000"
    when: openshift_hosted_manage_registry | default(true) | bool
    notify:
    - Wait for docker-registry deployment
    - Wait for registry-console deployment
    - Restart docker

  handlers:
  # Restarting docker before deployments have begun will block the
  # deployments from ever starting so try waiting for the registry to
  # become available.
  - name: Wait for docker-registry deployment
    command: >
      {{ openshift.common.client_binary }} get dc/docker-registry
      -o jsonpath='{.status.availableReplicas}'
      --config={{ openshift_hosted_kubeconfig }}
      -n default
    register: l_docker_registry_available_replicas
    until: l_docker_registry_available_replicas.stdout | default("0") != "0"
    retries: 30
    delay: 1
    failed_when: false
    changed_when: false

  - name: Wait for registry-console deployment
    command: >
      {{ openshift.common.client_binary }} get dc/registry-console
      -o jsonpath='{.status.availableReplicas}'
      --config={{ openshift_hosted_kubeconfig }}
      -n default
    register: l_registry_console_available_replicas
    until: l_registry_console_available_replicas.stdout | default("0") != "0"
    retries: 30
    delay: 1
    failed_when: false
    changed_when: false

  - name: Restart docker
    service:
      name: docker
      state: restarted

- name: Delete temp directory
  hosts: oo_first_master
  tags:
  - hosted
  tasks:
  - name: Delete temp directory
    file:
      name: "{{ mktemp.stdout }}"
      state: absent
    when: openshift_hosted_manage_registry | default(true) | bool
    changed_when: False