diff options
Diffstat (limited to 'kolla/docker/bifrost')
| -rw-r--r-- | kolla/docker/bifrost/bifrost-base/Dockerfile.j2 | 76 | ||||
| -rw-r--r-- | kolla/docker/bifrost/bifrost-base/bifrost_sudoers | 1 | ||||
| -rw-r--r-- | kolla/docker/bifrost/bifrost-base/build_arg.yml | 7 | ||||
| -rw-r--r-- | kolla/docker/bifrost/bifrost-deploy/Dockerfile.j2 | 35 |
4 files changed, 119 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 %} diff --git a/kolla/docker/bifrost/bifrost-base/bifrost_sudoers b/kolla/docker/bifrost/bifrost-base/bifrost_sudoers new file mode 100644 index 000000000..6c343a956 --- /dev/null +++ b/kolla/docker/bifrost/bifrost-base/bifrost_sudoers @@ -0,0 +1 @@ +bifrost ALL=(ALL) NOPASSWD:ALL diff --git a/kolla/docker/bifrost/bifrost-base/build_arg.yml b/kolla/docker/bifrost/bifrost-base/build_arg.yml new file mode 100644 index 000000000..8c810f133 --- /dev/null +++ b/kolla/docker/bifrost/bifrost-base/build_arg.yml @@ -0,0 +1,7 @@ +--- +skip_bootstrap: true +skip_start: true +install_dib: true +create_image_via_dib: false +ansible_python_interpreter: /var/lib/kolla/venv/bin/python +internal_ip: "127.0.0.1" diff --git a/kolla/docker/bifrost/bifrost-deploy/Dockerfile.j2 b/kolla/docker/bifrost/bifrost-deploy/Dockerfile.j2 new file mode 100644 index 000000000..04fc733fc --- /dev/null +++ b/kolla/docker/bifrost/bifrost-deploy/Dockerfile.j2 @@ -0,0 +1,35 @@ +FROM {{ namespace }}/{{ image_prefix }}bifrost-base:{{ tag }} +{% block labels %} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" +{% endblock %} + +{% block bifrost_deploy_header %}{% endblock %} + +ENV container docker + +{% import "macros.j2" as macros with context %} + +RUN rm -f $(find /lib/systemd/system/sysinit.target.wants/ ! -name systemd-tmpfiles-setup.service -type l); \ + rm -f /lib/systemd/system/multi-user.target.wants/*; \ + rm -f /etc/systemd/system/*.wants/*; \ + rm -f /lib/systemd/system/local-fs.target.wants/*; \ + rm -f /lib/systemd/system/sockets.target.wants/*udev*; \ + rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \ + rm -f /lib/systemd/system/basic.target.wants/*; \ + rm -f /lib/systemd/system/anaconda.target.wants/*; + +{% set bifrost_deploy_packages = [ + 'e2fsprogs', + 'systemd-sysv', +] %} + +{{ macros.install_packages(bifrost_deploy_packages | customizable("packages")) }} + +# Clear any customisation by Kolla to entrypoint & command +ENTRYPOINT [] +CMD [ "/sbin/init" ] + +{{ macros.kolla_patch_sources() }} + +{% block bifrost_deploy_footer %}{% endblock %} +{% block footer %}{% endblock %} |
