--- - 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" 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 of type '{{ item.type | default(kolla_install_type) }}' 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: # NOTE(wszumski): Switch to truthy filter when min ansible>=2.10.5 - kolla_docker_registry_username not in [none, ""] - kolla_docker_registry_password not in [none, ""] - 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 item.type is defined %}--type {{ item.type }}{% endif %} {% if kolla_docker_registry is not none %}--registry {{ kolla_docker_registry }}{% endif %} {% if push_images | bool %}--push{% endif %} {% if nocache | bool %}--nocache{% endif %} {{ item.regexes }} 2>&1 | tee --append {{ kolla_build_log_path }} executable: /bin/bash with_items: "{{ container_image_sets }}" when: item.regexes != ''