Skip to content

Commit d1c6909

Browse files
committed
add loggings for webhook
1 parent ca33b65 commit d1c6909

File tree

3 files changed

+12
-0
lines changed

3 files changed

+12
-0
lines changed

pkg/webhook/admission/http.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ func (wh *Webhook) ServeHTTP(w http.ResponseWriter, r *http.Request) {
8181
wh.writeResponse(w, reviewResponse)
8282
return
8383
}
84+
wh.log.V(1).Info("received request", "UID", req.UID, "kind", req.Kind, "resource", req.Resource)
8485

8586
// TODO: add panic-recovery for Handle
8687
reviewResponse = wh.Handle(r.Context(), req)
@@ -96,5 +97,8 @@ func (wh *Webhook) writeResponse(w io.Writer, response Response) {
9697
if err != nil {
9798
wh.log.Error(err, "unable to encode the response")
9899
wh.writeResponse(w, Errored(http.StatusInternalServerError, err))
100+
} else {
101+
res := responseAdmissionReview.Response
102+
wh.log.V(1).Info("wrote response", "UID", res.UID, "allowed", res.Allowed, "result", res.Result)
99103
}
100104
}

pkg/webhook/admission/http_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import (
3030
"sigs.k8s.io/controller-runtime/pkg/runtime/inject"
3131

3232
admissionv1beta1 "k8s.io/api/admission/v1beta1"
33+
logf "sigs.k8s.io/controller-runtime/pkg/internal/log"
3334
)
3435

3536
var _ = Describe("Admission Webhooks", func() {
@@ -88,6 +89,7 @@ var _ = Describe("Admission Webhooks", func() {
8889
}
8990
webhook := &Webhook{
9091
Handler: &fakeHandler{},
92+
log: logf.RuntimeLog.WithName("webhook"),
9193
}
9294

9395
expected := []byte(`{"response":{"uid":"","allowed":true,"status":{"metadata":{},"code":200}}}

pkg/webhook/server.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ func (s *Server) Register(path string, hook http.Handler) {
106106
// TODO(directxman12): call setfields if we've already started the server
107107
s.webhooks[path] = hook
108108
s.WebhookMux.Handle(path, instrumentedHook(path, hook))
109+
log.Info("registering webhook", "path", path)
109110
}
110111

111112
// instrumentedHook adds some instrumentation on top of the given webhook.
@@ -125,6 +126,8 @@ func (s *Server) Start(stop <-chan struct{}) error {
125126
s.defaultingOnce.Do(s.setDefaults)
126127

127128
baseHookLog := log.WithName("webhooks")
129+
baseHookLog.Info("starting webhook server")
130+
128131
// inject fields here as opposed to in Register so that we're certain to have our setFields
129132
// function available.
130133
for hookPath, webhook := range s.webhooks {
@@ -164,13 +167,16 @@ func (s *Server) Start(stop <-chan struct{}) error {
164167
return err
165168
}
166169

170+
log.Info("serving webhook server", "host", s.Host, "port", s.Port)
171+
167172
srv := &http.Server{
168173
Handler: s.WebhookMux,
169174
}
170175

171176
idleConnsClosed := make(chan struct{})
172177
go func() {
173178
<-stop
179+
log.Info("shutting down webhook server")
174180

175181
// TODO: use a context with reasonable timeout
176182
if err := srv.Shutdown(context.Background()); err != nil {

0 commit comments

Comments
 (0)