summaryrefslogtreecommitdiffstats
path: root/lib/ansible/playbooks/prepare_overcloud_containers.yml
blob: 54dbe098586bea8a1cd7e6db51d08196f0d75d6f (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
---
- hosts: all
  tasks:
    - name: Upload container patches archive
      copy:
        src: "{{ apex_temp_dir }}/docker_patches.tar.gz"
        dest: "/home/stack/docker_patches.tar.gz"
        owner: stack
        group: stack
        mode: 0644
      when: patched_docker_services|length > 0
    - name: Unpack container patches archive
      unarchive:
        src: /home/stack/docker_patches.tar.gz
        remote_src: yes
        list_files: yes
        group: stack
        owner: stack
        dest: /home/stack/
      when: patched_docker_services|length > 0
    - name: Prepare generic docker registry image file
      shell: >
        {{ stackrc }} && openstack overcloud container image prepare
        --namespace docker.io/tripleo{{ os_version }}
        --tag {{ container_tag }}
        --push-destination {{ undercloud_ip }}:8787
        -e /usr/share/openstack-tripleo-heat-templates/environments/docker.yaml
        -e /usr/share/openstack-tripleo-heat-templates/environments/storage-environment.yaml
        --output-images-file overcloud_containers.yml
        --output-env-file docker-images.yaml
      become: yes
      become_user: stack
    - name: Prepare SDN docker registry image file
      shell: >
        {{ stackrc }} && openstack overcloud container image prepare
        --namespace docker.io/tripleo{{ os_version }}
        --tag {{ container_tag }}
        --push-destination {{ undercloud_ip }}:8787
        {{ sdn_env_file }}
        --output-images-file sdn_containers.yml
        --output-env-file sdn-images.yaml
      become: yes
      become_user: stack
      when: sdn != false
    - name: Update Ceph tag for aarch64 in container env file
      lineinfile:
        path: /home/stack/overcloud_containers.yml
        regexp: '.*ceph.*'
        line: '- imagename: docker.io/ceph/daemon:master-fafda7d-luminous-centos-7-aarch64'
      when: aarch64
    - name: Update Ceph tag for aarch64 in container image file
      lineinfile:
        path: /home/stack/docker-images.yaml
        regexp: '^DockerCephDaemonImage'
        line: 'DockerCephDaemonImage: {{ undercloud_ip }}:8787/ceph/daemon/master-fafda7d-luminous-centos-7-aarch64'
      when: aarch64
    - name: Upload docker images to local registry
      shell: >
        {{ stackrc }} && openstack overcloud container image upload
        --config-file /home/stack/overcloud_containers.yml
    - name: Upload SDN docker images to local registry
      shell: >
        {{ stackrc }} && openstack overcloud container image upload
        --config-file /home/stack/sdn_containers.yml
      when: sdn != false
    - name: Collect docker images in registry
      uri:
        url: http://{{ undercloud_ip }}:8787/v2/_catalog
        body_format: json
      register: response
    - name: Patch Docker images
      shell: >
        cd /home/stack/containers/{{ item }} && docker build
        -t {{ undercloud_ip }}:8787/tripleo{{ os_version }}/centos-binary-{{ item }}:apex .
      when:
        - patched_docker_services|length > 0
        - item in (response.json)['repositories']|join(" ")
      with_items: "{{ patched_docker_services }}"
    - name: Push patched docker images to local registry
      shell: docker push {{ undercloud_ip }}:8787/tripleo{{ os_version }}/centos-binary-{{ item }}:apex
      when:
        - patched_docker_services|length > 0
        - item in (response.json)['repositories']|join(" ")
      with_items: "{{ patched_docker_services }}"
    - name: Modify Images with Apex tag
      replace:
        path: "{{ item[0] }}"
        regexp: "(\\s*Docker.*?:.*?centos-binary-{{ item[1] }}):.*"
        replace: '\1:apex'
      with_nested:
        - [ '/home/stack/sdn-images.yaml', '/home/stack/docker-images.yaml']
        - "{{ patched_docker_services }}"