Skip to content

Commit dc8331e

Browse files
fix-certs-renewal
1 parent 61fa0fd commit dc8331e

File tree

1 file changed

+24
-4
lines changed

1 file changed

+24
-4
lines changed

cmd/kubeadm/app/cmd/alpha/certs.go

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
kubeadmapiv1beta1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta1"
2525
"k8s.io/kubernetes/cmd/kubeadm/app/cmd/options"
2626
cmdutil "k8s.io/kubernetes/cmd/kubeadm/app/cmd/util"
27+
kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants"
2728
certsphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/certs"
2829
"k8s.io/kubernetes/cmd/kubeadm/app/phases/certs/renewal"
2930
kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util"
@@ -145,11 +146,30 @@ func generateRenewalFunction(cert *certsphase.KubeadmCert, caCert *certsphase.Ku
145146
return
146147
}
147148

148-
renewer, err := getRenewer(cfg, caCert.BaseName)
149-
kubeadmutil.CheckErr(err)
149+
var externalCA bool
150+
switch caCert.BaseName {
151+
case kubeadmconstants.CACertAndKeyBaseName:
152+
// Check if an external CA is provided by the user (when the CA Cert is present but the CA Key is not)
153+
externalCA, _ = certsphase.UsingExternalCA(&internalcfg.ClusterConfiguration)
154+
case kubeadmconstants.FrontProxyCACertAndKeyBaseName:
155+
// Check if an external Front-Proxy CA is provided by the user (when the Front-Proxy CA Cert is present but the Front-Proxy CA Key is not)
156+
externalCA, _ = certsphase.UsingExternalFrontProxyCA(&internalcfg.ClusterConfiguration)
157+
default:
158+
externalCA = false
159+
}
150160

151-
err = renewal.RenewExistingCert(internalcfg.CertificatesDir, cert.BaseName, renewer)
152-
kubeadmutil.CheckErr(err)
161+
if !externalCA {
162+
renewer, err := getRenewer(cfg, caCert.BaseName)
163+
kubeadmutil.CheckErr(err)
164+
165+
err = renewal.RenewExistingCert(internalcfg.CertificatesDir, cert.BaseName, renewer)
166+
kubeadmutil.CheckErr(err)
167+
168+
fmt.Printf("Certificate %s renewed\n", cert.Name)
169+
return
170+
}
171+
172+
fmt.Printf("Detected external %s, certificate %s can't be renewed\n", cert.CAName, cert.Name)
153173
}
154174
}
155175

0 commit comments

Comments
 (0)