Merge pull request #49825 from erhudy/bugfix/kubeadm-337-empty-node-name

Automatic merge from submit-queue

Fixes kubernetes/kubeadm#347: empty node name when joining nodes with kubeadm

Node name discovery failed on `kubeadm join`. If a node name
is not explicitly provided, it will be looked up.

**What this PR does / why we need it**: `kubeadm join` fails because the preflight checks always see an empty node name. This corrects that issue.

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes kubernetes/kubeadm#347

**Special notes for your reviewer**:

**Release note**:

```release-note
kubeadm: Fix join preflight check false negative
```
This commit is contained in:
Kubernetes Submit Queue 2017-08-01 03:25:57 -07:00 committed by GitHub
commit 5ce3b359f1
3 changed files with 7 additions and 1 deletions

View File

@ -45,6 +45,7 @@ go_library(
"//pkg/printers:go_default_library",
"//pkg/util/i18n:go_default_library",
"//pkg/util/initsystem:go_default_library",
"//pkg/util/node:go_default_library",
"//pkg/util/version:go_default_library",
"//pkg/version:go_default_library",
"//vendor/github.com/ghodss/yaml:go_default_library",

View File

@ -36,6 +36,7 @@ import (
kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util"
kubeconfigutil "k8s.io/kubernetes/cmd/kubeadm/app/util/kubeconfig"
"k8s.io/kubernetes/pkg/api"
nodeutil "k8s.io/kubernetes/pkg/util/node"
)
var (
@ -135,6 +136,10 @@ type Join struct {
func NewJoin(cfgPath string, args []string, cfg *kubeadmapi.NodeConfiguration, skipPreFlight bool) (*Join, error) {
fmt.Println("[kubeadm] WARNING: kubeadm is in beta, please do not use it for production clusters.")
if cfg.NodeName == "" {
cfg.NodeName = nodeutil.GetHostname("")
}
if cfgPath != "" {
b, err := ioutil.ReadFile(cfgPath)
if err != nil {

View File

@ -599,7 +599,7 @@ func RunJoinNodeChecks(cfg *kubeadmapi.NodeConfiguration) error {
checks := []Checker{
SystemVerificationCheck{},
IsRootCheck{},
HostnameCheck{},
HostnameCheck{cfg.NodeName},
ServiceCheck{Service: "kubelet", CheckIfActive: false},
ServiceCheck{Service: "docker", CheckIfActive: true},
PortOpenCheck{port: 10250},