From 17eb58131a29c7299299fa8c690bcf8fa4c20c84 Mon Sep 17 00:00:00 2001 From: Solly Ross Date: Fri, 4 Aug 2017 14:44:54 -0400 Subject: [PATCH] Handle missing OpenAPI specs on aggregated servers Previously, the aggregator would fail to actually set up the aggregator proxy for an API server that was missing an OpenAPI spec. It would show up in discovery, but the actual proxying would fail to occur. Now, we simply log an error if we can't fetch an OpenAPI spec for a particular aggregated server, and continue on. --- staging/src/k8s.io/kube-aggregator/pkg/apiserver/apiserver.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/staging/src/k8s.io/kube-aggregator/pkg/apiserver/apiserver.go b/staging/src/k8s.io/kube-aggregator/pkg/apiserver/apiserver.go index 40b07d267f3..0d72b9e43df 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/apiserver/apiserver.go +++ b/staging/src/k8s.io/kube-aggregator/pkg/apiserver/apiserver.go @@ -17,6 +17,7 @@ limitations under the License. package apiserver import ( + "fmt" "net/http" "time" @@ -26,6 +27,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/serializer" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apimachinery/pkg/util/sets" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" @@ -261,7 +263,7 @@ func (s *APIAggregator) AddAPIService(apiService *apiregistration.APIService) er } proxyHandler.updateAPIService(apiService) if err := s.openAPIAggregator.loadApiServiceSpec(proxyHandler, apiService); err != nil { - return err + utilruntime.HandleError(fmt.Errorf("unable to load OpenAPI spec for API service %s: %v", apiService.Name, err)) } s.proxyHandlers[apiService.Name] = proxyHandler s.GenericAPIServer.Handler.NonGoRestfulMux.Handle(proxyPath, proxyHandler)