Browse code

Master takes IP instead of string

Clayton Coleman authored on 2015/02/04 14:14:08
Showing 2 changed files
... ...
@@ -33,7 +33,7 @@ const (
33 33
 
34 34
 // MasterConfig defines the required values to start a Kubernetes master
35 35
 type MasterConfig struct {
36
-	MasterHost string
36
+	MasterIP   net.IP
37 37
 	MasterPort int
38 38
 	NodeHosts  []string
39 39
 	PortalNet  *net.IPNet
... ...
@@ -67,7 +67,7 @@ func (c *MasterConfig) InstallAPI(container *restful.Container) []string {
67 67
 	}
68 68
 
69 69
 	masterConfig := &master.Config{
70
-		PublicAddress: c.MasterHost,
70
+		PublicAddress: c.MasterIP,
71 71
 		ReadWritePort: c.MasterPort,
72 72
 		ReadOnlyPort:  c.MasterPort,
73 73
 
... ...
@@ -507,9 +507,20 @@ func start(cfg *config, args []string) error {
507 507
 
508 508
 		if startKube {
509 509
 			portalNet := net.IPNet(cfg.PortalNet)
510
+			masterIP := net.ParseIP(cfg.MasterAddr.Host)
511
+			if masterIP == nil {
512
+				addrs, err := net.LookupIP(cfg.MasterAddr.Host)
513
+				if err != nil {
514
+					glog.Fatalf("Unable to find an IP for %q - specify an IP directly? %v", cfg.MasterAddr.Host, err)
515
+				}
516
+				if len(addrs) == 0 {
517
+					glog.Fatalf("Unable to find an IP for %q - specify an IP directly?", cfg.MasterAddr.Host)
518
+				}
519
+				masterIP = addrs[0]
520
+			}
510 521
 
511 522
 			kmaster := &kubernetes.MasterConfig{
512
-				MasterHost:       cfg.MasterAddr.Host,
523
+				MasterIP:         masterIP,
513 524
 				MasterPort:       cfg.MasterAddr.Port,
514 525
 				NodeHosts:        cfg.NodeList,
515 526
 				PortalNet:        &portalNet,