diff --git a/cmd/kubeadm/app/preflight/checks.go b/cmd/kubeadm/app/preflight/checks.go index 7e48e5d59b3..0925e11328f 100644 --- a/cmd/kubeadm/app/preflight/checks.go +++ b/cmd/kubeadm/app/preflight/checks.go @@ -676,6 +676,15 @@ func RunInitMasterChecks(cfg *kubeadmapi.MasterConfiguration) error { ) } else { // Only check etcd version when external endpoints are specified + if cfg.Etcd.CAFile != "" { + checks = append(checks, FileExistingCheck{Path: cfg.Etcd.CAFile}) + } + if cfg.Etcd.CertFile != "" { + checks = append(checks, FileExistingCheck{Path: cfg.Etcd.CertFile}) + } + if cfg.Etcd.KeyFile != "" { + checks = append(checks, FileExistingCheck{Path: cfg.Etcd.KeyFile}) + } checks = append(checks, ExternalEtcdVersionCheck{Etcd: cfg.Etcd}, ) diff --git a/cmd/kubeadm/app/preflight/checks_test.go b/cmd/kubeadm/app/preflight/checks_test.go index 2db21a775fd..18efdfd1a60 100644 --- a/cmd/kubeadm/app/preflight/checks_test.go +++ b/cmd/kubeadm/app/preflight/checks_test.go @@ -174,24 +174,47 @@ func (pfct preflightCheckTest) Check() (warning, errors []error) { func TestRunInitMasterChecks(t *testing.T) { var tests = []struct { + name string cfg *kubeadmapi.MasterConfiguration expected bool }{ - { + {name: "Test valid advertised address", cfg: &kubeadmapi.MasterConfiguration{ API: kubeadmapi.API{AdvertiseAddress: "foo"}, }, expected: false, }, + { + name: "Test CA file exists if specfied", + cfg: &kubeadmapi.MasterConfiguration{ + Etcd: kubeadmapi.Etcd{CAFile: "/foo"}, + }, + expected: false, + }, + { + name: "Test Cert file exists if specfied", + cfg: &kubeadmapi.MasterConfiguration{ + Etcd: kubeadmapi.Etcd{CertFile: "/foo"}, + }, + expected: false, + }, + { + name: "Test Key file exists if specfied", + cfg: &kubeadmapi.MasterConfiguration{ + Etcd: kubeadmapi.Etcd{CertFile: "/foo"}, + }, + expected: false, + }, } for _, rt := range tests { actual := RunInitMasterChecks(rt.cfg) if (actual == nil) != rt.expected { t.Errorf( - "failed RunInitMasterChecks:\n\texpected: %t\n\t actual: %t", + "failed RunInitMasterChecks:\n\texpected: %t\n\t actual: %t\n\t error: %v", rt.expected, - (actual != nil), + (actual == nil), + actual, ) } }