mirror of
https://github.com/kubernetes/node-problem-detector.git
synced 2026-08-19 12:16:26 +00:00
add -hostname-override
This commit is contained in:
@@ -26,6 +26,7 @@ import (
|
||||
"k8s.io/node-problem-detector/pkg/version"
|
||||
|
||||
"github.com/golang/glog"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
// TODO: Move flags to options directory.
|
||||
@@ -33,6 +34,7 @@ var (
|
||||
kernelMonitorConfigPath = flag.String("kernel-monitor", "/config/kernel-monitor.json", "The path to the kernel monitor config file")
|
||||
apiServerOverride = flag.String("apiserver-override", "", "Custom URI used to connect to Kubernetes ApiServer")
|
||||
printVersion = flag.Bool("version", false, "Print version information and quit")
|
||||
hostnameOverride = flag.String("hostname-override", "", "Custom node name used to override hostname")
|
||||
)
|
||||
|
||||
func validateCmdParams() {
|
||||
@@ -41,6 +43,36 @@ func validateCmdParams() {
|
||||
}
|
||||
}
|
||||
|
||||
func getNodeNameOrDie() string {
|
||||
var nodeName string
|
||||
|
||||
// Check hostname override first for customized node name.
|
||||
if *hostnameOverride != "" {
|
||||
return *hostnameOverride
|
||||
}
|
||||
|
||||
// Get node name from environment variable NODE_NAME
|
||||
// By default, assume that the NODE_NAME env should have been set with
|
||||
// downward api or user defined exported environment variable. 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.
|
||||
nodeName = os.Getenv("NODE_NAME")
|
||||
if nodeName != "" {
|
||||
return 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.
|
||||
nodeName, err := os.Hostname()
|
||||
if err != nil {
|
||||
panic(fmt.Sprintf("Failed to get host name: %v", err))
|
||||
}
|
||||
|
||||
return nodeName
|
||||
}
|
||||
|
||||
func main() {
|
||||
flag.Parse()
|
||||
validateCmdParams()
|
||||
@@ -50,7 +82,9 @@ func main() {
|
||||
os.Exit(0)
|
||||
}
|
||||
|
||||
nodeName := getNodeNameOrDie()
|
||||
|
||||
k := kernelmonitor.NewKernelMonitorOrDie(*kernelMonitorConfigPath)
|
||||
p := problemdetector.NewProblemDetector(k, *apiServerOverride)
|
||||
p := problemdetector.NewProblemDetector(k, *apiServerOverride, nodeName)
|
||||
p.Run()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user