mirror of https://github.com/k3s-io/k3s
Make integration test pass.
parent
29e9e13188
commit
0a1dfa366e
|
@ -38,6 +38,9 @@ import (
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/master"
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/master"
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/util"
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/util"
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/util/wait"
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/util/wait"
|
||||||
|
"github.com/GoogleCloudPlatform/kubernetes/plugin/pkg/scheduler"
|
||||||
|
"github.com/GoogleCloudPlatform/kubernetes/plugin/pkg/scheduler/factory"
|
||||||
|
|
||||||
"github.com/coreos/go-etcd/etcd"
|
"github.com/coreos/go-etcd/etcd"
|
||||||
"github.com/golang/glog"
|
"github.com/golang/glog"
|
||||||
)
|
)
|
||||||
|
@ -64,7 +67,7 @@ func (fakePodInfoGetter) GetPodInfo(host, podID string) (api.PodInfo, error) {
|
||||||
Port: 10251,
|
Port: 10251,
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
glog.Fatalf("Can't get info for: %v, %v", host, podID)
|
glog.Fatalf("Can't get info for: '%v', '%v'", host, podID)
|
||||||
}
|
}
|
||||||
return c.GetPodInfo("localhost", podID)
|
return c.GetPodInfo("localhost", podID)
|
||||||
}
|
}
|
||||||
|
@ -106,6 +109,9 @@ func startComponents(manifestURL string) (apiServerURL string) {
|
||||||
storage, codec := m.API_v1beta1()
|
storage, codec := m.API_v1beta1()
|
||||||
handler.delegate = apiserver.Handle(storage, codec, "/api/v1beta1")
|
handler.delegate = apiserver.Handle(storage, codec, "/api/v1beta1")
|
||||||
|
|
||||||
|
// Scheduler
|
||||||
|
scheduler.New((&factory.ConfigFactory{cl}).Create()).Run()
|
||||||
|
|
||||||
controllerManager := controller.NewReplicationManager(cl)
|
controllerManager := controller.NewReplicationManager(cl)
|
||||||
|
|
||||||
// Prove that controllerManager's watch works by making it not sync until after this
|
// Prove that controllerManager's watch works by making it not sync until after this
|
||||||
|
|
|
@ -135,7 +135,6 @@ func (r *Registry) setPodHostTo(podID, oldMachine, machine string) (finalPod *ap
|
||||||
}
|
}
|
||||||
|
|
||||||
// assignPod assigns the given pod to the given machine.
|
// assignPod assigns the given pod to the given machine.
|
||||||
// TODO: hook this up via apiserver, not by calling it from CreatePod().
|
|
||||||
func (r *Registry) assignPod(podID string, machine string) error {
|
func (r *Registry) assignPod(podID string, machine string) error {
|
||||||
finalPod, err := r.setPodHostTo(podID, "", machine)
|
finalPod, err := r.setPodHostTo(podID, "", machine)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -133,10 +133,11 @@ func (rs *RegistryStorage) Watch(label, field labels.Selector, resourceVersion u
|
||||||
pod := e.Object.(*api.Pod)
|
pod := e.Object.(*api.Pod)
|
||||||
fields := labels.Set{
|
fields := labels.Set{
|
||||||
"ID": pod.ID,
|
"ID": pod.ID,
|
||||||
"DesiredState.Status": string(pod.CurrentState.Status),
|
"DesiredState.Status": string(pod.DesiredState.Status),
|
||||||
"DesiredState.Host": pod.CurrentState.Host,
|
"DesiredState.Host": pod.DesiredState.Host,
|
||||||
}
|
}
|
||||||
return e, label.Matches(labels.Set(pod.Labels)) && field.Matches(fields)
|
passesFilter := label.Matches(labels.Set(pod.Labels)) && field.Matches(fields)
|
||||||
|
return e, passesFilter
|
||||||
}), nil
|
}), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -158,6 +159,10 @@ func (rs *RegistryStorage) Update(obj interface{}) (<-chan interface{}, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (rs *RegistryStorage) fillPodInfo(pod *api.Pod) {
|
func (rs *RegistryStorage) fillPodInfo(pod *api.Pod) {
|
||||||
|
pod.CurrentState.Host = pod.DesiredState.Host
|
||||||
|
if pod.CurrentState.Host == "" {
|
||||||
|
return
|
||||||
|
}
|
||||||
// Get cached info for the list currently.
|
// Get cached info for the list currently.
|
||||||
// TODO: Optionally use fresh info
|
// TODO: Optionally use fresh info
|
||||||
if rs.podCache != nil {
|
if rs.podCache != nil {
|
||||||
|
|
|
@ -477,6 +477,7 @@ func (w *etcdWatcher) sendResult(res *etcd.Response) {
|
||||||
var action watch.EventType
|
var action watch.EventType
|
||||||
var data []byte
|
var data []byte
|
||||||
var index uint64
|
var index uint64
|
||||||
|
glog.Infof("watching: got %v", res.Action)
|
||||||
switch res.Action {
|
switch res.Action {
|
||||||
case "create":
|
case "create":
|
||||||
if res.Node == nil {
|
if res.Node == nil {
|
||||||
|
|
|
@ -69,7 +69,14 @@ func (factory *ConfigFactory) Create() *scheduler.Config {
|
||||||
Algorithm: algo,
|
Algorithm: algo,
|
||||||
Binder: &binder{factory.Client},
|
Binder: &binder{factory.Client},
|
||||||
NextPod: func() *api.Pod {
|
NextPod: func() *api.Pod {
|
||||||
return podQueue.Pop().(*api.Pod)
|
pod := podQueue.Pop().(*api.Pod)
|
||||||
|
// TODO: Remove or reduce verbosity by sep 6th, 2014. Leave until then to
|
||||||
|
// make it easy to find scheduling problems.
|
||||||
|
glog.Infof("About to try and schedule pod %v\n"+
|
||||||
|
"\tknown minions: %v\n"+
|
||||||
|
"\tknown scheduled pods: %v\n",
|
||||||
|
pod.ID, minionCache.Contains(), podCache.Contains())
|
||||||
|
return pod
|
||||||
},
|
},
|
||||||
Error: factory.makeDefaultErrorFunc(podQueue),
|
Error: factory.makeDefaultErrorFunc(podQueue),
|
||||||
}
|
}
|
||||||
|
@ -193,5 +200,8 @@ type binder struct {
|
||||||
|
|
||||||
// Bind just does a POST binding RPC.
|
// Bind just does a POST binding RPC.
|
||||||
func (b *binder) Bind(binding *api.Binding) error {
|
func (b *binder) Bind(binding *api.Binding) error {
|
||||||
|
// TODO: Remove or reduce verbosity by sep 6th, 2014. Leave until then to
|
||||||
|
// make it easy to find scheduling problems.
|
||||||
|
glog.Infof("Attempting to bind %v to %v", binding.PodID, binding.Host)
|
||||||
return b.Post().Path("bindings").Body(binding).Do().Error()
|
return b.Post().Path("bindings").Body(binding).Do().Error()
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue