1
0
mirror of https://github.com/coreos/prometheus-operator.git synced 2026-02-05 06:45:27 +01:00

feat: add startupProbe to config-reloader

This is for GitHub issue #7494.

Adds startup probe to the config-reloader sidecar for Prometheus containers.

Only takes affect if the --enable-config-reloader-probes flag is set on the
prometheus-operator pod for the config-reloader container.
This commit is contained in:
Marek Slabicki
2025-05-30 15:14:48 -07:00
parent f4f1a5cb15
commit adf64aaa6e
4 changed files with 19 additions and 2 deletions

View File

@@ -52,7 +52,7 @@ Usage of ./operator:
-disable-unmanaged-prometheus-configuration
Disable support for unmanaged Prometheus configuration when all resource selectors are nil. As stated in the API documentation, unmanaged Prometheus configuration is a deprecated feature which can be avoided with '.spec.additionalScrapeConfigs' or the ScrapeConfig CRD. Default: false.
-enable-config-reloader-probes
Enable liveness and readiness for the config-reloader container. Default: false
Enable liveness, readiness, and startup probes for the config-reloader container. Default: false
-feature-gates value
Feature gates are a set of key=value pairs that describe Prometheus-Operator features.
Available feature gates:

View File

@@ -155,7 +155,7 @@ func parseFlags(fs *flag.FlagSet) {
fs.Var(&cfg.ReloaderConfig.CPULimits, "config-reloader-cpu-limit", "Config Reloader CPU limits. Value \"0\" disables it and causes no limit to be configured.")
fs.Var(&cfg.ReloaderConfig.MemoryRequests, "config-reloader-memory-request", "Config Reloader memory requests. Value \"0\" disables it and causes no request to be configured.")
fs.Var(&cfg.ReloaderConfig.MemoryLimits, "config-reloader-memory-limit", "Config Reloader memory limits. Value \"0\" disables it and causes no limit to be configured.")
fs.BoolVar(&cfg.ReloaderConfig.EnableProbes, "enable-config-reloader-probes", false, "Enable liveness and readiness for the config-reloader container. Default: false")
fs.BoolVar(&cfg.ReloaderConfig.EnableProbes, "enable-config-reloader-probes", false, "Enable liveness, readiness, and startup probes for the config-reloader container. Default: false")
fs.StringVar(&cfg.AlertmanagerDefaultBaseImage, "alertmanager-default-base-image", operator.DefaultAlertmanagerBaseImage, "Alertmanager default base image (path without tag/version)")
fs.StringVar(&cfg.PrometheusDefaultBaseImage, "prometheus-default-base-image", operator.DefaultPrometheusBaseImage, "Prometheus default base image (path without tag/version)")

View File

@@ -337,6 +337,7 @@ func (cr *ConfigReloader) addProbes(c v1.Container) v1.Container {
c.LivenessProbe = &v1.Probe{ProbeHandler: handler}
c.ReadinessProbe = &v1.Probe{ProbeHandler: handler}
c.StartupProbe = &v1.Probe{ProbeHandler: handler}
return c
}

View File

@@ -60,6 +60,10 @@ func TestCreateConfigReloaderEnableProbes(t *testing.T) {
if container.ReadinessProbe == nil {
t.Errorf("expected ReadinessProbe but got none")
}
if container.StartupProbe == nil {
t.Errorf("expected StartupProbe but got none")
}
}
func TestCreateInitConfigReloaderEnableProbes(t *testing.T) {
@@ -88,6 +92,10 @@ func TestCreateInitConfigReloaderEnableProbes(t *testing.T) {
if container.ReadinessProbe != nil {
t.Errorf("expected no ReadinessProbe but got %v", container.ReadinessProbe)
}
if container.StartupProbe != nil {
t.Errorf("expected no StartupProbe but got %v", container.StartupProbe)
}
}
func TestCreateInitConfigReloader(t *testing.T) {
@@ -134,6 +142,10 @@ func TestCreateInitConfigReloader(t *testing.T) {
if container.ReadinessProbe != nil {
t.Errorf("expected no ReadinessProbe but got %v", container.ReadinessProbe)
}
if container.StartupProbe != nil {
t.Errorf("expected no StartupProbe but got %v", container.StartupProbe)
}
}
func TestCreateConfigReloader(t *testing.T) {
@@ -217,6 +229,10 @@ func TestCreateConfigReloader(t *testing.T) {
if container.ReadinessProbe != nil {
t.Errorf("expected no ReadinessProbe but got %v", container.ReadinessProbe)
}
if container.StartupProbe != nil {
t.Errorf("expected no StartupProbe but got %v", container.StartupProbe)
}
}
func TestCreateConfigReloaderForDaemonSet(t *testing.T) {