diff options
| author | Michal Arbet <michal.arbet@ultimum.io> | 2022-02-15 13:50:59 +0100 |
|---|---|---|
| committer | Dr. Jens Harbott <harbott@osism.tech> | 2024-11-15 08:04:30 +0000 |
| commit | 11f65c6c1d3bfd6a12f8e71d778d46d635010449 (patch) | |
| tree | 8e223ecd5f90c5142cdb70b88f4e2400136fcd9d /docker/prometheus | |
| parent | 36c12676ff185f524a7f4d2f2f4c70b5d60462b4 (diff) | |
| download | kolla-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/prometheus')
13 files changed, 43 insertions, 0 deletions
diff --git a/docker/prometheus/prometheus-alertmanager/Dockerfile.j2 b/docker/prometheus/prometheus-alertmanager/Dockerfile.j2 index babcac1d4..d06f47dde 100644 --- a/docker/prometheus/prometheus-alertmanager/Dockerfile.j2 +++ b/docker/prometheus/prometheus-alertmanager/Dockerfile.j2 @@ -5,12 +5,16 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build {% block prometheus_alertmanager_header %}{% endblock %} +{% import "macros.j2" as macros with context %} + {% block prometheus_alertmanager_install %} ADD prometheus-alertmanager-archive /prometheus-alertmanager-source RUN cp -r /prometheus-alertmanager-source/* /opt/ \ && ln -s /opt/alertmanager* /opt/prometheus_alertmanager {% endblock %} +{{ macros.kolla_patch_sources() }} + {% block prometheus_alertmanager_footer %}{% endblock %} {% block footer %}{% endblock %} diff --git a/docker/prometheus/prometheus-base/Dockerfile.j2 b/docker/prometheus/prometheus-base/Dockerfile.j2 index 3db16cbfd..a8032920c 100644 --- a/docker/prometheus/prometheus-base/Dockerfile.j2 +++ b/docker/prometheus/prometheus-base/Dockerfile.j2 @@ -12,4 +12,6 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build COPY extend_start.sh /usr/local/bin/kolla_extend_start RUN chmod 644 /usr/local/bin/kolla_extend_start +{{ macros.kolla_patch_sources() }} + {% block prometheus_base_footer %}{% endblock %} diff --git a/docker/prometheus/prometheus-blackbox-exporter/Dockerfile.j2 b/docker/prometheus/prometheus-blackbox-exporter/Dockerfile.j2 index 4b45bef8b..cb0b52f62 100644 --- a/docker/prometheus/prometheus-blackbox-exporter/Dockerfile.j2 +++ b/docker/prometheus/prometheus-blackbox-exporter/Dockerfile.j2 @@ -28,6 +28,8 @@ RUN ln -s /prometheus-blackbox-exporter-source/* prometheus-blackbox-exporter \ && setcap cap_net_raw+ep /opt/blackbox_exporter/blackbox_exporter {% endblock %} +{{ macros.kolla_patch_sources() }} + {% block prometheus_blackbox_exporter_footer %}{% endblock %} {% block footer %}{% endblock %} diff --git a/docker/prometheus/prometheus-cadvisor/Dockerfile.j2 b/docker/prometheus/prometheus-cadvisor/Dockerfile.j2 index f70de27f2..a86183d4b 100644 --- a/docker/prometheus/prometheus-cadvisor/Dockerfile.j2 +++ b/docker/prometheus/prometheus-cadvisor/Dockerfile.j2 @@ -14,6 +14,7 @@ RUN cp /prometheus-cadvisor-source /opt/cadvisor \ && chmod 0755 /opt/cadvisor {% endblock %} +{{ macros.kolla_patch_sources() }} {% block prometheus_cadvisor_footer %}{% endblock %} {% block footer %}{% endblock %} diff --git a/docker/prometheus/prometheus-elasticsearch-exporter/Dockerfile.j2 b/docker/prometheus/prometheus-elasticsearch-exporter/Dockerfile.j2 index 8721b5c23..e9dd84f7b 100644 --- a/docker/prometheus/prometheus-elasticsearch-exporter/Dockerfile.j2 +++ b/docker/prometheus/prometheus-elasticsearch-exporter/Dockerfile.j2 @@ -5,6 +5,8 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build {% block prometheus_elasticsearch_exporter_header %}{% endblock %} +{% import "macros.j2" as macros with context %} + {% block prometheus_elasticsearch_exporter_install %} ADD prometheus-elasticsearch-exporter-archive /prometheus-elasticsearch-exporter-source @@ -13,6 +15,8 @@ RUN ln -s /prometheus-elasticsearch-exporter-source/* prometheus-elasticsearch-e && cp /prometheus-elasticsearch-exporter/elasticsearch_exporter /opt/elasticsearch_exporter/ {% endblock %} +{{ macros.kolla_patch_sources() }} + {% block prometheus_elasticsearch_exporter_footer %}{% endblock %} {% block footer %}{% endblock %} diff --git a/docker/prometheus/prometheus-libvirt-exporter/Dockerfile.j2 b/docker/prometheus/prometheus-libvirt-exporter/Dockerfile.j2 index 390241b9f..57330f58b 100644 --- a/docker/prometheus/prometheus-libvirt-exporter/Dockerfile.j2 +++ b/docker/prometheus/prometheus-libvirt-exporter/Dockerfile.j2 @@ -17,6 +17,8 @@ RUN ln -s /prometheus-libvirt-exporter-source/* prometheus-libvirt-exporter \ {% endblock %} +{{ macros.kolla_patch_sources() }} + {% block prometheus_libvirt_exporter_footer %}{% endblock %} {% block footer %}{% endblock %} diff --git a/docker/prometheus/prometheus-memcached-exporter/Dockerfile.j2 b/docker/prometheus/prometheus-memcached-exporter/Dockerfile.j2 index d288cce98..a4924ec64 100644 --- a/docker/prometheus/prometheus-memcached-exporter/Dockerfile.j2 +++ b/docker/prometheus/prometheus-memcached-exporter/Dockerfile.j2 @@ -5,6 +5,8 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build {% block prometheus_memcached_exporter_header %}{% endblock %} +{% import "macros.j2" as macros with context %} + {% block prometheus_memcached_exporter_install %} ADD prometheus-memcached-exporter-archive /prometheus-memcached-exporter-source @@ -13,6 +15,8 @@ RUN ln -s /prometheus-memcached-exporter-source/* prometheus-memcached-exporter && cp /prometheus-memcached-exporter/memcached_exporter /opt/memcached_exporter/ {% endblock %} +{{ macros.kolla_patch_sources() }} + {% block prometheus_memcached_exporter_footer %}{% endblock %} {% block footer %}{% endblock %} diff --git a/docker/prometheus/prometheus-mtail/Dockerfile.j2 b/docker/prometheus/prometheus-mtail/Dockerfile.j2 index 6966ffed8..a071bf2a2 100644 --- a/docker/prometheus/prometheus-mtail/Dockerfile.j2 +++ b/docker/prometheus/prometheus-mtail/Dockerfile.j2 @@ -5,12 +5,16 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build {% block prometheus_mtail_header %}{% endblock %} +{% import "macros.j2" as macros with context %} + {% block prometheus_mtail_install %} ADD prometheus-mtail-archive /prometheus-mtail-source RUN cp /prometheus-mtail-source/* /opt/ {% endblock %} +{{ macros.kolla_patch_sources() }} + {% block prometheus_mtail_footer %}{% endblock %} {% block footer %}{% endblock %} diff --git a/docker/prometheus/prometheus-mysqld-exporter/Dockerfile.j2 b/docker/prometheus/prometheus-mysqld-exporter/Dockerfile.j2 index c1054dc5e..5965a6c77 100644 --- a/docker/prometheus/prometheus-mysqld-exporter/Dockerfile.j2 +++ b/docker/prometheus/prometheus-mysqld-exporter/Dockerfile.j2 @@ -5,6 +5,8 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build {% block mysqld_exporter_header %}{% endblock %} +{% import "macros.j2" as macros with context %} + {% block mysqld_exporter_install %} ADD prometheus-mysqld-exporter-archive /prometheus-mysqld-exporter-source @@ -13,6 +15,8 @@ RUN ln -s /prometheus-mysqld-exporter-source/* prometheus-mysqld-exporter \ && cp /prometheus-mysqld-exporter/mysqld_exporter /opt/mysqld_exporter/ {% endblock %} +{{ macros.kolla_patch_sources() }} + {% block mysqld_exporter_footer %}{% endblock %} {% block footer %}{% endblock %} diff --git a/docker/prometheus/prometheus-node-exporter/Dockerfile.j2 b/docker/prometheus/prometheus-node-exporter/Dockerfile.j2 index 5e8cd361d..7a7eaad67 100644 --- a/docker/prometheus/prometheus-node-exporter/Dockerfile.j2 +++ b/docker/prometheus/prometheus-node-exporter/Dockerfile.j2 @@ -5,6 +5,8 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build {% block node_exporter_header %}{% endblock %} +{% import "macros.j2" as macros with context %} + {% block node_exporter_install %} ADD prometheus-node-exporter-archive /prometheus-node-exporter-source @@ -13,6 +15,8 @@ RUN ln -s /prometheus-node-exporter-source/* prometheus-node-exporter \ && cp /prometheus-node-exporter/node_exporter /opt/node_exporter/ {% endblock %} +{{ macros.kolla_patch_sources() }} + {% block node_exporter_footer %}{% endblock %} {% block footer %}{% endblock %} diff --git a/docker/prometheus/prometheus-openstack-exporter/Dockerfile.j2 b/docker/prometheus/prometheus-openstack-exporter/Dockerfile.j2 index d5066973d..547363d30 100644 --- a/docker/prometheus/prometheus-openstack-exporter/Dockerfile.j2 +++ b/docker/prometheus/prometheus-openstack-exporter/Dockerfile.j2 @@ -5,6 +5,8 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build {% block prometheus_openstack_exporter_header %}{% endblock %} +{% import "macros.j2" as macros with context %} + {% block prometheus_openstack_exporter_install %} ADD prometheus-openstack-exporter-archive /prometheus-openstack-exporter-source @@ -12,6 +14,8 @@ RUN mkdir /opt/openstack-exporter \ && cp /prometheus-openstack-exporter-source/openstack-exporter /opt/openstack-exporter/ {% endblock %} +{{ macros.kolla_patch_sources() }} + {% block prometheus_openstack_exporter_footer %}{% endblock %} {% block footer %}{% endblock %} diff --git a/docker/prometheus/prometheus-ovn-exporter/Dockerfile.j2 b/docker/prometheus/prometheus-ovn-exporter/Dockerfile.j2 index dada0e550..f7c9c6041 100644 --- a/docker/prometheus/prometheus-ovn-exporter/Dockerfile.j2 +++ b/docker/prometheus/prometheus-ovn-exporter/Dockerfile.j2 @@ -5,6 +5,8 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build {% block prometheus_ovn_exporter_header %}{% endblock %} +{% import "macros.j2" as macros with context %} + {% block prometheus_ovn_exporter_install %} ADD prometheus-ovn-exporter-archive /prometheus-ovn-exporter-source @@ -12,6 +14,8 @@ ADD prometheus-ovn-exporter-archive /prometheus-ovn-exporter-source RUN cp /prometheus-ovn-exporter-source/* /opt/ {% endblock %} +{{ macros.kolla_patch_sources() }} + {% block prometheus_ovn_exporter_footer %}{% endblock %} {% block footer %}{% endblock %} diff --git a/docker/prometheus/prometheus-v2-server/Dockerfile.j2 b/docker/prometheus/prometheus-v2-server/Dockerfile.j2 index f77fb158f..e9f47f5c1 100644 --- a/docker/prometheus/prometheus-v2-server/Dockerfile.j2 +++ b/docker/prometheus/prometheus-v2-server/Dockerfile.j2 @@ -5,6 +5,8 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build {% block prometheus_v2_server_header %}{% endblock %} +{% import "macros.j2" as macros with context %} + {% block prometheus_v2_server_install %} ADD prometheus-v2-server-archive /prometheus-server-source @@ -14,6 +16,8 @@ RUN ln -s /prometheus-server-source/* prometheus-server \ && mkdir -p /etc/prometheus /data {% endblock %} +{{ macros.kolla_patch_sources() }} + {% block prometheus_v2_server_footer %}{% endblock %} {% block footer %}{% endblock %} |
