Initial integration of the cloud based minion registry.

pull/6/head
Brendan Burns 2014-06-27 11:04:25 -07:00
parent a5c3889866
commit 431fcac8b0
3 changed files with 16 additions and 4 deletions

View File

@ -34,6 +34,7 @@ var (
address = flag.String("address", "127.0.0.1", "The address on the local server to listen to. Default 127.0.0.1")
apiPrefix = flag.String("api_prefix", "/api/v1beta1", "The prefix for API requests on the server. Default '/api/v1beta1'")
cloudProvider = flag.String("cloud_provider", "", "The provider for cloud services. Empty string for no provider.")
minionRegexp = flag.String("minion_regexp", "", "If non empty, and -cloud_provider is specified, a regular expression for matching minion VMs")
etcdServerList, machineList util.StringList
)
@ -69,7 +70,7 @@ func main() {
var m *master.Master
if len(etcdServerList) > 0 {
m = master.New(etcdServerList, machineList, cloud)
m = master.New(etcdServerList, machineList, cloud, *minionRegexp)
} else {
m = master.NewMemoryServer(machineList, cloud)
}

View File

@ -54,7 +54,7 @@ func main() {
machineList := []string{"localhost", "machine"}
// Master
m := master.New(servers, machineList, nil)
m := master.New(servers, machineList, nil, "")
apiserver := httptest.NewServer(m.ConstructHandler("/api/v1beta1"))
controllerManager := controller.MakeReplicationManager(etcd.NewClient(servers), client.New(apiserver.URL, nil))

View File

@ -27,6 +27,7 @@ import (
"github.com/GoogleCloudPlatform/kubernetes/pkg/registry"
"github.com/GoogleCloudPlatform/kubernetes/pkg/util"
"github.com/coreos/go-etcd/etcd"
"github.com/golang/glog"
)
// Master contains state for a Kubernetes cluster master/api server.
@ -53,9 +54,19 @@ func NewMemoryServer(minions []string, cloud cloudprovider.Interface) *Master {
}
// Returns a new apiserver.
func New(etcdServers, minions []string, cloud cloudprovider.Interface) *Master {
func New(etcdServers, minions []string, cloud cloudprovider.Interface, minionRegexp string) *Master {
etcdClient := etcd.NewClient(etcdServers)
minionRegistry := registry.MakeMinionRegistry(minions)
var minionRegistry registry.MinionRegistry
if cloud != nil && len(minionRegexp) > 0 {
var err error
minionRegistry, err = registry.MakeCloudMinionRegistry(cloud, minionRegexp)
if err != nil {
glog.Errorf("Failed to initalize cloud minion registry reverting to static registry (%#v)", err)
minionRegistry = registry.MakeMinionRegistry(minions)
}
} else {
minionRegistry = registry.MakeMinionRegistry(minions)
}
m := &Master{
podRegistry: registry.MakeEtcdRegistry(etcdClient, minionRegistry),
controllerRegistry: registry.MakeEtcdRegistry(etcdClient, minionRegistry),