Refactor dev mode

Provides mechanism for future work to fix bug where when package file
manifest changes, the changes were not reflected in to devmode-enabled
container.

It changes the strategy of installing projects in dev mode in containers.
Instead of bind mounting the project's git repository to the venv
of the container, the repository is bind mounted to
/dev-mode/<project_name> from which the it is installed using pip
on every startup of the container using kolla_install_projects script.

Related-bug: #1814515
Change-Id: Ia1bdff87cba73587a03124ab78a56b21c6176373
Signed-off-by: Roman Krček <roman.krcek@tietoevry.com>
This commit is contained in:
Roman Krček 2024-08-05 16:57:06 +02:00
parent c63961fdbe
commit 8ae55dd0b8
4 changed files with 35 additions and 1 deletions

View File

@ -358,6 +358,7 @@ RUN sed -ri '/-session(\s+)optional(\s+)pam_systemd.so/d' /etc/pam.d/system-auth
COPY set_configs.py /usr/local/bin/kolla_set_configs COPY set_configs.py /usr/local/bin/kolla_set_configs
COPY start.sh /usr/local/bin/kolla_start COPY start.sh /usr/local/bin/kolla_start
COPY copy_cacerts.sh /usr/local/bin/kolla_copy_cacerts COPY copy_cacerts.sh /usr/local/bin/kolla_copy_cacerts
COPY install_projects.sh /usr/local/bin/kolla_install_projects
COPY httpd_setup.sh /usr/local/bin/kolla_httpd_setup COPY httpd_setup.sh /usr/local/bin/kolla_httpd_setup
COPY sudoers /etc/sudoers COPY sudoers /etc/sudoers
@ -375,7 +376,10 @@ RUN chmod 755 /usr/local/bin/healthcheck_*
{% endif %} {% endif %}
RUN touch /usr/local/bin/kolla_extend_start \ RUN touch /usr/local/bin/kolla_extend_start \
&& chmod 755 /usr/local/bin/kolla_start /usr/local/bin/kolla_set_configs /usr/local/bin/kolla_copy_cacerts \ && chmod 755 /usr/local/bin/kolla_start \
/usr/local/bin/kolla_set_configs \
/usr/local/bin/kolla_copy_cacerts \
/usr/local/bin/kolla_install_projects \
&& chmod 644 /usr/local/bin/kolla_extend_start /usr/local/bin/kolla_httpd_setup \ && chmod 644 /usr/local/bin/kolla_extend_start /usr/local/bin/kolla_httpd_setup \
&& chmod 440 /etc/sudoers \ && chmod 440 /etc/sudoers \
&& mkdir -p /var/log/kolla \ && mkdir -p /var/log/kolla \

View File

@ -0,0 +1,12 @@
#!/bin/bash
# This script finds all projects in /dev-mode folder and
# installs them using pip
# The projects are mounted there when dev mode is enabled for them
# in kolla-ansible
if [ -d "/dev-mode" ]; then
for project in /dev-mode/*; do
pip install -U "$project"
done
fi

View File

@ -15,6 +15,9 @@ ARGS=""
# Install/remove custom CA certificates # Install/remove custom CA certificates
sudo kolla_copy_cacerts sudo kolla_copy_cacerts
# Install projects that are in /dev-mode
kolla_install_projects
if [[ ! "${!KOLLA_SKIP_EXTEND_START[@]}" ]]; then if [[ ! "${!KOLLA_SKIP_EXTEND_START[@]}" ]]; then
# Run additional commands if present # Run additional commands if present
. kolla_extend_start . kolla_extend_start

View File

@ -0,0 +1,15 @@
---
fixes:
- |
Provides mechanism for future work to fix bug where when package file
manifest changes, the changes were not reflected in to devmode-enabled
container.
`LP#1814515 <https://launchpad.net/bugs/1814515>`__
upgrade:
- |
Changes the strategy of installing projects in dev mode in containers.
Instead of bind mounting the project's git repository to the venv
of the container, the repository is bind mounted to
/dev-mode/<project_name> from which the project is installed using pip
on every startup of the container using kolla_install_projects script.