FROM {{ namespace }}/{{ image_prefix }}openstack-base:{{ tag }} {% block labels %} LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" {% endblock %} {% block bifrost_base_header %}{% endblock %} {% import "macros.j2" as macros with context %} {{ macros.kolla_enable_base_repos() }} {% set venv_path='/var/lib/kolla/venv' %} {{ macros.configure_user(name='bifrost') }} {% set bifrost_base_packages = [ 'cpio' ] %} {% if base_package_type == 'rpm' %} {# NOTE(mgoddard): EPEL required for nginx #} {{ macros.enable_extra_repos(['crb', 'epel']) }} {% endif %} {{ macros.install_packages(bifrost_base_packages | customizable("packages")) }} ENV VENV {{ venv_path }} {% set bifrost_base_pip_packages = [ '/bifrost' ] %} ADD bifrost-base-archive /bifrost-base-source COPY build_arg.yml /tmp/build_arg.yml RUN mkdir -p /requirements \ && curl -o /requirements/upper-constraints.txt ${UPPER_CONSTRAINTS_FILE:-https://releases.openstack.org/constraints/upper/{{ openstack_release }}} \ && python3 -m venv --system-site-packages {{ venv_path }} \ && ln -s bifrost-base-source/* bifrost \ && {{ macros.install_pip(['pip', 'wheel', 'setuptools']) }} \ && {{ macros.install_pip(bifrost_base_pip_packages | customizable("pip_packages")) }} WORKDIR /bifrost {# ANSIBLE_GATHER_TIMEOUT is a workaround for https://github.com/ansible/ansible/issues/43884 #} ENV ANSIBLE_GATHER_TIMEOUT=30 {% block bifrost_ansible_install %} {%- if base_package_type == 'deb' %} RUN apt-get --error-on=any update && \ {%- else %} RUN echo " " && \ {%- endif %} bash -c '$VENV/bin/pip install "ansible>=12,<14" && \ $VENV/bin/ansible-galaxy collection install -r /bifrost/ansible-collections-requirements.yml && \ $VENV/bin/ansible-playbook -vvvv -i /bifrost/playbooks/inventory/target \ /bifrost/playbooks/install.yaml \ -e upper_constraints_file="/requirements/upper-constraints.txt" \ -e git_branch={{ openstack_branch_slashed }} \ -e ipa_upstream_release={{ openstack_branch }} \ -e @/tmp/build_arg.yml && \ {%- if base_package_type == 'deb' %} apt-get clean && rm -rf /var/lib/apt/lists/*' {%- else %} dnf clean all && rm -rf /var/dnf/cache' {%- endif %} {% endblock %} COPY bifrost_sudoers /etc/sudoers.d/kolla_bifrost_sudoers RUN chmod 750 /etc/sudoers.d \ && chmod 440 /etc/sudoers.d/kolla_bifrost_sudoers \ && chown -R bifrost:bifrost /bifrost {{ macros.kolla_patch_sources() }} {% block bifrost_base_footer %}{% endblock %} {{ macros.kolla_cleanup_repos() }}