mirror of https://github.com/k3s-io/k3s
commit
ab6065944c
|
@ -41,7 +41,7 @@ import (
|
||||||
|
|
||||||
var (
|
var (
|
||||||
port = flag.Uint("port", 8080, "The port to listen on. Default 8080")
|
port = flag.Uint("port", 8080, "The port to listen on. Default 8080")
|
||||||
address = flag.String("address", "127.0.0.1", "The address on the local server to listen to. Default 127.0.0.1")
|
address = util.IP(net.ParseIP("127.0.0.1"))
|
||||||
apiPrefix = flag.String("api_prefix", "/api", "The prefix for API requests on the server. Default '/api'")
|
apiPrefix = flag.String("api_prefix", "/api", "The prefix for API requests on the server. Default '/api'")
|
||||||
storageVersion = flag.String("storage_version", "", "The version to store resources with. Defaults to server preferred")
|
storageVersion = flag.String("storage_version", "", "The version to store resources with. Defaults to server preferred")
|
||||||
cloudProvider = flag.String("cloud_provider", "", "The provider for cloud services. Empty string for no provider.")
|
cloudProvider = flag.String("cloud_provider", "", "The provider for cloud services. Empty string for no provider.")
|
||||||
|
@ -60,6 +60,7 @@ var (
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
flag.Var(&address, "address", "The IP address on to serve on (set to 0.0.0.0 for all interfaces)")
|
||||||
flag.Var(&etcdServerList, "etcd_servers", "List of etcd servers to watch (http://ip:port), comma separated")
|
flag.Var(&etcdServerList, "etcd_servers", "List of etcd servers to watch (http://ip:port), comma separated")
|
||||||
flag.Var(&machineList, "machines", "List of machines to schedule onto, comma separated.")
|
flag.Var(&machineList, "machines", "List of machines to schedule onto, comma separated.")
|
||||||
flag.Var(&corsAllowedOriginList, "cors_allowed_origins", "List of allowed origins for CORS, comma separated. An allowed origin can be a regular expression to support subdomain matching. If this list is empty CORS will not be enabled.")
|
flag.Var(&corsAllowedOriginList, "cors_allowed_origins", "List of allowed origins for CORS, comma separated. An allowed origin can be a regular expression to support subdomain matching. If this list is empty CORS will not be enabled.")
|
||||||
|
@ -133,7 +134,7 @@ func main() {
|
||||||
|
|
||||||
// TODO: expose same flags as client.BindClientConfigFlags but for a server
|
// TODO: expose same flags as client.BindClientConfigFlags but for a server
|
||||||
clientConfig := &client.Config{
|
clientConfig := &client.Config{
|
||||||
Host: net.JoinHostPort(*address, strconv.Itoa(int(*port))),
|
Host: net.JoinHostPort(address.String(), strconv.Itoa(int(*port))),
|
||||||
Version: *storageVersion,
|
Version: *storageVersion,
|
||||||
}
|
}
|
||||||
client, err := client.New(clientConfig)
|
client, err := client.New(clientConfig)
|
||||||
|
@ -179,7 +180,7 @@ func main() {
|
||||||
handler = apiserver.RecoverPanics(handler)
|
handler = apiserver.RecoverPanics(handler)
|
||||||
|
|
||||||
s := &http.Server{
|
s := &http.Server{
|
||||||
Addr: net.JoinHostPort(*address, strconv.Itoa(int(*port))),
|
Addr: net.JoinHostPort(address.String(), strconv.Itoa(int(*port))),
|
||||||
Handler: handler,
|
Handler: handler,
|
||||||
ReadTimeout: 5 * time.Minute,
|
ReadTimeout: 5 * time.Minute,
|
||||||
WriteTimeout: 5 * time.Minute,
|
WriteTimeout: 5 * time.Minute,
|
||||||
|
|
|
@ -39,11 +39,12 @@ import (
|
||||||
|
|
||||||
var (
|
var (
|
||||||
port = flag.Int("port", masterPkg.ControllerManagerPort, "The port that the controller-manager's http service runs on")
|
port = flag.Int("port", masterPkg.ControllerManagerPort, "The port that the controller-manager's http service runs on")
|
||||||
address = flag.String("address", "127.0.0.1", "The address to serve from")
|
address = util.IP(net.ParseIP("127.0.0.1"))
|
||||||
clientConfig = &client.Config{}
|
clientConfig = &client.Config{}
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
flag.Var(&address, "address", "The IP address to serve on (set to 0.0.0.0 for all interfaces)")
|
||||||
client.BindClientConfigFlags(flag.CommandLine, clientConfig)
|
client.BindClientConfigFlags(flag.CommandLine, clientConfig)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -63,7 +64,7 @@ func main() {
|
||||||
glog.Fatalf("Invalid API configuration: %v", err)
|
glog.Fatalf("Invalid API configuration: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
go http.ListenAndServe(net.JoinHostPort(*address, strconv.Itoa(*port)), nil)
|
go http.ListenAndServe(net.JoinHostPort(address.String(), strconv.Itoa(*port)), nil)
|
||||||
|
|
||||||
endpoints := service.NewEndpointController(kubeClient)
|
endpoints := service.NewEndpointController(kubeClient)
|
||||||
go util.Forever(func() { endpoints.SyncServiceEndpoints() }, time.Second*10)
|
go util.Forever(func() { endpoints.SyncServiceEndpoints() }, time.Second*10)
|
||||||
|
|
|
@ -21,6 +21,7 @@ package main
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
|
"net"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/http/httptest"
|
"net/http/httptest"
|
||||||
"os"
|
"os"
|
||||||
|
@ -154,7 +155,7 @@ func startComponents(manifestURL string) (apiServerURL string) {
|
||||||
myKubelet := kubelet.NewIntegrationTestKubelet(machineList[0], testRootDir, &fakeDocker1)
|
myKubelet := kubelet.NewIntegrationTestKubelet(machineList[0], testRootDir, &fakeDocker1)
|
||||||
go util.Forever(func() { myKubelet.Run(cfg1.Updates()) }, 0)
|
go util.Forever(func() { myKubelet.Run(cfg1.Updates()) }, 0)
|
||||||
go util.Forever(func() {
|
go util.Forever(func() {
|
||||||
kubelet.ListenAndServeKubeletServer(myKubelet, cfg1.Channel("http"), "localhost", 10250)
|
kubelet.ListenAndServeKubeletServer(myKubelet, cfg1.Channel("http"), net.ParseIP("127.0.0.1"), 10250)
|
||||||
}, 0)
|
}, 0)
|
||||||
|
|
||||||
// Kubelet (machine)
|
// Kubelet (machine)
|
||||||
|
@ -165,7 +166,7 @@ func startComponents(manifestURL string) (apiServerURL string) {
|
||||||
otherKubelet := kubelet.NewIntegrationTestKubelet(machineList[1], testRootDir, &fakeDocker2)
|
otherKubelet := kubelet.NewIntegrationTestKubelet(machineList[1], testRootDir, &fakeDocker2)
|
||||||
go util.Forever(func() { otherKubelet.Run(cfg2.Updates()) }, 0)
|
go util.Forever(func() { otherKubelet.Run(cfg2.Updates()) }, 0)
|
||||||
go util.Forever(func() {
|
go util.Forever(func() {
|
||||||
kubelet.ListenAndServeKubeletServer(otherKubelet, cfg2.Channel("http"), "localhost", 10251)
|
kubelet.ListenAndServeKubeletServer(otherKubelet, cfg2.Channel("http"), net.ParseIP("127.0.0.1"), 10251)
|
||||||
}, 0)
|
}, 0)
|
||||||
|
|
||||||
return apiServer.URL
|
return apiServer.URL
|
||||||
|
|
|
@ -23,6 +23,7 @@ package main
|
||||||
import (
|
import (
|
||||||
"flag"
|
"flag"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
|
"net"
|
||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
|
@ -54,7 +55,7 @@ var (
|
||||||
httpCheckFrequency = flag.Duration("http_check_frequency", 20*time.Second, "Duration between checking http for new data")
|
httpCheckFrequency = flag.Duration("http_check_frequency", 20*time.Second, "Duration between checking http for new data")
|
||||||
manifestURL = flag.String("manifest_url", "", "URL for accessing the container manifest")
|
manifestURL = flag.String("manifest_url", "", "URL for accessing the container manifest")
|
||||||
enableServer = flag.Bool("enable_server", true, "Enable the info server")
|
enableServer = flag.Bool("enable_server", true, "Enable the info server")
|
||||||
address = flag.String("address", "127.0.0.1", "The address for the info server to serve on (set to 0.0.0.0 or \"\" for all interfaces)")
|
address = util.IP(net.ParseIP("127.0.0.1"))
|
||||||
port = flag.Uint("port", master.KubeletPort, "The port for the info server to serve on")
|
port = flag.Uint("port", master.KubeletPort, "The port for the info server to serve on")
|
||||||
hostnameOverride = flag.String("hostname_override", "", "If non-empty, will use this string as identification instead of the actual hostname.")
|
hostnameOverride = flag.String("hostname_override", "", "If non-empty, will use this string as identification instead of the actual hostname.")
|
||||||
networkContainerImage = flag.String("network_container_image", kubelet.NetworkContainerImage, "The image that network containers in each pod will use.")
|
networkContainerImage = flag.String("network_container_image", kubelet.NetworkContainerImage, "The image that network containers in each pod will use.")
|
||||||
|
@ -69,6 +70,7 @@ var (
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
flag.Var(&etcdServerList, "etcd_servers", "List of etcd servers to watch (http://ip:port), comma separated")
|
flag.Var(&etcdServerList, "etcd_servers", "List of etcd servers to watch (http://ip:port), comma separated")
|
||||||
|
flag.Var(&address, "address", "The IP address for the info server to serve on (set to 0.0.0.0 for all interfaces)")
|
||||||
}
|
}
|
||||||
|
|
||||||
func getDockerEndpoint() string {
|
func getDockerEndpoint() string {
|
||||||
|
@ -199,7 +201,7 @@ func main() {
|
||||||
// start the kubelet server
|
// start the kubelet server
|
||||||
if *enableServer {
|
if *enableServer {
|
||||||
go util.Forever(func() {
|
go util.Forever(func() {
|
||||||
kubelet.ListenAndServeKubeletServer(k, cfg.Channel("http"), *address, *port)
|
kubelet.ListenAndServeKubeletServer(k, cfg.Channel("http"), net.IP(address), *port)
|
||||||
}, 0)
|
}, 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,7 @@ package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"flag"
|
"flag"
|
||||||
|
"net"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/client"
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/client"
|
||||||
|
@ -32,13 +33,14 @@ import (
|
||||||
var (
|
var (
|
||||||
configFile = flag.String("configfile", "/tmp/proxy_config", "Configuration file for the proxy")
|
configFile = flag.String("configfile", "/tmp/proxy_config", "Configuration file for the proxy")
|
||||||
etcdServerList util.StringList
|
etcdServerList util.StringList
|
||||||
bindAddress = flag.String("bindaddress", "0.0.0.0", "The address for the proxy server to serve on (set to 0.0.0.0 or \"\" for all interfaces)")
|
bindAddress = util.IP(net.ParseIP("0.0.0.0"))
|
||||||
clientConfig = &client.Config{}
|
clientConfig = &client.Config{}
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
client.BindClientConfigFlags(flag.CommandLine, clientConfig)
|
client.BindClientConfigFlags(flag.CommandLine, clientConfig)
|
||||||
flag.Var(&etcdServerList, "etcd_servers", "List of etcd servers to watch (http://ip:port), comma separated (optional)")
|
flag.Var(&etcdServerList, "etcd_servers", "List of etcd servers to watch (http://ip:port), comma separated (optional)")
|
||||||
|
flag.Var(&bindAddress, "bind_address", "The address for the proxy server to serve on (set to 0.0.0.0 for all interfaces)")
|
||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
@ -85,7 +87,7 @@ func main() {
|
||||||
glog.Infof("Using configuration file %s", *configFile)
|
glog.Infof("Using configuration file %s", *configFile)
|
||||||
|
|
||||||
loadBalancer := proxy.NewLoadBalancerRR()
|
loadBalancer := proxy.NewLoadBalancerRR()
|
||||||
proxier := proxy.NewProxier(loadBalancer, *bindAddress)
|
proxier := proxy.NewProxier(loadBalancer, net.IP(bindAddress))
|
||||||
// Wire proxier to handle changes to services
|
// Wire proxier to handle changes to services
|
||||||
serviceConfig.RegisterHandler(proxier)
|
serviceConfig.RegisterHandler(proxier)
|
||||||
// And wire loadBalancer to handle changes to endpoints to services
|
// And wire loadBalancer to handle changes to endpoints to services
|
||||||
|
|
|
@ -47,11 +47,11 @@ type Server struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
// ListenAndServeKubeletServer initializes a server to respond to HTTP network requests on the Kubelet.
|
// ListenAndServeKubeletServer initializes a server to respond to HTTP network requests on the Kubelet.
|
||||||
func ListenAndServeKubeletServer(host HostInterface, updates chan<- interface{}, address string, port uint) {
|
func ListenAndServeKubeletServer(host HostInterface, updates chan<- interface{}, address net.IP, port uint) {
|
||||||
glog.V(1).Infof("Starting to listen on %s:%d", address, port)
|
glog.V(1).Infof("Starting to listen on %s:%d", address, port)
|
||||||
handler := NewServer(host, updates)
|
handler := NewServer(host, updates)
|
||||||
s := &http.Server{
|
s := &http.Server{
|
||||||
Addr: net.JoinHostPort(address, strconv.FormatUint(uint64(port), 10)),
|
Addr: net.JoinHostPort(address.String(), strconv.FormatUint(uint64(port), 10)),
|
||||||
Handler: &handler,
|
Handler: &handler,
|
||||||
ReadTimeout: 10 * time.Second,
|
ReadTimeout: 10 * time.Second,
|
||||||
WriteTimeout: 10 * time.Second,
|
WriteTimeout: 10 * time.Second,
|
||||||
|
|
|
@ -276,7 +276,8 @@ func logTimeout(err error) bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
func newProxySocket(protocol api.Protocol, host string, port int) (proxySocket, error) {
|
func newProxySocket(protocol api.Protocol, ip net.IP, port int) (proxySocket, error) {
|
||||||
|
host := ip.String()
|
||||||
switch strings.ToUpper(string(protocol)) {
|
switch strings.ToUpper(string(protocol)) {
|
||||||
case "TCP":
|
case "TCP":
|
||||||
listener, err := net.Listen("tcp", net.JoinHostPort(host, strconv.Itoa(port)))
|
listener, err := net.Listen("tcp", net.JoinHostPort(host, strconv.Itoa(port)))
|
||||||
|
@ -304,12 +305,12 @@ type Proxier struct {
|
||||||
loadBalancer LoadBalancer
|
loadBalancer LoadBalancer
|
||||||
mu sync.Mutex // protects serviceMap
|
mu sync.Mutex // protects serviceMap
|
||||||
serviceMap map[string]*serviceInfo
|
serviceMap map[string]*serviceInfo
|
||||||
address string
|
address net.IP
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewProxier returns a new Proxier given a LoadBalancer and an
|
// NewProxier returns a new Proxier given a LoadBalancer and an
|
||||||
// address on which to listen
|
// address on which to listen
|
||||||
func NewProxier(loadBalancer LoadBalancer, address string) *Proxier {
|
func NewProxier(loadBalancer LoadBalancer, address net.IP) *Proxier {
|
||||||
return &Proxier{
|
return &Proxier{
|
||||||
loadBalancer: loadBalancer,
|
loadBalancer: loadBalancer,
|
||||||
serviceMap: make(map[string]*serviceInfo),
|
serviceMap: make(map[string]*serviceInfo),
|
||||||
|
|
|
@ -144,7 +144,7 @@ func TestTCPProxy(t *testing.T) {
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
p := NewProxier(lb, "127.0.0.1")
|
p := NewProxier(lb, net.ParseIP("127.0.0.1"))
|
||||||
|
|
||||||
proxyPort, err := p.addServiceOnUnusedPort("echo", "TCP", 0)
|
proxyPort, err := p.addServiceOnUnusedPort("echo", "TCP", 0)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -162,7 +162,7 @@ func TestUDPProxy(t *testing.T) {
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
p := NewProxier(lb, "127.0.0.1")
|
p := NewProxier(lb, net.ParseIP("127.0.0.1"))
|
||||||
|
|
||||||
proxyPort, err := p.addServiceOnUnusedPort("echo", "UDP", time.Second)
|
proxyPort, err := p.addServiceOnUnusedPort("echo", "UDP", time.Second)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -189,7 +189,7 @@ func TestTCPProxyStop(t *testing.T) {
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
p := NewProxier(lb, "127.0.0.1")
|
p := NewProxier(lb, net.ParseIP("127.0.0.1"))
|
||||||
|
|
||||||
proxyPort, err := p.addServiceOnUnusedPort("echo", "TCP", 0)
|
proxyPort, err := p.addServiceOnUnusedPort("echo", "TCP", 0)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -217,7 +217,7 @@ func TestUDPProxyStop(t *testing.T) {
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
p := NewProxier(lb, "127.0.0.1")
|
p := NewProxier(lb, net.ParseIP("127.0.0.1"))
|
||||||
|
|
||||||
proxyPort, err := p.addServiceOnUnusedPort("echo", "UDP", time.Second)
|
proxyPort, err := p.addServiceOnUnusedPort("echo", "UDP", time.Second)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -245,7 +245,7 @@ func TestTCPProxyUpdateDelete(t *testing.T) {
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
p := NewProxier(lb, "127.0.0.1")
|
p := NewProxier(lb, net.ParseIP("127.0.0.1"))
|
||||||
|
|
||||||
proxyPort, err := p.addServiceOnUnusedPort("echo", "TCP", 0)
|
proxyPort, err := p.addServiceOnUnusedPort("echo", "TCP", 0)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -272,7 +272,7 @@ func TestUDPProxyUpdateDelete(t *testing.T) {
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
p := NewProxier(lb, "127.0.0.1")
|
p := NewProxier(lb, net.ParseIP("127.0.0.1"))
|
||||||
|
|
||||||
proxyPort, err := p.addServiceOnUnusedPort("echo", "UDP", time.Second)
|
proxyPort, err := p.addServiceOnUnusedPort("echo", "UDP", time.Second)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -299,7 +299,7 @@ func TestTCPProxyUpdateDeleteUpdate(t *testing.T) {
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
p := NewProxier(lb, "127.0.0.1")
|
p := NewProxier(lb, net.ParseIP("127.0.0.1"))
|
||||||
|
|
||||||
proxyPort, err := p.addServiceOnUnusedPort("echo", "TCP", 0)
|
proxyPort, err := p.addServiceOnUnusedPort("echo", "TCP", 0)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -331,7 +331,7 @@ func TestUDPProxyUpdateDeleteUpdate(t *testing.T) {
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
p := NewProxier(lb, "127.0.0.1")
|
p := NewProxier(lb, net.ParseIP("127.0.0.1"))
|
||||||
|
|
||||||
proxyPort, err := p.addServiceOnUnusedPort("echo", "UDP", time.Second)
|
proxyPort, err := p.addServiceOnUnusedPort("echo", "UDP", time.Second)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -363,7 +363,7 @@ func TestTCPProxyUpdatePort(t *testing.T) {
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
p := NewProxier(lb, "127.0.0.1")
|
p := NewProxier(lb, net.ParseIP("127.0.0.1"))
|
||||||
|
|
||||||
proxyPort, err := p.addServiceOnUnusedPort("echo", "TCP", 0)
|
proxyPort, err := p.addServiceOnUnusedPort("echo", "TCP", 0)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -408,7 +408,7 @@ func TestUDPProxyUpdatePort(t *testing.T) {
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
p := NewProxier(lb, "127.0.0.1")
|
p := NewProxier(lb, net.ParseIP("127.0.0.1"))
|
||||||
|
|
||||||
proxyPort, err := p.addServiceOnUnusedPort("echo", "UDP", time.Second)
|
proxyPort, err := p.addServiceOnUnusedPort("echo", "UDP", time.Second)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
/*
|
||||||
|
Copyright 2014 Google Inc. All rights reserved.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package util
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"net"
|
||||||
|
)
|
||||||
|
|
||||||
|
// IP adapts net.IP for use as a flag.
|
||||||
|
type IP net.IP
|
||||||
|
|
||||||
|
func (ip IP) String() string {
|
||||||
|
return net.IP(ip).String()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ip *IP) Set(value string) error {
|
||||||
|
*ip = IP(net.ParseIP(value))
|
||||||
|
if *ip == nil {
|
||||||
|
return fmt.Errorf("invalid IP address: '%s'", value)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
|
@ -34,11 +34,12 @@ import (
|
||||||
|
|
||||||
var (
|
var (
|
||||||
port = flag.Int("port", masterPkg.SchedulerPort, "The port that the scheduler's http service runs on")
|
port = flag.Int("port", masterPkg.SchedulerPort, "The port that the scheduler's http service runs on")
|
||||||
address = flag.String("address", "127.0.0.1", "The address to serve from")
|
address = util.IP(net.ParseIP("127.0.0.1"))
|
||||||
clientConfig = &client.Config{}
|
clientConfig = &client.Config{}
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
flag.Var(&address, "address", "The IP address to serve on (set to 0.0.0.0 for all interfaces)")
|
||||||
client.BindClientConfigFlags(flag.CommandLine, clientConfig)
|
client.BindClientConfigFlags(flag.CommandLine, clientConfig)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -54,7 +55,7 @@ func main() {
|
||||||
glog.Fatalf("Invalid API configuration: %v", err)
|
glog.Fatalf("Invalid API configuration: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
go http.ListenAndServe(net.JoinHostPort(*address, strconv.Itoa(*port)), nil)
|
go http.ListenAndServe(net.JoinHostPort(address.String(), strconv.Itoa(*port)), nil)
|
||||||
|
|
||||||
configFactory := &factory.ConfigFactory{Client: kubeClient}
|
configFactory := &factory.ConfigFactory{Client: kubeClient}
|
||||||
config := configFactory.Create()
|
config := configFactory.Create()
|
||||||
|
|
Loading…
Reference in New Issue