|
29 | 29 | state: directory |
30 | 30 | mode: "0755" |
31 | 31 |
|
32 | | -- name: Install required RPM packages |
33 | | - tags: |
34 | | - - packages |
35 | | - become: true |
36 | | - ansible.builtin.package: |
37 | | - name: |
38 | | - - python3-pip |
39 | | - - qemu-img |
40 | | - - dosfstools |
41 | | - - xfsprogs |
42 | | - state: present |
| 32 | +- name: Build NAT64 appliance image from source |
| 33 | + when: |
| 34 | + - cifmw_nat64_appliance_image_url | length == 0 |
| 35 | + block: |
| 36 | + - name: Install required RPM packages |
| 37 | + tags: |
| 38 | + - packages |
| 39 | + become: true |
| 40 | + ansible.builtin.package: |
| 41 | + name: |
| 42 | + - python3-pip |
| 43 | + - qemu-img |
| 44 | + - dosfstools |
| 45 | + - xfsprogs |
| 46 | + state: present |
43 | 47 |
|
44 | | -- name: Install diskimage-builder in virtualenv |
45 | | - tags: |
46 | | - - packages |
47 | | - ansible.builtin.pip: |
48 | | - virtualenv_command: "python3 -m venv" |
49 | | - virtualenv: "{{ cifmw_nat64_appliance_venv_dir }}" |
50 | | - name: |
51 | | - - diskimage-builder |
52 | | - - setuptools |
| 48 | + - name: Install diskimage-builder in virtualenv |
| 49 | + tags: |
| 50 | + - packages |
| 51 | + ansible.builtin.pip: |
| 52 | + virtualenv_command: "python3 -m venv" |
| 53 | + virtualenv: "{{ cifmw_nat64_appliance_venv_dir }}" |
| 54 | + name: |
| 55 | + - diskimage-builder |
| 56 | + - setuptools |
53 | 57 |
|
54 | | -- name: Copy files to cifmw_nat64_appliance_dir |
55 | | - ansible.builtin.copy: |
56 | | - src: "{{ item }}" |
57 | | - dest: "{{ cifmw_nat64_appliance_workdir }}/{{ item }}" |
58 | | - mode: preserve |
59 | | - loop: |
60 | | - - "elements/" |
61 | | - - nat64-appliance.yaml |
| 58 | + - name: Copy files to cifmw_nat64_appliance_dir |
| 59 | + ansible.builtin.copy: |
| 60 | + src: "{{ item }}" |
| 61 | + dest: "{{ cifmw_nat64_appliance_workdir }}/{{ item }}" |
| 62 | + mode: preserve |
| 63 | + loop: |
| 64 | + - "elements/" |
| 65 | + - nat64-appliance.yaml |
| 66 | + |
| 67 | + - name: Clone edpm-image-builder (reset-bls-entries dib element) |
| 68 | + ansible.builtin.git: |
| 69 | + repo: https://github.com/openstack-k8s-operators/edpm-image-builder.git |
| 70 | + dest: "{{ cifmw_nat64_appliance_workdir }}/edpm-image-builder" |
| 71 | + version: main |
62 | 72 |
|
63 | | -- name: Clone edpm-image-builder (reset-bls-entries dib element) |
64 | | - ansible.builtin.git: |
65 | | - repo: https://github.com/openstack-k8s-operators/edpm-image-builder.git |
66 | | - dest: "{{ cifmw_nat64_appliance_workdir }}/edpm-image-builder" |
67 | | - version: main |
| 73 | + - name: Build the nat64-appliance image using DIB |
| 74 | + become: "{{ cifmw_nat64_appliance_run_dib_as_root | default(false) | bool }}" |
| 75 | + environment: |
| 76 | + ELEMENTS_PATH: "{{ cifmw_nat64_appliance_workdir }}/elements:{{ cifmw_nat64_appliance_workdir }}/edpm-image-builder/dib/" |
| 77 | + DIB_IMAGE_CACHE: "{{ cifmw_nat64_appliance_workdir }}/cache" |
| 78 | + DIB_DEBUG_TRACE: '1' |
| 79 | + cifmw.general.ci_script: |
| 80 | + chdir: "{{ cifmw_nat64_appliance_workdir }}" |
| 81 | + output_dir: "{{ cifmw_nat64_appliance_basedir }}/artifacts" |
| 82 | + creates: "{{ cifmw_nat64_appliance_workdir }}/nat64-appliance.qcow2" |
| 83 | + script: "{{ cifmw_nat64_appliance_venv_dir }}/bin/diskimage-builder nat64-appliance.yaml {{ extra_args | default('') }}" |
| 84 | + executable: "/bin/bash" |
68 | 85 |
|
69 | | -- name: Build the nat64-appliance image using DIB |
70 | | - become: "{{ cifmw_nat64_appliance_run_dib_as_root | default(false) | bool }}" |
71 | | - environment: |
72 | | - ELEMENTS_PATH: "{{ cifmw_nat64_appliance_workdir }}/elements:{{ cifmw_nat64_appliance_workdir }}/edpm-image-builder/dib/" |
73 | | - DIB_IMAGE_CACHE: "{{ cifmw_nat64_appliance_workdir }}/cache" |
74 | | - DIB_DEBUG_TRACE: '1' |
75 | | - cifmw.general.ci_script: |
76 | | - chdir: "{{ cifmw_nat64_appliance_workdir }}" |
77 | | - output_dir: "{{ cifmw_nat64_appliance_basedir }}/artifacts" |
78 | | - creates: "{{ cifmw_nat64_appliance_workdir }}/nat64-appliance.qcow2" |
79 | | - script: "{{ cifmw_nat64_appliance_venv_dir }}/bin/diskimage-builder nat64-appliance.yaml {{ extra_args | default('') }}" |
80 | | - executable: "/bin/bash" |
| 86 | +- name: Download pre-built NAT64 appliance image |
| 87 | + when: |
| 88 | + - cifmw_nat64_appliance_image_url | length > 0 |
| 89 | + ansible.builtin.get_url: |
| 90 | + url: "{{ cifmw_nat64_appliance_image_url }}" |
| 91 | + dest: "{{ cifmw_nat64_appliance_workdir }}/nat64-appliance.qcow2" |
| 92 | + checksum: "{{ cifmw_nat64_appliance_image_checksum | default(omit) }}" |
| 93 | + timeout: "{{ cifmw_nat64_appliance_download_timeout }}" |
| 94 | + mode: "0644" |
0 commit comments