Skip to content

Commit 70267f6

Browse files
committed
feat: add support for reloading certs when renewed
1 parent 15dc534 commit 70267f6

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

cmd/root.go

+14-1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ package cmd
2323

2424
import (
2525
"context"
26+
"crypto/tls"
2627
"fmt"
2728
"net/http"
2829
"os"
@@ -151,7 +152,10 @@ A mutating webhook for Kubernetes, pointing the images to a new location.`,
151152
log.Info().Msgf("Listening on %v", cfg.ListenAddress)
152153
//err = http.ListenAndServeTLS(":8080", cfg.certFile, cfg.keyFile, whHandler)
153154
if cfg.TLSCertFile != "" && cfg.TLSKeyFile != "" {
154-
if err := srv.ListenAndServeTLS(cfg.TLSCertFile, cfg.TLSKeyFile); err != nil {
155+
srv.TLSConfig = &tls.Config{
156+
GetCertificate: getCertificate,
157+
}
158+
if err := srv.ListenAndServeTLS("", ""); err != nil {
155159
log.Err(err).Msg("error serving webhook")
156160
os.Exit(1)
157161
}
@@ -278,6 +282,15 @@ func initLogger() {
278282
}
279283
}
280284

285+
func getCertificate(info *tls.ClientHelloInfo) (*tls.Certificate, error) {
286+
caFiles, err := tls.LoadX509KeyPair(cfg.TLSCertFile, cfg.TLSKeyFile)
287+
if err != nil {
288+
return nil, err
289+
}
290+
291+
return &caFiles, nil
292+
}
293+
281294
// setupImagePullSecretsProvider configures the provider handling secrets
282295
func setupImagePullSecretsProvider() secrets.ImagePullSecretsProvider {
283296
config, err := rest.InClusterConfig()

0 commit comments

Comments
 (0)