Browse Source

Don't log 'apiserver disabled' error sent by etcd-only nodes

Signed-off-by: Brad Davidson <brad.davidson@rancher.com>
pull/9902/head
Brad Davidson 8 months ago committed by Brad Davidson
parent
commit
08f1022663
  1. 4
      pkg/server/router.go
  2. 7
      pkg/util/apierrors.go

4
pkg/server/router.go

@ -104,14 +104,14 @@ func apiserver(runtime *config.ControlRuntime) http.Handler {
if runtime != nil && runtime.APIServer != nil {
runtime.APIServer.ServeHTTP(resp, req)
} else {
util.SendError(util.ErrNotReady, resp, req, http.StatusServiceUnavailable)
util.SendError(util.ErrAPINotReady, resp, req, http.StatusServiceUnavailable)
}
})
}
func apiserverDisabled() http.Handler {
return http.HandlerFunc(func(resp http.ResponseWriter, req *http.Request) {
util.SendError(errors.New("apiserver disabled"), resp, req, http.StatusServiceUnavailable)
util.SendError(util.ErrAPIDisabled, resp, req, http.StatusServiceUnavailable)
})
}

7
pkg/util/apierrors.go

@ -15,7 +15,8 @@ import (
"k8s.io/apiserver/pkg/endpoints/handlers/responsewriters"
)
var ErrNotReady = errors.New("apiserver not ready")
var ErrAPINotReady = errors.New("apiserver not ready")
var ErrAPIDisabled = errors.New("apiserver disabled")
// SendErrorWithID sends and logs a random error ID so that logs can be correlated
// between the REST API (which does not provide any detailed error output, to avoid
@ -36,8 +37,8 @@ func SendError(err error, resp http.ResponseWriter, req *http.Request, status ..
code = http.StatusInternalServerError
}
// Don't log "apiserver not ready" errors, they are frequent during startup
if !errors.Is(err, ErrNotReady) {
// Don't log "apiserver not ready" or "apiserver disabled" errors, they are frequent during startup
if !errors.Is(err, ErrAPINotReady) && !errors.Is(err, ErrAPIDisabled) {
logrus.Errorf("Sending HTTP %d response to %s: %v", code, req.RemoteAddr, err)
}

Loading…
Cancel
Save