func()

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},
	}
}