in pkg/cmd/admissioncontroller/main.go [133:163]
func (wh *WebHook) Startup(certs *tls.Certificate) {
wh.Lock()
defer wh.Unlock()
mux := http.NewServeMux()
mux.HandleFunc(healthURL, wh.ac.Health)
mux.HandleFunc(mutateURL, wh.ac.Serve)
mux.HandleFunc(validateConfURL, wh.ac.Serve)
wh.server = &http.Server{
Addr: fmt.Sprintf(":%v", wh.port),
TLSConfig: &tls.Config{
MinVersion: tls.VersionTLS12,
Certificates: []tls.Certificate{*certs}},
Handler: mux,
}
go func() {
if err := wh.server.ListenAndServeTLS("", ""); err != nil {
if err == http.ErrServerClosed {
log.Log(log.Admission).Info("existing server closed")
} else {
log.Log(log.Admission).Fatal("failed to start admission controller", zap.Error(err))
}
}
}()
log.Log(log.Admission).Info("the admission controller started",
zap.Int("port", HTTPPort),
zap.Strings("listeningOn", []string{healthURL, mutateURL, validateConfURL}))
}