Allow user to override node name

Signed-off-by: Zhongcheng Lao <Zhongcheng.Lao@microsoft.com>
pull/6200/head
Zhongcheng Lao 2019-09-17 23:29:57 +08:00
parent e5f5abda89
commit f9ed4a6460
No known key found for this signature in database
GPG Key ID: 3B0C92A7E58EF413
2 changed files with 6 additions and 1 deletions

View File

@ -95,6 +95,7 @@ const (
keepContext = "keep-context" keepContext = "keep-context"
createMount = "mount" createMount = "mount"
featureGates = "feature-gates" featureGates = "feature-gates"
nodeName = "node-name"
apiServerName = "apiserver-name" apiServerName = "apiserver-name"
apiServerPort = "apiserver-port" apiServerPort = "apiserver-port"
dnsDomain = "dns-domain" dnsDomain = "dns-domain"
@ -193,6 +194,7 @@ func initKubernetesFlags() {
startCmd.Flags().String(apiServerName, constants.APIServerName, "The apiserver name which is used in the generated certificate for kubernetes. This can be used if you want to make the apiserver available from outside the machine") startCmd.Flags().String(apiServerName, constants.APIServerName, "The apiserver name which is used in the generated certificate for kubernetes. This can be used if you want to make the apiserver available from outside the machine")
startCmd.Flags().StringArrayVar(&apiServerNames, "apiserver-names", nil, "A set of apiserver names which are used in the generated certificate for kubernetes. This can be used if you want to make the apiserver available from outside the machine") startCmd.Flags().StringArrayVar(&apiServerNames, "apiserver-names", nil, "A set of apiserver names which are used in the generated certificate for kubernetes. This can be used if you want to make the apiserver available from outside the machine")
startCmd.Flags().IPSliceVar(&apiServerIPs, "apiserver-ips", nil, "A set of apiserver IP Addresses which are used in the generated certificate for kubernetes. This can be used if you want to make the apiserver available from outside the machine") startCmd.Flags().IPSliceVar(&apiServerIPs, "apiserver-ips", nil, "A set of apiserver IP Addresses which are used in the generated certificate for kubernetes. This can be used if you want to make the apiserver available from outside the machine")
startCmd.Flags().String(nodeName, constants.DefaultNodeName, "The node name")
} }
// initDriverFlags inits the commandline flags for vm drivers // initDriverFlags inits the commandline flags for vm drivers
@ -921,7 +923,7 @@ func generateCfgFromFlags(cmd *cobra.Command, k8sVersion string, drvName string)
KubernetesConfig: cfg.KubernetesConfig{ KubernetesConfig: cfg.KubernetesConfig{
KubernetesVersion: k8sVersion, KubernetesVersion: k8sVersion,
NodePort: viper.GetInt(apiServerPort), NodePort: viper.GetInt(apiServerPort),
NodeName: constants.DefaultNodeName, NodeName: viper.GetString(nodeName),
APIServerName: viper.GetString(apiServerName), APIServerName: viper.GetString(apiServerName),
APIServerNames: apiServerNames, APIServerNames: apiServerNames,
APIServerIPs: apiServerIPs, APIServerIPs: apiServerIPs,

View File

@ -50,6 +50,9 @@ func NewKubeletConfig(k8s config.KubernetesConfig, r cruntime.Manager) ([]byte,
if _, ok := extraOpts["node-ip"]; !ok { if _, ok := extraOpts["node-ip"]; !ok {
extraOpts["node-ip"] = k8s.NodeIP extraOpts["node-ip"] = k8s.NodeIP
} }
if k8s.NodeName != "" {
extraOpts["hostname-override"] = k8s.NodeName
}
pauseImage := images.Pause(k8s.ImageRepository) pauseImage := images.Pause(k8s.ImageRepository)
if _, ok := extraOpts["pod-infra-container-image"]; !ok && k8s.ImageRepository != "" && pauseImage != "" && k8s.ContainerRuntime != remoteContainerRuntime { if _, ok := extraOpts["pod-infra-container-image"]; !ok && k8s.ImageRepository != "" && pauseImage != "" && k8s.ContainerRuntime != remoteContainerRuntime {