Enables containerized overcloud deployments
[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 trunk.registry.rdoproject.org/{{ os_version }}
25         --tag {{ container_tag }}
26         --push-destination {{ undercloud_ip }}:8787
27         -e /usr/share/openstack-tripleo-heat-templates/environments/docker.yaml
28         --output-images-file overcloud_containers.yml
29       become: yes
30       become_user: stack
31     - name: Prepare SDN docker registry image file
32       shell: >
33         {{ stackrc }} && openstack overcloud container image prepare
34         --namespace trunk.registry.rdoproject.org/{{ os_version }}
35         --tag {{ container_tag }}
36         --push-destination {{ undercloud_ip }}:8787
37         -e {{ sdn_env_file }}
38         --output-images-file sdn_containers.yml
39       become: yes
40       become_user: stack
41       when: sdn != false
42     - name: Upload docker images to local registry
43       shell: >
44         {{ stackrc }} && openstack overcloud container image upload
45         --config-file /home/stack/overcloud_containers.yml
46     - name: Upload SDN docker images to local registry
47       shell: >
48         {{ stackrc }} && openstack overcloud container image upload
49         --config-file /home/stack/sdn_containers.yml
50       when: sdn != false
51     - name: Collect docker images in registry
52       uri:
53         url: http://{{ undercloud_ip }}:8787/v2/_catalog
54         body_format: json
55       register: response
56     - name: Patch Docker images
57       shell: >
58         cd /home/stack/containers/{{ item }} && docker build
59         -t {{ undercloud_ip }}:8787/{{ os_version }}/centos-binary-{{ item }}:apex .
60       when:
61         - patched_docker_services|length > 0
62         - item in (response.json)['repositories']|join(" ")
63       with_items: "{{ patched_docker_services }}"
64     - name: Push patched docker images to local registry
65       shell: docker push {{ undercloud_ip }}:8787/{{ os_version }}/centos-binary-{{ item }}:apex
66       when:
67         - patched_docker_services|length > 0
68         - item in (response.json)['repositories']|join(" ")
69       with_items: "{{ patched_docker_services }}"
70     - name: Prepare deployment generic docker image file
71       shell: >
72         {{ stackrc }} && openstack overcloud container image prepare
73         --namespace {{ undercloud_ip }}:8787/{{ os_version }}
74         --tag {{ container_tag }}
75         -e /usr/share/openstack-tripleo-heat-templates/environments/docker.yaml
76         --output-env-file docker-images.yaml
77       become: yes
78       become_user: stack
79     - name: Prepare deployment SDN docker image file
80       shell: >
81         {{ stackrc }} && openstack overcloud container image prepare
82         --namespace {{ undercloud_ip }}:8787/{{ os_version }}
83         --tag {{ container_tag }}
84         -e {{ sdn_env_file }}
85         --output-env-file sdn-images.yaml
86       when: sdn != false
87       become: yes
88       become_user: stack
89     - name: Modify Images with Apex tag
90       replace:
91         path: "{{ item[0] }}"
92         regexp: "(\\s*Docker.*?:.*?centos-binary-{{ item[1] }}):.*"
93         replace: '\1:apex'
94       with_nested:
95         - [ '/home/stack/sdn-images.yaml', '/home/stack/docker-images.yaml']
96         - "{{ patched_docker_services }}"
97     - name: Pull Ceph docker image
98       shell: docker pull {{ ceph_docker_image }}
99       become: yes
100     - name: Tag Ceph image for local registry
101       shell: docker tag {{ ceph_docker_image }} {{ undercloud_ip }}:8787/{{ ceph_docker_image }}
102       become: yes
103     - name: Push Ceph docker image to local registry
104       shell: docker push {{ undercloud_ip }}:8787/{{ ceph_docker_image }}
105       become: yes