diff options
Diffstat (limited to 'kolla/docker/bifrost/bifrost-base/Dockerfile.j2')
| -rw-r--r-- | kolla/docker/bifrost/bifrost-base/Dockerfile.j2 | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/kolla/docker/bifrost/bifrost-base/Dockerfile.j2 b/kolla/docker/bifrost/bifrost-base/Dockerfile.j2 new file mode 100644 index 000000000..3e82a9fd3 --- /dev/null +++ b/kolla/docker/bifrost/bifrost-base/Dockerfile.j2 @@ -0,0 +1,76 @@ +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 %} + +{% 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(['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 %} |
