@@ -24,6 +24,7 @@ import (
24
24
kubeadmapiv1beta1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta1"
25
25
"k8s.io/kubernetes/cmd/kubeadm/app/cmd/options"
26
26
cmdutil "k8s.io/kubernetes/cmd/kubeadm/app/cmd/util"
27
+ kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants"
27
28
certsphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/certs"
28
29
"k8s.io/kubernetes/cmd/kubeadm/app/phases/certs/renewal"
29
30
kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util"
@@ -145,11 +146,30 @@ func generateRenewalFunction(cert *certsphase.KubeadmCert, caCert *certsphase.Ku
145
146
return
146
147
}
147
148
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
+ }
150
160
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 )
153
173
}
154
174
}
155
175
0 commit comments