github.com/jingruilea/kubeedge@v1.2.0-beta.0.0.20200410162146-4bb8902b3879/cloud/pkg/edgecontroller/edgecontroller.go (about) 1 package edgecontroller 2 3 import ( 4 "os" 5 6 "k8s.io/klog" 7 8 "github.com/kubeedge/beehive/pkg/core" 9 "github.com/kubeedge/kubeedge/cloud/pkg/edgecontroller/config" 10 "github.com/kubeedge/kubeedge/cloud/pkg/edgecontroller/constants" 11 "github.com/kubeedge/kubeedge/cloud/pkg/edgecontroller/controller" 12 "github.com/kubeedge/kubeedge/pkg/apis/componentconfig/cloudcore/v1alpha1" 13 ) 14 15 // EdgeController use beehive context message layer 16 type EdgeController struct { 17 enable bool 18 } 19 20 func newEdgeController(enable bool) *EdgeController { 21 return &EdgeController{ 22 enable: enable, 23 } 24 } 25 26 func Register(ec *v1alpha1.EdgeController, kubeAPIConfig *v1alpha1.KubeAPIConfig, nodeName string, edgesite bool) { 27 // TODO move module config into EdgeController struct @kadisi 28 config.InitConfigure(ec, kubeAPIConfig, nodeName, edgesite) 29 core.Register(newEdgeController(ec.Enable)) 30 } 31 32 // Name of controller 33 func (ec *EdgeController) Name() string { 34 return constants.EdgeControllerModuleName 35 } 36 37 // Group of controller 38 func (ec *EdgeController) Group() string { 39 return constants.EdgeControllerModuleName 40 } 41 42 // Enable indicates whether enable this module 43 func (ec *EdgeController) Enable() bool { 44 return ec.enable 45 } 46 47 // Start controller 48 func (ec *EdgeController) Start() { 49 upstream, err := controller.NewUpstreamController() 50 if err != nil { 51 klog.Errorf("new upstream controller failed with error: %s", err) 52 os.Exit(1) 53 } 54 upstream.Start() 55 56 downstream, err := controller.NewDownstreamController() 57 if err != nil { 58 klog.Warningf("new downstream controller failed with error: %s", err) 59 os.Exit(1) 60 } 61 downstream.Start() 62 }