e2a4e134adef5053cda8f2768a0b4da23b4e0b15
[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         sudo openstack tripleo container image prepare
24         -e /home/stack/containers-prepare-parameter.yaml
25         --output-env-file docker-images.yaml
26     - name: Collect docker images in registry
27       uri:
28         url: http://{{ undercloud_ip }}:8787/v2/_catalog
29         body_format: json
30       register: response
31     - name: Patch Docker images
32       shell: >
33         cd /home/stack/containers/{{ item }} && docker build
34         -t {{ undercloud_ip }}:8787/tripleo{{ os_version }}/centos-binary-{{ item }}:apex .
35       when:
36         - patched_docker_services|length > 0
37         - item in (response.json)['repositories']|join(" ")
38       with_items: "{{ patched_docker_services }}"
39     - name: Push patched docker images to local registry
40       shell: docker push {{ undercloud_ip }}:8787/tripleo{{ os_version }}/centos-binary-{{ item }}:apex
41       when:
42         - patched_docker_services|length > 0
43         - item in (response.json)['repositories']|join(" ")
44       with_items: "{{ patched_docker_services }}"
45     - name: Modify Images with Apex tag
46       replace:
47         path: "/home/stack/docker-images.yaml"
48         regexp: "(\\s*Docker.*?:.*?centos-binary-{{ item[1] }}):.*"
49         replace: '\1:apex'
50       with_items: "{{ patched_docker_services }}"
51       become: yes