From 2c89fa4a5949c2a8a9e76daada71a18b5afea20e Mon Sep 17 00:00:00 2001 From: pacoxu Date: Thu, 18 Feb 2021 17:51:23 +0800 Subject: [PATCH] add hostname check in kubeadm join: warning log only Co-authored-by: Lubomir I. Ivanov --- cmd/kubeadm/app/preflight/BUILD | 1 + cmd/kubeadm/app/preflight/checks.go | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/cmd/kubeadm/app/preflight/BUILD b/cmd/kubeadm/app/preflight/BUILD index 49ec4e30f89..0784663d57c 100644 --- a/cmd/kubeadm/app/preflight/BUILD +++ b/cmd/kubeadm/app/preflight/BUILD @@ -25,6 +25,7 @@ go_library( "//cmd/kubeadm/app/util/runtime:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/net:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/util/validation:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/version:go_default_library", "//staging/src/k8s.io/component-base/version:go_default_library", "//vendor/github.com/PuerkitoBio/purell:go_default_library", diff --git a/cmd/kubeadm/app/preflight/checks.go b/cmd/kubeadm/app/preflight/checks.go index cd656189792..f219bef6d2c 100644 --- a/cmd/kubeadm/app/preflight/checks.go +++ b/cmd/kubeadm/app/preflight/checks.go @@ -38,6 +38,7 @@ import ( "github.com/pkg/errors" netutil "k8s.io/apimachinery/pkg/util/net" "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/validation" versionutil "k8s.io/apimachinery/pkg/util/version" kubeadmversion "k8s.io/component-base/version" "k8s.io/klog/v2" @@ -402,8 +403,12 @@ func (HostnameCheck) Name() string { } // Check validates if hostname match dns sub domain regex. +// Check hostname length and format func (hc HostnameCheck) Check() (warnings, errorList []error) { - klog.V(1).Infoln("checking whether the given node name is reachable using net.LookupHost") + klog.V(1).Infoln("checking whether the given node name is valid and reachable using net.LookupHost") + for _, msg := range validation.IsQualifiedName(hc.nodeName) { + warnings = append(warnings, errors.Errorf("invalid node name format %q: %s", hc.nodeName, msg)) + } addr, err := net.LookupHost(hc.nodeName) if addr == nil {