diff --git a/pkg/model/components/apiserver.go b/pkg/model/components/apiserver.go index a895162568..f8170b67c3 100644 --- a/pkg/model/components/apiserver.go +++ b/pkg/model/components/apiserver.go @@ -18,9 +18,11 @@ package components import ( "fmt" + "github.com/blang/semver" "k8s.io/kops/pkg/apis/kops" "k8s.io/kops/upup/pkg/fi" "k8s.io/kops/upup/pkg/fi/loader" + "k8s.io/kubernetes/pkg/api" ) // KubeAPIServerOptionsBuilder adds options for the apiserver to the model @@ -49,6 +51,30 @@ func (b *KubeAPIServerOptionsBuilder) BuildOptions(o interface{}) error { options.KubeAPIServer.StorageBackend = fi.String("etcd2") } + k8sVersion, err := b.Context.KubernetesVersion() + if err != nil { + return err + } + if options.KubeAPIServer.KubeletPreferredAddressTypes == nil { + if k8sVersion.GTE(semver.MustParse("1.5.0")) { + // Default precedence + //options.KubeAPIServer.KubeletPreferredAddressTypes = []string { + // string(api.NodeHostName), + // string(api.NodeInternalIP), + // string(api.NodeExternalIP), + // string(api.NodeLegacyHostIP), + //} + + // We prioritize the internal IP above the hostname + options.KubeAPIServer.KubeletPreferredAddressTypes = []string{ + string(api.NodeInternalIP), + string(api.NodeHostName), + string(api.NodeExternalIP), + string(api.NodeLegacyHostIP), + } + } + } + return nil }