Skip to content

Containerfile: Use Icinga 2 Plugin Container - #171

Draft
oxzi wants to merge 1 commit into
masterfrom
dockerfile-use-icinga2-plugins-container
Draft

oxzi wants to merge 1 commit into
masterfrom
dockerfile-use-icinga2-plugins-container

Conversation

@oxzi

@oxzi oxzi commented Nov 6, 2026 •

Copy link
Copy Markdown
Member

Outsource pinned check commands to an external container image1. This uncouples their versions from our Containerfile, belonging to a certain git tag. Afterward, the plugins can be updated independently of an Icinga 2 release.

Furthermore, the new container image1 comes with an SBOM of all check plugins. When inspecting the container image, these artifacts are now being picked up.


This PR is the sibling of Icinga/icinga2#11161.

I have successfully tested this change when building the current HEAD of the support/2.15 branch.

$ for c in mssql_health nwc_health postgres.pl ssl_cert; do docker run -t -it --rm icinga/icinga2:2.15 "/usr/lib/nagios/plugins/check_$c" --version; docker run -t -it --rm icinga/icinga2:test "/usr/lib/nagios/plugins/check_$c" --version; echo; done                                                                                                                                                                                                                                                                                                                                                                          0
[2026-11-10 08:35:07 +0000] information/DockerEntrypoint: Initializing /data as we're the init process (PID 1)
[2026-11-10 08:35:07 +0000] information/DockerEntrypoint: Checking "/data/etc/icinga2"
[2026-11-10 08:35:07 +0000] information/DockerEntrypoint: Copying "/data-init/etc/icinga2" to "/data/etc/icinga2"
[2026-11-10 08:35:07 +0000] information/DockerEntrypoint: Checking "/data/var/cache/icinga2"
[2026-11-10 08:35:07 +0000] information/DockerEntrypoint: Copying "/data-init/var/cache/icinga2" to "/data/var/cache/icinga2"
[2026-11-10 08:35:07 +0000] information/DockerEntrypoint: Checking "/data/var/lib/icinga2"
[2026-11-10 08:35:07 +0000] information/DockerEntrypoint: Copying "/data-init/var/lib/icinga2" to "/data/var/lib/icinga2"
[2026-11-10 08:35:07 +0000] information/DockerEntrypoint: Checking "/data/var/log/icinga2"
[2026-11-10 08:35:07 +0000] information/DockerEntrypoint: Copying "/data-init/var/log/icinga2" to "/data/var/log/icinga2"
[2026-11-10 08:35:07 +0000] information/DockerEntrypoint: Checking "/data/var/run/icinga2"
[2026-11-10 08:35:07 +0000] information/DockerEntrypoint: Copying "/data-init/var/run/icinga2" to "/data/var/run/icinga2"
[2026-11-10 08:35:07 +0000] information/DockerEntrypoint: Checking "/data/var/spool/icinga2"
[2026-11-10 08:35:07 +0000] information/DockerEntrypoint: Copying "/data-init/var/spool/icinga2" to "/data/var/spool/icinga2"
[2026-11-10 08:35:07 +0000] information/DockerEntrypoint: Checking "/var/lib/icinga2/certs/ca.crt"
[2026-11-10 08:35:07 +0000] information/DockerEntrypoint: Looking up "dumb-init" in $PATH
[2026-11-10 08:35:07 +0000] information/DockerEntrypoint: Running "/usr/bin/dumb-init"
check_mssql_health (1.5.10)
This nagios plugin comes with ABSOLUTELY NO WARRANTY. You may redistribute
copies of this plugin under the terms of the GNU General Public License.
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Initializing /data as we're the init process (PID 1)
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Checking "/data/etc/icinga2"
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Copying "/data-init/etc/icinga2" to "/data/etc/icinga2"
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Checking "/data/var/cache/icinga2"
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Copying "/data-init/var/cache/icinga2" to "/data/var/cache/icinga2"
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Checking "/data/var/lib/icinga2"
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Copying "/data-init/var/lib/icinga2" to "/data/var/lib/icinga2"
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Checking "/data/var/log/icinga2"
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Copying "/data-init/var/log/icinga2" to "/data/var/log/icinga2"
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Checking "/data/var/run/icinga2"
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Copying "/data-init/var/run/icinga2" to "/data/var/run/icinga2"
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Checking "/data/var/spool/icinga2"
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Copying "/data-init/var/spool/icinga2" to "/data/var/spool/icinga2"
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Checking "/var/lib/icinga2/certs/ca.crt"
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Looking up "dumb-init" in $PATH
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Running "/usr/bin/dumb-init"
check_mssql_health $Revision: 2.9 $ [http://labs.consol.de/nagios/check_mssql_health]

[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Initializing /data as we're the init process (PID 1)
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Checking "/data/etc/icinga2"
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Copying "/data-init/etc/icinga2" to "/data/etc/icinga2"
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Checking "/data/var/cache/icinga2"
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Copying "/data-init/var/cache/icinga2" to "/data/var/cache/icinga2"
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Checking "/data/var/lib/icinga2"
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Copying "/data-init/var/lib/icinga2" to "/data/var/lib/icinga2"
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Checking "/data/var/log/icinga2"
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Copying "/data-init/var/log/icinga2" to "/data/var/log/icinga2"
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Checking "/data/var/run/icinga2"
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Copying "/data-init/var/run/icinga2" to "/data/var/run/icinga2"
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Checking "/data/var/spool/icinga2"
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Copying "/data-init/var/spool/icinga2" to "/data/var/spool/icinga2"
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Checking "/var/lib/icinga2/certs/ca.crt"
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Looking up "dumb-init" in $PATH
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Running "/usr/bin/dumb-init"
check_nwc_health $Revision: 1.4.9 $ [http://labs.consol.de/nagios/check_nwc_health]
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Initializing /data as we're the init process (PID 1)
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Checking "/data/etc/icinga2"
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Copying "/data-init/etc/icinga2" to "/data/etc/icinga2"
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Checking "/data/var/cache/icinga2"
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Copying "/data-init/var/cache/icinga2" to "/data/var/cache/icinga2"
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Checking "/data/var/lib/icinga2"
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Copying "/data-init/var/lib/icinga2" to "/data/var/lib/icinga2"
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Checking "/data/var/log/icinga2"
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Copying "/data-init/var/log/icinga2" to "/data/var/log/icinga2"
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Checking "/data/var/run/icinga2"
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Copying "/data-init/var/run/icinga2" to "/data/var/run/icinga2"
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Checking "/data/var/spool/icinga2"
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Copying "/data-init/var/spool/icinga2" to "/data/var/spool/icinga2"
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Checking "/var/lib/icinga2/certs/ca.crt"
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Looking up "dumb-init" in $PATH
[2026-11-10 08:35:08 +0000] information/DockerEntrypoint: Running "/usr/bin/dumb-init"
check_nwc_health $Revision: 12.17.2 $ [http://labs.consol.de/nagios/check_nwc_health]

[2026-11-10 08:35:09 +0000] information/DockerEntrypoint: Initializing /data as we're the init process (PID 1)
[2026-11-10 08:35:09 +0000] information/DockerEntrypoint: Checking "/data/etc/icinga2"
[2026-11-10 08:35:09 +0000] information/DockerEntrypoint: Copying "/data-init/etc/icinga2" to "/data/etc/icinga2"
[2026-11-10 08:35:09 +0000] information/DockerEntrypoint: Checking "/data/var/cache/icinga2"
[2026-11-10 08:35:09 +0000] information/DockerEntrypoint: Copying "/data-init/var/cache/icinga2" to "/data/var/cache/icinga2"
[2026-11-10 08:35:09 +0000] information/DockerEntrypoint: Checking "/data/var/lib/icinga2"
[2026-11-10 08:35:09 +0000] information/DockerEntrypoint: Copying "/data-init/var/lib/icinga2" to "/data/var/lib/icinga2"
[2026-11-10 08:35:09 +0000] information/DockerEntrypoint: Checking "/data/var/log/icinga2"
[2026-11-10 08:35:09 +0000] information/DockerEntrypoint: Copying "/data-init/var/log/icinga2" to "/data/var/log/icinga2"
[2026-11-10 08:35:09 +0000] information/DockerEntrypoint: Checking "/data/var/run/icinga2"
[2026-11-10 08:35:09 +0000] information/DockerEntrypoint: Copying "/data-init/var/run/icinga2" to "/data/var/run/icinga2"
[2026-11-10 08:35:09 +0000] information/DockerEntrypoint: Checking "/data/var/spool/icinga2"
[2026-11-10 08:35:09 +0000] information/DockerEntrypoint: Copying "/data-init/var/spool/icinga2" to "/data/var/spool/icinga2"
[2026-11-10 08:35:09 +0000] information/DockerEntrypoint: Checking "/var/lib/icinga2/certs/ca.crt"
[2026-11-10 08:35:09 +0000] information/DockerEntrypoint: Looking up "dumb-init" in $PATH
[2026-11-10 08:35:09 +0000] information/DockerEntrypoint: Running "/usr/bin/dumb-init"
check_postgres.pl version 2.25.0
[2026-11-10 08:35:09 +0000] information/DockerEntrypoint: Initializing /data as we're the init process (PID 1)
[2026-11-10 08:35:09 +0000] information/DockerEntrypoint: Checking "/data/etc/icinga2"
[2026-11-10 08:35:09 +0000] information/DockerEntrypoint: Copying "/data-init/etc/icinga2" to "/data/etc/icinga2"
[2026-11-10 08:35:09 +0000] information/DockerEntrypoint: Checking "/data/var/cache/icinga2"
[2026-11-10 08:35:09 +0000] information/DockerEntrypoint: Copying "/data-init/var/cache/icinga2" to "/data/var/cache/icinga2"
[2026-11-10 08:35:09 +0000] information/DockerEntrypoint: Checking "/data/var/lib/icinga2"
[2026-11-10 08:35:09 +0000] information/DockerEntrypoint: Copying "/data-init/var/lib/icinga2" to "/data/var/lib/icinga2"
[2026-11-10 08:35:09 +0000] information/DockerEntrypoint: Checking "/data/var/log/icinga2"
[2026-11-10 08:35:09 +0000] information/DockerEntrypoint: Copying "/data-init/var/log/icinga2" to "/data/var/log/icinga2"
[2026-11-10 08:35:09 +0000] information/DockerEntrypoint: Checking "/data/var/run/icinga2"
[2026-11-10 08:35:09 +0000] information/DockerEntrypoint: Copying "/data-init/var/run/icinga2" to "/data/var/run/icinga2"
[2026-11-10 08:35:09 +0000] information/DockerEntrypoint: Checking "/data/var/spool/icinga2"
[2026-11-10 08:35:09 +0000] information/DockerEntrypoint: Copying "/data-init/var/spool/icinga2" to "/data/var/spool/icinga2"
[2026-11-10 08:35:09 +0000] information/DockerEntrypoint: Checking "/var/lib/icinga2/certs/ca.crt"
[2026-11-10 08:35:09 +0000] information/DockerEntrypoint: Looking up "dumb-init" in $PATH
[2026-11-10 08:35:09 +0000] information/DockerEntrypoint: Running "/usr/bin/dumb-init"
check_postgres.pl version 2.26.0

[2026-11-10 08:35:10 +0000] information/DockerEntrypoint: Initializing /data as we're the init process (PID 1)
[2026-11-10 08:35:10 +0000] information/DockerEntrypoint: Checking "/data/etc/icinga2"
[2026-11-10 08:35:10 +0000] information/DockerEntrypoint: Copying "/data-init/etc/icinga2" to "/data/etc/icinga2"
[2026-11-10 08:35:10 +0000] information/DockerEntrypoint: Checking "/data/var/cache/icinga2"
[2026-11-10 08:35:10 +0000] information/DockerEntrypoint: Copying "/data-init/var/cache/icinga2" to "/data/var/cache/icinga2"
[2026-11-10 08:35:10 +0000] information/DockerEntrypoint: Checking "/data/var/lib/icinga2"
[2026-11-10 08:35:10 +0000] information/DockerEntrypoint: Copying "/data-init/var/lib/icinga2" to "/data/var/lib/icinga2"
[2026-11-10 08:35:10 +0000] information/DockerEntrypoint: Checking "/data/var/log/icinga2"
[2026-11-10 08:35:10 +0000] information/DockerEntrypoint: Copying "/data-init/var/log/icinga2" to "/data/var/log/icinga2"
[2026-11-10 08:35:10 +0000] information/DockerEntrypoint: Checking "/data/var/run/icinga2"
[2026-11-10 08:35:10 +0000] information/DockerEntrypoint: Copying "/data-init/var/run/icinga2" to "/data/var/run/icinga2"
[2026-11-10 08:35:10 +0000] information/DockerEntrypoint: Checking "/data/var/spool/icinga2"
[2026-11-10 08:35:10 +0000] information/DockerEntrypoint: Copying "/data-init/var/spool/icinga2" to "/data/var/spool/icinga2"
[2026-11-10 08:35:10 +0000] information/DockerEntrypoint: Checking "/var/lib/icinga2/certs/ca.crt"
[2026-11-10 08:35:10 +0000] information/DockerEntrypoint: Looking up "dumb-init" in $PATH
[2026-11-10 08:35:10 +0000] information/DockerEntrypoint: Running "/usr/bin/dumb-init"
check_ssl_cert version 2.81.1
[2026-11-10 08:35:10 +0000] information/DockerEntrypoint: Initializing /data as we're the init process (PID 1)
[2026-11-10 08:35:10 +0000] information/DockerEntrypoint: Checking "/data/etc/icinga2"
[2026-11-10 08:35:10 +0000] information/DockerEntrypoint: Copying "/data-init/etc/icinga2" to "/data/etc/icinga2"
[2026-11-10 08:35:10 +0000] information/DockerEntrypoint: Checking "/data/var/cache/icinga2"
[2026-11-10 08:35:10 +0000] information/DockerEntrypoint: Copying "/data-init/var/cache/icinga2" to "/data/var/cache/icinga2"
[2026-11-10 08:35:10 +0000] information/DockerEntrypoint: Checking "/data/var/lib/icinga2"
[2026-11-10 08:35:10 +0000] information/DockerEntrypoint: Copying "/data-init/var/lib/icinga2" to "/data/var/lib/icinga2"
[2026-11-10 08:35:10 +0000] information/DockerEntrypoint: Checking "/data/var/log/icinga2"
[2026-11-10 08:35:10 +0000] information/DockerEntrypoint: Copying "/data-init/var/log/icinga2" to "/data/var/log/icinga2"
[2026-11-10 08:35:10 +0000] information/DockerEntrypoint: Checking "/data/var/run/icinga2"
[2026-11-10 08:35:10 +0000] information/DockerEntrypoint: Copying "/data-init/var/run/icinga2" to "/data/var/run/icinga2"
[2026-11-10 08:35:10 +0000] information/DockerEntrypoint: Checking "/data/var/spool/icinga2"
[2026-11-10 08:35:10 +0000] information/DockerEntrypoint: Copying "/data-init/var/spool/icinga2" to "/data/var/spool/icinga2"
[2026-11-10 08:35:10 +0000] information/DockerEntrypoint: Checking "/var/lib/icinga2/certs/ca.crt"
[2026-11-10 08:35:10 +0000] information/DockerEntrypoint: Looking up "dumb-init" in $PATH
[2026-11-10 08:35:10 +0000] information/DockerEntrypoint: Running "/usr/bin/dumb-init"
check_ssl_cert version 2.103.4

Footnotes

  1. https://github.com/Icinga/icinga2-plugins-container ↩ ↩2

@cla-bot cla-bot Bot added the cla/signed label Nov 6, 2026
@oxzi
oxzi force-pushed the dockerfile-use-icinga2-plugins-container branch from 6d0fa43 to f02d09c Compare November 9, 2026 13:25
@oxzi
oxzi marked this pull request as ready for review November 10, 2026 08:46
@oxzi
oxzi requested a review from julianbrost November 10, 2026 08:46
Outsource pinned check commands to an external container image[0]. This
uncouples their versions from our Containerfile, belonging to a certain
git tag. Afterward, the plugins can be updated independently of an
Icinga 2 release.

Furthermore, the new container image[0] comes with an SBOM of all check
plugins. When inspecting the container image, these artifacts are now
being picked up.

[0]: https://github.com/Icinga/icinga2-plugins-container
@oxzi
oxzi force-pushed the dockerfile-use-icinga2-plugins-container branch from f02d09c to 53f63c6 Compare November 11, 2026 09:50
@oxzi

oxzi commented Nov 11, 2026

Copy link
Copy Markdown
Member Author

Builds are failing now due to GitHub Actions runners bumping their "ubuntu-latest" image 😮‍💨 Fix in #172.

@oxzi
oxzi marked this pull request as draft November 11, 2026 10:04
@oxzi
oxzi removed the request for review from julianbrost November 11, 2026 10:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant