From 4ae0ab98e8d51412d70e06a342b0670bb037fc56 Mon Sep 17 00:00:00 2001 From: Soam Vasani Date: Fri, 9 Dec 2016 23:43:27 -0800 Subject: [PATCH] Add kubewatcher to fission-bundle --- fission-bundle/main.go | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/fission-bundle/main.go b/fission-bundle/main.go index d8c69fd9..59003a2b 100644 --- a/fission-bundle/main.go +++ b/fission-bundle/main.go @@ -6,6 +6,7 @@ import ( "github.com/docopt/docopt-go" "github.com/platform9/fission/controller" + "github.com/platform9/fission/kubewatcher" "github.com/platform9/fission/poolmgr" "github.com/platform9/fission/router" ) @@ -19,11 +20,7 @@ func runController(port int, etcdUrl string, filepath string) { log.Fatalf("Error: %v", err) } - api := &controller.API{ - FunctionStore: controller.FunctionStore{ResourceStore: *rs}, - HTTPTriggerStore: controller.HTTPTriggerStore{ResourceStore: *rs}, - EnvironmentStore: controller.EnvironmentStore{ResourceStore: *rs}, - } + api := controller.MakeAPI(rs) api.Serve(port) log.Fatalf("Error: Controller exited.") } @@ -40,6 +37,13 @@ func runPoolmgr(port int, controllerUrl string, namespace string) { } } +func runKubeWatcher(controllerUrl, routerUrl string) { + err := kubewatcher.Start(controllerUrl, routerUrl) + if err != nil { + log.Fatalf("Error starting kubewatcher: %v", err) + } +} + func getPort(portArg interface{}) int { portArgStr := portArg.(string) port, err := strconv.Atoi(portArgStr) @@ -72,12 +76,14 @@ Usage: fission-bundle --controllerPort= [--etcdUrl=] --filepath= fission-bundle --routerPort= [--controllerUrl= --poolmgrUrl=] fission-bundle --poolmgrPort= [--controllerUrl=] + fission-bundle --kubewatcher [--controllerUrl= --routerUrl=] Options: --controllerPort= Port that the controller should listen on. --routerPort= Port that the router should listen on. --poolmgrPort= Port that the poolmgr should listen on. --controllerUrl= Controller URL. Not required if --controllerPort is specified. - --poolmgrUrl= Controller URL. Not required if --poolmgrPort is specified. + --poolmgrUrl= Poolmgr URL. Not required if --poolmgrPort is specified. + --routerUrl= Router URL. --etcdUrl= Etcd URL. --filepath= Directory to store functions in. --namespace= Kubernetes namespace in which to run function containers. Defaults to 'fission-function'. @@ -92,6 +98,7 @@ Options: controllerUrl := getStringArgWithDefault(arguments["--controllerUrl"], "http://controller.fission") etcdUrl := getStringArgWithDefault(arguments["--etcdUrl"], "http://etcd:2379") poolmgrUrl := getStringArgWithDefault(arguments["--poolmgrUrl"], "http://poolmgr.fission") + routerUrl := getStringArgWithDefault(arguments["--routerUrl"], "http://router.fission") if arguments["--controllerPort"] != nil { port := getPort(arguments["--controllerPort"]) @@ -108,5 +115,9 @@ Options: runPoolmgr(port, controllerUrl, namespace) } + if arguments["--kubewatcher"] != nil { + runKubeWatcher(controllerUrl, routerUrl) + } + select {} }