in deploy/kubernetes/operator/pkg/webhook/manager.go [181:212]
func (am *admissionManager) loadCertsFromSecret() {
namespace := utils.GetCurrentNamespace()
create := false
secret, err := am.kubeClient.CoreV1().Secrets(namespace).Get(context.Background(),
certsSecretName, metav1.GetOptions{})
if err != nil {
if !errors.IsNotFound(err) {
klog.Fatalf("get secret of %v/%v failed: %v", namespace, certsSecretName, err)
}
create = true
}
var serverCertBody, serverKeyBody, caCertBody []byte
if secret == nil || secret.Data == nil || len(secret.Data[serverCert]) == 0 || len(secret.Data[serverKey]) == 0 ||
len(secret.Data[caCert]) == 0 {
caCertBody, serverCertBody, serverKeyBody, err = am.generateCerts(create)
if err != nil {
klog.Fatalf("generate certs failed: %v", err)
}
} else {
caCertBody = secret.Data[caCert]
serverCertBody = secret.Data[serverCert]
serverKeyBody = secret.Data[serverKey]
}
am.caCertBody = caCertBody
cert, err := tls.X509KeyPair(serverCertBody, serverKeyBody)
if err != nil {
klog.Fatalf("generate key pair error :%v", err)
}
am.tlsConfig = &tls.Config{
Certificates: []tls.Certificate{cert},
}
}