From 11f65c6c1d3bfd6a12f8e71d778d46d635010449 Mon Sep 17 00:00:00 2001 From: Michal Arbet Date: Tue, 15 Feb 2022 13:50:59 +0100 Subject: 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 --- docker/designate/designate-api/Dockerfile.j2 | 2 ++ docker/designate/designate-backend-bind9/Dockerfile.j2 | 2 ++ docker/designate/designate-base/Dockerfile.j2 | 2 ++ docker/designate/designate-central/Dockerfile.j2 | 2 ++ docker/designate/designate-mdns/Dockerfile.j2 | 2 ++ docker/designate/designate-producer/Dockerfile.j2 | 2 ++ docker/designate/designate-sink/Dockerfile.j2 | 2 ++ docker/designate/designate-worker/Dockerfile.j2 | 2 ++ 8 files changed, 16 insertions(+) (limited to 'docker/designate') diff --git a/docker/designate/designate-api/Dockerfile.j2 b/docker/designate/designate-api/Dockerfile.j2 index 085fbd64c..c4596b230 100644 --- a/docker/designate/designate-api/Dockerfile.j2 +++ b/docker/designate/designate-api/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 designate_api_footer %}{% endblock %} {% block footer %}{% endblock %} diff --git a/docker/designate/designate-backend-bind9/Dockerfile.j2 b/docker/designate/designate-backend-bind9/Dockerfile.j2 index 6f4362ecb..dbf153b53 100644 --- a/docker/designate/designate-backend-bind9/Dockerfile.j2 +++ b/docker/designate/designate-backend-bind9/Dockerfile.j2 @@ -25,5 +25,7 @@ RUN mkdir -p /var/lib/kolla/ /var/lib/{{ designate_backend_bind_name }}/ /run/{{ && chown -R root: /var/lib/{{ designate_backend_bind_name }} /run/{{ designate_backend_bind_name }} \ && chmod 755 /run/{{ designate_backend_bind_name }} +{{ macros.kolla_patch_sources() }} + {% block designate_backend_bind9_footer %}{% endblock %} {% block footer %}{% endblock %} diff --git a/docker/designate/designate-base/Dockerfile.j2 b/docker/designate/designate-base/Dockerfile.j2 index fd70264da..d909e0e80 100644 --- a/docker/designate/designate-base/Dockerfile.j2 +++ b/docker/designate/designate-base/Dockerfile.j2 @@ -29,4 +29,6 @@ RUN ln -s designate-base-source/* designate \ && touch /usr/local/bin/kolla_designate_extend_start \ && chmod 644 /usr/local/bin/kolla_extend_start /usr/local/bin/kolla_designate_extend_start +{{ macros.kolla_patch_sources() }} + {% block designate_base_footer %}{% endblock %} diff --git a/docker/designate/designate-central/Dockerfile.j2 b/docker/designate/designate-central/Dockerfile.j2 index 5ccd775b2..229e8336f 100644 --- a/docker/designate/designate-central/Dockerfile.j2 +++ b/docker/designate/designate-central/Dockerfile.j2 @@ -10,6 +10,8 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build COPY extend_start.sh /usr/local/bin/kolla_designate_extend_start RUN chmod 644 /usr/local/bin/kolla_designate_extend_start +{{ macros.kolla_patch_sources() }} + {% block designate_central_footer %}{% endblock %} {% block footer %}{% endblock %} diff --git a/docker/designate/designate-mdns/Dockerfile.j2 b/docker/designate/designate-mdns/Dockerfile.j2 index 6ad442bb3..c3b4f5b42 100644 --- a/docker/designate/designate-mdns/Dockerfile.j2 +++ b/docker/designate/designate-mdns/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 designate_mdns_footer %}{% endblock %} {% block footer %}{% endblock %} diff --git a/docker/designate/designate-producer/Dockerfile.j2 b/docker/designate/designate-producer/Dockerfile.j2 index 3a2701931..f21388a05 100644 --- a/docker/designate/designate-producer/Dockerfile.j2 +++ b/docker/designate/designate-producer/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 designate_producer_footer %}{% endblock %} {% block footer %}{% endblock %} diff --git a/docker/designate/designate-sink/Dockerfile.j2 b/docker/designate/designate-sink/Dockerfile.j2 index aa2a25942..5ddbf9600 100644 --- a/docker/designate/designate-sink/Dockerfile.j2 +++ b/docker/designate/designate-sink/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 designate_sink_footer %}{% endblock %} {% block footer %}{% endblock %} diff --git a/docker/designate/designate-worker/Dockerfile.j2 b/docker/designate/designate-worker/Dockerfile.j2 index b050f87d0..6aa1cdf7a 100644 --- a/docker/designate/designate-worker/Dockerfile.j2 +++ b/docker/designate/designate-worker/Dockerfile.j2 @@ -19,6 +19,8 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build {% endif %} {{ macros.install_packages(designate_worker_packages | customizable("packages")) }} +{{ macros.kolla_patch_sources() }} + {% block designate_worker_footer %}{% endblock %} {% block footer %}{% endblock %} -- cgit v1.2.3