From e1f0bdbf378a28321d02a3b54c59b8c1ac056a87 Mon Sep 17 00:00:00 2001 From: "Dr. Stefan Schimanski" Date: Mon, 12 Dec 2016 09:34:35 +0100 Subject: [PATCH] Re-add /healthz/ping handler in genericapiserver --- pkg/genericapiserver/config.go | 5 +++++ pkg/genericapiserver/genericapiserver_test.go | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/pkg/genericapiserver/config.go b/pkg/genericapiserver/config.go index bee7be97db2..ad4380b5f8f 100644 --- a/pkg/genericapiserver/config.go +++ b/pkg/genericapiserver/config.go @@ -59,6 +59,7 @@ import ( "k8s.io/kubernetes/pkg/genericapiserver/options" "k8s.io/kubernetes/pkg/genericapiserver/routes" genericvalidation "k8s.io/kubernetes/pkg/genericapiserver/validation" + "k8s.io/kubernetes/pkg/healthz" "k8s.io/kubernetes/pkg/runtime" certutil "k8s.io/kubernetes/pkg/util/cert" "k8s.io/kubernetes/pkg/util/sets" @@ -124,6 +125,8 @@ type Config struct { // DiscoveryAddresses is used to build the IPs pass to discovery. If nil, the ExternalAddress is // always reported DiscoveryAddresses DiscoveryAddresses + // The default set of healthz checks. There might be more added via AddHealthzChecks dynamically. + HealthzChecks []healthz.HealthzChecker // LegacyAPIGroupPrefixes is used to set up URL parsing for authorization and for validating requests // to InstallLegacyAPIGroup. New API servers don't generally have legacy groups at all. LegacyAPIGroupPrefixes sets.String @@ -198,6 +201,7 @@ func NewConfig() *Config { RequestContextMapper: api.NewRequestContextMapper(), BuildHandlerChainsFunc: DefaultBuildHandlerChain, LegacyAPIGroupPrefixes: sets.NewString(DefaultLegacyAPIPrefix), + HealthzChecks: []healthz.HealthzChecker{healthz.PingHealthz}, EnableIndex: true, EnableSwaggerSupport: true, @@ -523,6 +527,7 @@ func (c completedConfig) New() (*GenericAPIServer, error) { openAPIConfig: c.OpenAPIConfig, postStartHooks: map[string]postStartHookEntry{}, + healthzChecks: c.HealthzChecks, } s.HandlerContainer = mux.NewAPIContainer(http.NewServeMux(), c.Serializer) diff --git a/pkg/genericapiserver/genericapiserver_test.go b/pkg/genericapiserver/genericapiserver_test.go index 85b30883232..7fff22eb747 100644 --- a/pkg/genericapiserver/genericapiserver_test.go +++ b/pkg/genericapiserver/genericapiserver_test.go @@ -287,6 +287,14 @@ func TestPrepareRun(t *testing.T) { resp, err = http.Get(server.URL + "/swaggerapi/") assert.NoError(err) assert.Equal(http.StatusOK, resp.StatusCode) + + // healthz checks are installed in PrepareRun + resp, err = http.Get(server.URL + "/healthz") + assert.NoError(err) + assert.Equal(http.StatusOK, resp.StatusCode) + resp, err = http.Get(server.URL + "/healthz/ping") + assert.NoError(err) + assert.Equal(http.StatusOK, resp.StatusCode) } // TestCustomHandlerChain verifies the handler chain with custom handler chain builder functions.