aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docker/base/Dockerfile.j26
-rw-r--r--docker/base/install_projects.sh12
-rw-r--r--docker/base/start.sh3
-rw-r--r--releasenotes/notes/bug-1814515-99197e13a6280861.yaml15
4 files changed, 35 insertions, 1 deletions
diff --git a/docker/base/Dockerfile.j2 b/docker/base/Dockerfile.j2
index fe91ca6a6..d220eba2c 100644
--- a/docker/base/Dockerfile.j2
+++ b/docker/base/Dockerfile.j2
@@ -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 start.sh /usr/local/bin/kolla_start
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 sudoers /etc/sudoers
@@ -375,7 +376,10 @@ RUN chmod 755 /usr/local/bin/healthcheck_*
{% endif %}
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 440 /etc/sudoers \
&& mkdir -p /var/log/kolla \
diff --git a/docker/base/install_projects.sh b/docker/base/install_projects.sh
new file mode 100644
index 000000000..a9a7948d0
--- /dev/null
+++ b/docker/base/install_projects.sh
@@ -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
diff --git a/docker/base/start.sh b/docker/base/start.sh
index 79d7f7c74..2b77b4ea2 100644
--- a/docker/base/start.sh
+++ b/docker/base/start.sh
@@ -15,6 +15,9 @@ ARGS=""
# Install/remove custom CA certificates
sudo kolla_copy_cacerts
+# Install projects that are in /dev-mode
+kolla_install_projects
+
if [[ ! "${!KOLLA_SKIP_EXTEND_START[@]}" ]]; then
# Run additional commands if present
. kolla_extend_start
diff --git a/releasenotes/notes/bug-1814515-99197e13a6280861.yaml b/releasenotes/notes/bug-1814515-99197e13a6280861.yaml
new file mode 100644
index 000000000..640a46343
--- /dev/null
+++ b/releasenotes/notes/bug-1814515-99197e13a6280861.yaml
@@ -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.