996651b478
When kolla_base_arch and ansible_facts.architecture differs we need to run multiarch/qemu-user-static image - see [1]. [1]: https://github.com/multiarch/qemu-user-static Co-Authored-By: Bartosz Bezak <bartosz@stackhpc.com> Change-Id: If149418f509c687c3e5d1072cc39a80af33dec5a
62 lines
2.3 KiB
YAML
62 lines
2.3 KiB
YAML
---
|
|
- name: Ensure Kolla container images are built
|
|
hosts: container-image-builders
|
|
vars:
|
|
# Set this to True to push images to the registry when built.
|
|
push_images: False
|
|
# Set this to True to skip using cache.
|
|
nocache: False
|
|
# Set this variable to a space-separated list of regexes to override the
|
|
# default set of images.
|
|
container_image_regexes: ""
|
|
kolla_build_log_path: "/var/log/kolla-build.log"
|
|
platform: "{{ 'linux/arm64' if kolla_base_arch == 'aarch64' else 'linux/amd64' }}"
|
|
tasks:
|
|
- name: Set the container image sets to build if images regexes specified
|
|
set_fact:
|
|
container_image_sets:
|
|
- regexes: "{{ container_image_regexes }}"
|
|
when: container_image_regexes != ''
|
|
|
|
- name: Display the regexes for container images that will be built
|
|
debug:
|
|
msg: >
|
|
Building container images matching
|
|
'{{ item.regexes }}'. Build logs will be appended to
|
|
{{ kolla_build_log_path }}.
|
|
with_items: "{{ container_image_sets }}"
|
|
|
|
- name: Ensure Kolla build log file exists
|
|
file:
|
|
path: "{{ kolla_build_log_path }}"
|
|
state: touch
|
|
owner: "{{ ansible_facts.user_uid }}"
|
|
group: "{{ ansible_facts.user_gid }}"
|
|
become: True
|
|
|
|
- name: Login to docker registry
|
|
docker_login:
|
|
registry_url: "{{ kolla_docker_registry or omit }}"
|
|
username: "{{ kolla_docker_registry_username }}"
|
|
password: "{{ kolla_docker_registry_password }}"
|
|
reauthorize: yes
|
|
when:
|
|
- kolla_docker_registry_username is truthy
|
|
- kolla_docker_registry_password is truthy
|
|
|
|
- name: Ensure Kolla container images are built
|
|
shell:
|
|
cmd: >
|
|
set -o pipefail &&
|
|
. {{ kolla_venv }}/bin/activate &&
|
|
kolla-build
|
|
--config-dir {{ kolla_build_config_path }}
|
|
{% if kolla_docker_registry is not none %}--registry {{ kolla_docker_registry }}{% endif %}
|
|
{% if push_images | bool %}--push{% endif %}
|
|
{% if nocache | bool %}--nocache{% endif %}
|
|
{% if kolla_base_arch != ansible_facts.architecture %}--platform {{ platform }}{% endif %}
|
|
{{ item.regexes }} 2>&1 | tee --append {{ kolla_build_log_path }}
|
|
executable: /bin/bash
|
|
with_items: "{{ container_image_sets }}"
|
|
when: item.regexes != ''
|