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  }