aboutsummaryrefslogtreecommitdiff
path: root/kolla/docker/bifrost/bifrost-base/Dockerfile.j2
diff options
context:
space:
mode:
Diffstat (limited to 'kolla/docker/bifrost/bifrost-base/Dockerfile.j2')
-rw-r--r--kolla/docker/bifrost/bifrost-base/Dockerfile.j276
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 %}