add -hostname-override

This commit is contained in:
Andy Xie
2017-01-18 23:45:30 +08:00
parent 1202ed0c3e
commit 7302c70143
4 changed files with 40 additions and 22 deletions
+2 -19
View File
@@ -20,7 +20,6 @@ import (
"encoding/json"
"fmt"
"net/url"
"os"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/unversioned"
@@ -51,7 +50,7 @@ type nodeProblemClient struct {
}
// NewClientOrDie creates a new problem client, panics if error occurs.
func NewClientOrDie(apiServerOverride string) Client {
func NewClientOrDie(apiServerOverride, nodeName string) Client {
c := &nodeProblemClient{clock: clock.RealClock{}}
// we have checked it is a valid URI after command line argument is parsed.:)
@@ -64,23 +63,7 @@ func NewClientOrDie(apiServerOverride string) Client {
// TODO(random-liu): Set QPS Limit
c.client = client.NewOrDie(cfg)
// Get node name from environment variable NODE_NAME
// By default, assume that the NODE_NAME env should have been set with
// downward api. We prefer it because sometimes the hostname returned
// by os.Hostname is not right because:
// 1. User may override the hostname.
// 2. For some cloud providers, os.Hostname is different from the real hostname.
c.nodeName = os.Getenv("NODE_NAME")
if c.nodeName == "" {
// For backward compatibility. If the env is not set, get the hostname
// from os.Hostname(). This may not work for all configurations and
// environments.
var err error
c.nodeName, err = os.Hostname()
if err != nil {
panic("empty node name")
}
}
c.nodeName = nodeName
c.nodeRef = getNodeRef(c.nodeName)
c.recorders = make(map[string]record.EventRecorder)
return c
+2 -2
View File
@@ -41,8 +41,8 @@ type problemDetector struct {
// NewProblemDetector creates the problem detector. Currently we just directly passed in the problem daemons, but
// in the future we may want to let the problem daemons register themselves.
func NewProblemDetector(monitor kernelmonitor.KernelMonitor, apiServerOverride string) ProblemDetector {
client := problemclient.NewClientOrDie(apiServerOverride)
func NewProblemDetector(monitor kernelmonitor.KernelMonitor, apiServerOverride, nodeName string) ProblemDetector {
client := problemclient.NewClientOrDie(apiServerOverride, nodeName)
return &problemDetector{
client: client,
conditionManager: condition.NewConditionManager(client, clock.RealClock{}),