aboutsummaryrefslogtreecommitdiff
path: root/docker/nova
diff options
context:
space:
mode:
authorMichal Arbet <michal.arbet@ultimum.io>2022-02-15 13:50:59 +0100
committerDr. Jens Harbott <harbott@osism.tech>2024-11-15 08:04:30 +0000
commit11f65c6c1d3bfd6a12f8e71d778d46d635010449 (patch)
tree8e223ecd5f90c5142cdb70b88f4e2400136fcd9d /docker/nova
parent36c12676ff185f524a7f4d2f2f4c70b5d60462b4 (diff)
downloadkolla-11f65c6c1d3bfd6a12f8e71d778d46d635010449.tar.gz
kolla-11f65c6c1d3bfd6a12f8e71d778d46d635010449.zip
Add mechanism for patching files in containers
This patch adds a way to patch files in a Docker image built by Kolla. This is very useful for several reasons, specifically: - Custom modifications - The stable branch of some library has a fix but no pip package has been released - Eliminates the need to package your own pip packages - Eliminates the need to invent your own versioning to prevent upstream versioning - Eliminates the need to manage a pip server - In other words, it eliminates the need to get a wheel into the image and install it manually using any method not previously mentioned It is also highly desirable because, although Kolla can replace the source for a service with a custom URL for a tarball or its own Git repo, it cannot do this for dependencies pulled from pip. I would also like to point out that this is a feature with its own code path and works only if the user "inserts" a patch into the folder patches/docker-image/something.patch and creates an analogous series file for patch source code. Simply said, this code will never interfere with the upstream build process since this feature is not intended for use in upstream. It is rather meant for downstream users who know what they are doing. Now they just have an option to patch their images. Everything works on all layers of the Docker image and stores a report of applied patches which can then be seen in /etc. This mechanism is similar as debian patch quilt. Change-Id: I61d0790c5d4d070b7ea9e8c99c0a76ff5d22bf9d
Diffstat (limited to 'docker/nova')
-rw-r--r--docker/nova/nova-api/Dockerfile.j22
-rw-r--r--docker/nova/nova-base/Dockerfile.j22
-rw-r--r--docker/nova/nova-compute-ironic/Dockerfile.j22
-rw-r--r--docker/nova/nova-compute/Dockerfile.j22
-rw-r--r--docker/nova/nova-conductor/Dockerfile.j22
-rw-r--r--docker/nova/nova-libvirt/Dockerfile.j22
-rw-r--r--docker/nova/nova-novncproxy/Dockerfile.j22
-rw-r--r--docker/nova/nova-scheduler/Dockerfile.j22
-rw-r--r--docker/nova/nova-serialproxy/Dockerfile.j22
-rw-r--r--docker/nova/nova-spicehtml5proxy/Dockerfile.j22
-rw-r--r--docker/nova/nova-ssh/Dockerfile.j22
11 files changed, 22 insertions, 0 deletions
diff --git a/docker/nova/nova-api/Dockerfile.j2 b/docker/nova/nova-api/Dockerfile.j2
index 395555564..01399edca 100644
--- a/docker/nova/nova-api/Dockerfile.j2
+++ b/docker/nova/nova-api/Dockerfile.j2
@@ -14,5 +14,7 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
COPY extend_start.sh /usr/local/bin/kolla_nova_extend_start
RUN chmod 644 /usr/local/bin/kolla_nova_extend_start
+{{ macros.kolla_patch_sources() }}
+
{% block nova_api_footer %}{% endblock %}
{% block footer %}{% endblock %}
diff --git a/docker/nova/nova-base/Dockerfile.j2 b/docker/nova/nova-base/Dockerfile.j2
index f6556045d..8f42da4e7 100644
--- a/docker/nova/nova-base/Dockerfile.j2
+++ b/docker/nova/nova-base/Dockerfile.j2
@@ -80,4 +80,6 @@ RUN ln -s nova-base-source/* nova \
&& touch /usr/local/bin/kolla_nova_extend_start \
&& chmod 644 /usr/local/bin/kolla_extend_start /usr/local/bin/kolla_nova_extend_start
+{{ macros.kolla_patch_sources() }}
+
{% block nova_base_footer %}{% endblock %}
diff --git a/docker/nova/nova-compute-ironic/Dockerfile.j2 b/docker/nova/nova-compute-ironic/Dockerfile.j2
index e5d42e4e6..56d1f0abd 100644
--- a/docker/nova/nova-compute-ironic/Dockerfile.j2
+++ b/docker/nova/nova-compute-ironic/Dockerfile.j2
@@ -11,6 +11,8 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{{ macros.install_packages(nova_compute_ironic_packages | customizable("packages")) }}
+{{ macros.kolla_patch_sources() }}
+
{% block nova_compute_ironic_footer %}{% endblock %}
{% block footer %}{% endblock %}
diff --git a/docker/nova/nova-compute/Dockerfile.j2 b/docker/nova/nova-compute/Dockerfile.j2
index b3ea61ffd..4a50e8a83 100644
--- a/docker/nova/nova-compute/Dockerfile.j2
+++ b/docker/nova/nova-compute/Dockerfile.j2
@@ -110,6 +110,8 @@ RUN {{ macros.install_pip(nova_compute_pip_packages | customizable("pip_packages
&& chmod 644 /usr/local/bin/kolla_nova_extend_start \
&& rm -f /etc/machine-id
+{{ macros.kolla_patch_sources() }}
+
{% block nova_compute_footer %}{% endblock %}
{% block footer %}{% endblock %}
diff --git a/docker/nova/nova-conductor/Dockerfile.j2 b/docker/nova/nova-conductor/Dockerfile.j2
index 1b297a9cd..f91cc76c6 100644
--- a/docker/nova/nova-conductor/Dockerfile.j2
+++ b/docker/nova/nova-conductor/Dockerfile.j2
@@ -10,6 +10,8 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
COPY extend_start.sh /usr/local/bin/kolla_nova_extend_start
RUN chmod 644 /usr/local/bin/kolla_nova_extend_start
+{{ macros.kolla_patch_sources() }}
+
{% block nova_conductor_footer %}{% endblock %}
{% block footer %}{% endblock %}
diff --git a/docker/nova/nova-libvirt/Dockerfile.j2 b/docker/nova/nova-libvirt/Dockerfile.j2
index 811916191..2cd88f0a7 100644
--- a/docker/nova/nova-libvirt/Dockerfile.j2
+++ b/docker/nova/nova-libvirt/Dockerfile.j2
@@ -89,5 +89,7 @@ RUN rm -f /etc/libvirt/qemu/networks/default.xml /etc/libvirt/qemu/networks/auto
COPY extend_start.sh /usr/local/bin/kolla_extend_start
RUN chmod 644 /usr/local/bin/kolla_extend_start
+{{ macros.kolla_patch_sources() }}
+
{% block nova_libvirt_footer %}{% endblock %}
{% block footer %}{% endblock %}
diff --git a/docker/nova/nova-novncproxy/Dockerfile.j2 b/docker/nova/nova-novncproxy/Dockerfile.j2
index 3fc35e71f..208637b9a 100644
--- a/docker/nova/nova-novncproxy/Dockerfile.j2
+++ b/docker/nova/nova-novncproxy/Dockerfile.j2
@@ -13,6 +13,8 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{{ macros.install_packages(nova_novncproxy_packages | customizable("packages")) }}
+{{ macros.kolla_patch_sources() }}
+
{% block nova_novncproxy_footer %}{% endblock %}
{% block footer %}{% endblock %}
diff --git a/docker/nova/nova-scheduler/Dockerfile.j2 b/docker/nova/nova-scheduler/Dockerfile.j2
index 765dc3840..16d8aba10 100644
--- a/docker/nova/nova-scheduler/Dockerfile.j2
+++ b/docker/nova/nova-scheduler/Dockerfile.j2
@@ -7,6 +7,8 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% import "macros.j2" as macros with context %}
+{{ macros.kolla_patch_sources() }}
+
{% block nova_scheduler_footer %}{% endblock %}
{% block footer %}{% endblock %}
diff --git a/docker/nova/nova-serialproxy/Dockerfile.j2 b/docker/nova/nova-serialproxy/Dockerfile.j2
index 2c20ffdb8..62e859efa 100644
--- a/docker/nova/nova-serialproxy/Dockerfile.j2
+++ b/docker/nova/nova-serialproxy/Dockerfile.j2
@@ -7,6 +7,8 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% import "macros.j2" as macros with context %}
+{{ macros.kolla_patch_sources() }}
+
{% block nova_serialproxy_footer %}{% endblock %}
{% block footer %}{% endblock %}
diff --git a/docker/nova/nova-spicehtml5proxy/Dockerfile.j2 b/docker/nova/nova-spicehtml5proxy/Dockerfile.j2
index e37af27df..fe7a671b4 100644
--- a/docker/nova/nova-spicehtml5proxy/Dockerfile.j2
+++ b/docker/nova/nova-spicehtml5proxy/Dockerfile.j2
@@ -25,6 +25,8 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{{ macros.install_packages(nova_spicehtml5proxy_packages | customizable("packages")) }}
+{{ macros.kolla_patch_sources() }}
+
{% block nova_spicehtml5proxy_footer %}{% endblock %}
{% block footer %}{% endblock %}
diff --git a/docker/nova/nova-ssh/Dockerfile.j2 b/docker/nova/nova-ssh/Dockerfile.j2
index 605fa9883..c1ee000cb 100644
--- a/docker/nova/nova-ssh/Dockerfile.j2
+++ b/docker/nova/nova-ssh/Dockerfile.j2
@@ -27,5 +27,7 @@ COPY extend_start.sh /usr/local/bin/kolla_extend_start
RUN sed -ri 's/session(\s+)required(\s+)pam_loginuid.so/session\1optional\2pam_loginuid.so/' /etc/pam.d/sshd \
&& chmod 644 /usr/local/bin/kolla_extend_start
+{{ macros.kolla_patch_sources() }}
+
{% block nova_ssh_footer %}{% endblock %}
{% block footer %}{% endblock %}