From 978a2864f923fa2e65afa13808571ea7738729e6 Mon Sep 17 00:00:00 2001
From: Seunghun Lee <seunghun@stackhpc.com>
Date: Tue, 23 Jul 2024 16:58:09 +0100
Subject: [PATCH] Fix symlinking of openstack-base source

Original symlinking works fine with a tarball source for the
requirements repo.

However, when user supplies git type source of it, we cannot
guarantee that the source direcotry name contains ``requirements``.

This patch fixes it by moving plugins directory outside of
openstack-base directory, which ultimately allow us to use simpler
symlinking as openstack-base-archive would be the only directory
inside.

Closes-Bug: #2074075
Change-Id: I5a9162a30b23cfabb64dabe5c12c226fa8627abd
---
 docker/openstack-base/Dockerfile.j2                   | 11 +++++------
 .../notes/fix-git-build-23c8fe6c4b0d92c4.yaml         |  6 ++++++
 2 files changed, 11 insertions(+), 6 deletions(-)
 create mode 100644 releasenotes/notes/fix-git-build-23c8fe6c4b0d92c4.yaml

diff --git a/docker/openstack-base/Dockerfile.j2 b/docker/openstack-base/Dockerfile.j2
index df03aaced1..1df4321e58 100644
--- a/docker/openstack-base/Dockerfile.j2
+++ b/docker/openstack-base/Dockerfile.j2
@@ -135,7 +135,7 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
         'pika',
         'prettytable',
         'psutil',
-        '/pycadf',
+        '/plugins/pycadf*',
         'pyinotify',
         'pymysql',
         'pyngus',
@@ -182,13 +182,12 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
 %}
 
 ADD openstack-base-archive /openstack-base-source
-ADD plugins-archive /openstack-base-source
+ADD plugins-archive /
 
-RUN ln -s openstack-base-source/plugins/* /pycadf \
-    && mkdir -p /etc/pycadf \
-    && cp /pycadf/etc/pycadf/* /etc/pycadf/
+RUN mkdir -p /etc/pycadf \
+    && cp /plugins/pycadf*/etc/pycadf/* /etc/pycadf/
 
-RUN ln -s openstack-base-source/*requirements* /requirements \
+RUN ln -s openstack-base-source/* /requirements \
 
 {# NOTE(mnasiadka): Remove ovs from upper-constraints.txt because python3-openvswitch
                     is usually newer than UC entry and older version would get installed
diff --git a/releasenotes/notes/fix-git-build-23c8fe6c4b0d92c4.yaml b/releasenotes/notes/fix-git-build-23c8fe6c4b0d92c4.yaml
new file mode 100644
index 0000000000..e89710b758
--- /dev/null
+++ b/releasenotes/notes/fix-git-build-23c8fe6c4b0d92c4.yaml
@@ -0,0 +1,6 @@
+---
+fixes:
+  - |
+    Fixed a bug preventing image builds when requirements are provided from
+    git type source.
+    `LP#2074075 <https://bugs.launchpad.net/kolla/+bug/2074075>`__