Attempting to fix NFS issues
[apex.git] / lib / ansible / playbooks / prepare_overcloud_containers.yml
1 ---
2 - hosts: all
3   tasks:
4     - name: Upload container patches archive
5       copy:
6         src: "{{ apex_temp_dir }}/docker_patches.tar.gz"
7         dest: "/home/stack/docker_patches.tar.gz"
8         owner: stack
9         group: stack
10         mode: 0644
11       when: patched_docker_services|length > 0
12     - name: Unpack container patches archive
13       unarchive:
14         src: /home/stack/docker_patches.tar.gz
15         remote_src: yes
16         list_files: yes
17         group: stack
18         owner: stack
19         dest: /home/stack/
20       when: patched_docker_services|length > 0
21     - name: Prepare generic docker registry image file
22       shell: >
23         {{ stackrc }} && openstack overcloud container image prepare
24         --namespace docker.io/tripleo{{ os_version }}
25         --tag {{ container_tag }}
26         --push-destination {{ undercloud_ip }}:8787
27         -e /usr/share/openstack-tripleo-heat-templates/environments/docker.yaml
28         -e /usr/share/openstack-tripleo-heat-templates/environments/storage-environment.yaml
29         --output-images-file overcloud_containers.yml
30         --output-env-file docker-images.yaml
31       become: yes
32       become_user: stack
33     - name: Prepare SDN docker registry image file
34       shell: >
35         {{ stackrc }} && openstack overcloud container image prepare
36         --namespace docker.io/tripleo{{ os_version }}
37         --tag {{ container_tag }}
38         --push-destination {{ undercloud_ip }}:8787
39         {{ sdn_env_file }}
40         --output-images-file sdn_containers.yml
41         --output-env-file sdn-images.yaml
42       become: yes
43       become_user: stack
44       when: sdn != false
45     - name: Touch sdn-images file when nosdn
46       copy:
47         content: ""
48         dest: /home/stack/sdn-images.yaml
49         force: no
50         group: stack
51         owner: stack
52         mode: 0644
53       when: sdn == false
54     - name: Update Ceph tag for aarch64 in container env file
55       lineinfile:
56         path: /home/stack/overcloud_containers.yml
57         regexp: '.*ceph.*'
58         line: '- imagename: docker.io/ceph/daemon:master-fafda7d-luminous-centos-7-aarch64'
59       when: aarch64
60     - name: Update Ceph tag for aarch64 in container image file
61       lineinfile:
62         path: /home/stack/docker-images.yaml
63         regexp: '^DockerCephDaemonImage'
64         line: 'DockerCephDaemonImage: {{ undercloud_ip }}:8787/ceph/daemon/master-fafda7d-luminous-centos-7-aarch64'
65       when: aarch64
66     - name: Upload docker images to local registry
67       shell: >
68         {{ stackrc }} && openstack overcloud container image upload
69         --config-file /home/stack/overcloud_containers.yml
70     - name: Upload SDN docker images to local registry
71       shell: >
72         {{ stackrc }} && openstack overcloud container image upload
73         --config-file /home/stack/sdn_containers.yml
74       when: sdn != false
75     - name: Collect docker images in registry
76       uri:
77         url: http://{{ undercloud_ip }}:8787/v2/_catalog
78         body_format: json
79       register: response
80     - include_tasks: patch_containers.yml
81       with_items: "{{ patched_docker_services }}"
82       loop_control:
83         loop_var: item
84       when:
85         - patched_docker_services|length > 0
86         - item in (response.json)['repositories']|join(" ")
87     - name: Push patched docker images to local registry
88       shell: docker push {{ undercloud_ip }}:8787/tripleo{{ os_version }}/centos-binary-{{ item }}:apex
89       when:
90         - patched_docker_services|length > 0
91         - item in (response.json)['repositories']|join(" ")
92       with_items: "{{ patched_docker_services }}"
93     - name: Modify Images with Apex tag
94       replace:
95         path: "{{ item[0] }}"
96         regexp: "(\\s*Docker.*?:.*?centos-binary-{{ item[1] }}):.*"
97         replace: '\1:apex'
98       with_nested:
99         - [ '/home/stack/sdn-images.yaml', '/home/stack/docker-images.yaml']
100         - "{{ patched_docker_services }}"