mirror of
https://github.com/k3s-io/kubernetes.git
synced 2026-01-04 23:17:50 +00:00
Implement minion registry. Minions now a first-class object.
This commit is contained in:
@@ -34,8 +34,8 @@ type Master struct {
|
||||
podRegistry registry.PodRegistry
|
||||
controllerRegistry registry.ControllerRegistry
|
||||
serviceRegistry registry.ServiceRegistry
|
||||
minionRegistry registry.MinionRegistry
|
||||
|
||||
minions []string
|
||||
random *rand.Rand
|
||||
storage map[string]apiserver.RESTStorage
|
||||
}
|
||||
@@ -46,37 +46,40 @@ func NewMemoryServer(minions []string, cloud cloudprovider.Interface) *Master {
|
||||
podRegistry: registry.MakeMemoryRegistry(),
|
||||
controllerRegistry: registry.MakeMemoryRegistry(),
|
||||
serviceRegistry: registry.MakeMemoryRegistry(),
|
||||
minionRegistry: registry.MakeMinionRegistry(minions),
|
||||
}
|
||||
m.init(minions, cloud)
|
||||
m.init(cloud)
|
||||
return m
|
||||
}
|
||||
|
||||
// Returns a new apiserver.
|
||||
func New(etcdServers, minions []string, cloud cloudprovider.Interface) *Master {
|
||||
etcdClient := etcd.NewClient(etcdServers)
|
||||
minionRegistry := registry.MakeMinionRegistry(minions)
|
||||
m := &Master{
|
||||
podRegistry: registry.MakeEtcdRegistry(etcdClient, minions),
|
||||
controllerRegistry: registry.MakeEtcdRegistry(etcdClient, minions),
|
||||
serviceRegistry: registry.MakeEtcdRegistry(etcdClient, minions),
|
||||
podRegistry: registry.MakeEtcdRegistry(etcdClient, minionRegistry),
|
||||
controllerRegistry: registry.MakeEtcdRegistry(etcdClient, minionRegistry),
|
||||
serviceRegistry: registry.MakeEtcdRegistry(etcdClient, minionRegistry),
|
||||
minionRegistry: minionRegistry,
|
||||
}
|
||||
m.init(minions, cloud)
|
||||
m.init(cloud)
|
||||
return m
|
||||
}
|
||||
|
||||
func (m *Master) init(minions []string, cloud cloudprovider.Interface) {
|
||||
func (m *Master) init(cloud cloudprovider.Interface) {
|
||||
containerInfo := &client.HTTPContainerInfo{
|
||||
Client: http.DefaultClient,
|
||||
Port: 10250,
|
||||
}
|
||||
|
||||
m.minions = minions
|
||||
m.random = rand.New(rand.NewSource(int64(time.Now().Nanosecond())))
|
||||
podCache := NewPodCache(containerInfo, m.podRegistry, time.Second*30)
|
||||
go podCache.Loop()
|
||||
m.storage = map[string]apiserver.RESTStorage{
|
||||
"pods": registry.MakePodRegistryStorage(m.podRegistry, containerInfo, registry.MakeFirstFitScheduler(m.minions, m.podRegistry, m.random), cloud, podCache),
|
||||
"pods": registry.MakePodRegistryStorage(m.podRegistry, containerInfo, registry.MakeFirstFitScheduler(m.minionRegistry, m.podRegistry, m.random), cloud, podCache),
|
||||
"replicationControllers": registry.MakeControllerRegistryStorage(m.controllerRegistry),
|
||||
"services": registry.MakeServiceRegistryStorage(m.serviceRegistry, cloud, m.minions),
|
||||
"services": registry.MakeServiceRegistryStorage(m.serviceRegistry, cloud, m.minionRegistry),
|
||||
"minions": registry.MakeMinionRegistryStorage(m.minionRegistry),
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user