Skip to content

Commit 50bbe53

Browse files
author
OpenShift Bot
authored
Merge pull request #13539 from csrwng/fix_clusterup_dns_bind_ip
Merged by openshift-bot
2 parents 645cac4 + 030fb36 commit 50bbe53

File tree

1 file changed

+41
-1
lines changed

1 file changed

+41
-1
lines changed

pkg/bootstrap/docker/openshift/helper.go

+41-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
"strings"
1212
"time"
1313

14+
"github.com/blang/semver"
1415
docker "github.com/fsouza/go-dockerclient"
1516
"github.com/golang/glog"
1617
kapi "k8s.io/kubernetes/pkg/api"
@@ -70,6 +71,8 @@ var (
7071
"openshift.default.svc",
7172
"openshift.default.svc.cluster.local",
7273
}
74+
version15 = semver.MustParse("1.5.0")
75+
version35 = semver.MustParse("3.5.0")
7376
)
7477

7578
// Helper contains methods and utilities to help with OpenShift startup
@@ -611,6 +614,35 @@ func GetConfigFromContainer(client *docker.Client) (*configapi.MasterConfig, err
611614
return config, nil
612615
}
613616

617+
func (h *Helper) serverVersion() (semver.Version, error) {
618+
versionText, _, _, err := h.runHelper.New().Image(h.image).
619+
Command("version").
620+
Output()
621+
if err != nil {
622+
return semver.Version{}, err
623+
}
624+
lines := strings.Split(versionText, "\n")
625+
versionStr := ""
626+
for _, line := range lines {
627+
if strings.HasPrefix(line, "openshift") {
628+
parts := strings.SplitN(line, " ", 2)
629+
versionStr = strings.TrimLeft(parts[1], "v")
630+
break
631+
}
632+
}
633+
return semver.Parse(versionStr)
634+
}
635+
636+
func useDNSIP(version semver.Version) bool {
637+
// Ignore pre-release portion
638+
version.Pre = []semver.PRVersion{}
639+
640+
if version.Major == 1 {
641+
return version.GTE(version15)
642+
}
643+
return version.GTE(version35)
644+
}
645+
614646
func (h *Helper) updateConfig(configDir string, opt *StartOptions) error {
615647
cfg, configPath, err := h.GetConfigFromLocalDir(configDir)
616648
if err != nil {
@@ -686,8 +718,16 @@ func (h *Helper) updateConfig(configDir string, opt *StartOptions) error {
686718
if err != nil {
687719
return err
688720
}
721+
version, err := h.serverVersion()
722+
if err != nil {
723+
return err
724+
}
725+
if useDNSIP(version) {
726+
nodeCfg.DNSIP = "172.30.0.1"
727+
} else {
728+
nodeCfg.DNSIP = ""
729+
}
689730
nodeCfg.DNSBindAddress = ""
690-
nodeCfg.DNSIP = ""
691731
cfgBytes, err = configapilatest.WriteYAML(nodeCfg)
692732
if err != nil {
693733
return err

0 commit comments

Comments
 (0)