Initial k8s support in libplayground (#216)

* Initial k8s support in libplayground

* Make tasks never give up + custom event for k8s cluster status
This commit is contained in:
Marcos Nils
2017-11-16 18:23:13 -03:00
committed by GitHub
parent dcb2bc7500
commit 3481442768
24 changed files with 1006 additions and 58 deletions

26
api.go
View File

@@ -10,6 +10,7 @@ import (
"github.com/play-with-docker/play-with-docker/event"
"github.com/play-with-docker/play-with-docker/handlers"
"github.com/play-with-docker/play-with-docker/id"
"github.com/play-with-docker/play-with-docker/k8s"
"github.com/play-with-docker/play-with-docker/provisioner"
"github.com/play-with-docker/play-with-docker/pwd"
"github.com/play-with-docker/play-with-docker/pwd/types"
@@ -23,18 +24,21 @@ func main() {
e := initEvent()
s := initStorage()
f := initFactory(s)
df := initDockerFactory(s)
kf := initK8sFactory(s)
ipf := provisioner.NewInstanceProvisionerFactory(provisioner.NewWindowsASG(f, s), provisioner.NewDinD(id.XIDGenerator{}, f, s))
sp := provisioner.NewOverlaySessionProvisioner(f)
ipf := provisioner.NewInstanceProvisionerFactory(provisioner.NewWindowsASG(df, s), provisioner.NewDinD(id.XIDGenerator{}, df, s))
sp := provisioner.NewOverlaySessionProvisioner(df)
core := pwd.NewPWD(f, e, s, sp, ipf)
core := pwd.NewPWD(df, e, s, sp, ipf)
tasks := []scheduler.Task{
task.NewCheckPorts(e, f),
task.NewCheckSwarmPorts(e, f),
task.NewCheckSwarmStatus(e, f),
task.NewCollectStats(e, f, s),
task.NewCheckPorts(e, df),
task.NewCheckSwarmPorts(e, df),
task.NewCheckSwarmStatus(e, df),
task.NewCollectStats(e, df, s),
task.NewCheckK8sClusterStatus(e, kf),
task.NewCheckK8sClusterExposedPorts(e, kf),
}
sch, err := scheduler.NewScheduler(tasks, s, e, core)
if err != nil {
@@ -69,6 +73,10 @@ func initEvent() event.EventApi {
return event.NewLocalBroker()
}
func initFactory(s storage.StorageApi) docker.FactoryApi {
func initDockerFactory(s storage.StorageApi) docker.FactoryApi {
return docker.NewLocalCachedFactory(s)
}
func initK8sFactory(s storage.StorageApi) k8s.FactoryApi {
return k8s.NewLocalCachedFactory(s)
}