From 1f93335b3f25944c202f7f05e3e52201d07ff972 Mon Sep 17 00:00:00 2001 From: Jacob Tanenbaum Date: Fri, 16 Mar 2018 15:31:10 -0400 Subject: [PATCH] Differentiate liveness and readiness probes for router pods Add a backend to the router controller "/livez" that always returns true. This differentiates the liveness and readiness probes so that a router can be alive and not ready. Bug 1550007 --- pkg/oc/admin/router/router.go | 8 ++++---- pkg/router/metrics/metrics.go | 4 ++++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/pkg/oc/admin/router/router.go b/pkg/oc/admin/router/router.go index cc699ab5eb63..06be2f44a6ac 100644 --- a/pkg/oc/admin/router/router.go +++ b/pkg/oc/admin/router/router.go @@ -436,7 +436,7 @@ func generateSecretsConfig(cfg *RouterConfig, namespace string, defaultCert []by return secrets, volumes, mounts, nil } -func generateProbeConfigForRouter(cfg *RouterConfig, ports []kapi.ContainerPort) *kapi.Probe { +func generateProbeConfigForRouter(path string, cfg *RouterConfig, ports []kapi.ContainerPort) *kapi.Probe { var probe *kapi.Probe if cfg.Type == "haproxy-router" { @@ -447,7 +447,7 @@ func generateProbeConfigForRouter(cfg *RouterConfig, ports []kapi.ContainerPort) } probe.Handler.HTTPGet = &kapi.HTTPGetAction{ - Path: "/healthz", + Path: path, Port: intstr.IntOrString{ Type: intstr.Int, IntVal: int32(healthzPort), @@ -466,7 +466,7 @@ func generateProbeConfigForRouter(cfg *RouterConfig, ports []kapi.ContainerPort) } func generateLivenessProbeConfig(cfg *RouterConfig, ports []kapi.ContainerPort) *kapi.Probe { - probe := generateProbeConfigForRouter(cfg, ports) + probe := generateProbeConfigForRouter("/livez", cfg, ports) if probe != nil { probe.InitialDelaySeconds = 10 } @@ -474,7 +474,7 @@ func generateLivenessProbeConfig(cfg *RouterConfig, ports []kapi.ContainerPort) } func generateReadinessProbeConfig(cfg *RouterConfig, ports []kapi.ContainerPort) *kapi.Probe { - probe := generateProbeConfigForRouter(cfg, ports) + probe := generateProbeConfigForRouter("/healthz", cfg, ports) if probe != nil { probe.InitialDelaySeconds = 10 } diff --git a/pkg/router/metrics/metrics.go b/pkg/router/metrics/metrics.go index 840c72bd2fe2..348d14cfed1a 100644 --- a/pkg/router/metrics/metrics.go +++ b/pkg/router/metrics/metrics.go @@ -37,6 +37,10 @@ type Listener struct { func (l Listener) handler() http.Handler { mux := http.NewServeMux() healthz.InstallHandler(mux, l.Checks...) + mux.Handle("/livez", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + fmt.Fprintf(w, "ok") + return + })) if l.Authenticator != nil { protected := http.NewServeMux()