From b1b719fa682057378a66d466539dd75c9c750860 Mon Sep 17 00:00:00 2001 From: Ed Bartosh Date: Mon, 1 Oct 2018 18:19:20 +0300 Subject: [PATCH] kubeadm: fix kubeadm join using existing certs If 'kubeadm join' is run with --discovery-file option it still prompts for bootstrap token. This makes it impossible to use existing client certificates mentioned in the discovery file. Fixed by checking for empty bootstrap token only if discovery file is not specified. Fixes: kubernetes/kubeadm#1142 --- cmd/kubeadm/app/apis/kubeadm/validation/validation.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cmd/kubeadm/app/apis/kubeadm/validation/validation.go b/cmd/kubeadm/app/apis/kubeadm/validation/validation.go index 91fd92239ec..48295ef1393 100644 --- a/cmd/kubeadm/app/apis/kubeadm/validation/validation.go +++ b/cmd/kubeadm/app/apis/kubeadm/validation/validation.go @@ -99,9 +99,13 @@ func ValidateDiscovery(c *kubeadm.JoinConfiguration) field.ErrorList { } if len(c.DiscoveryFile) != 0 { allErrs = append(allErrs, ValidateDiscoveryFile(c.DiscoveryFile, field.NewPath("discoveryFile"))...) + if len(c.TLSBootstrapToken) != 0 { + allErrs = append(allErrs, ValidateToken(c.TLSBootstrapToken, field.NewPath("tlsBootstrapToken"))...) + } + } else { + allErrs = append(allErrs, ValidateToken(c.TLSBootstrapToken, field.NewPath("tlsBootstrapToken"))...) } allErrs = append(allErrs, ValidateArgSelection(c, field.NewPath("discovery"))...) - allErrs = append(allErrs, ValidateToken(c.TLSBootstrapToken, field.NewPath("tlsBootstrapToken"))...) allErrs = append(allErrs, ValidateJoinDiscoveryTokenAPIServer(c.DiscoveryTokenAPIServers, field.NewPath("discoveryTokenAPIServers"))...) return allErrs