package nodeagent import ( kruntime "k8s.io/apimachinery/pkg/runtime" utilruntime "k8s.io/apimachinery/pkg/util/runtime" clientgoscheme "k8s.io/client-go/kubernetes/scheme" ctrl "sigs.k8s.io/controller-runtime" "edge-infra.dev/pkg/k8s/runtime/controller" v1ien "edge-infra.dev/pkg/sds/ien/k8s/apis/v1" ) // createControllerManager returns a new controller manager. func createControllerManager(o ...controller.Option) (ctrl.Manager, error) { log := ctrl.Log.WithName("setup") o = append(o, controller.WithMetricsAddress(":9080")) ctlCfg, opts := controller.ProcessOptions(o...) opts.Scheme = createScheme() mgr, err := ctrl.NewManager(ctlCfg, opts) if err != nil { log.Error(err, "unable to create manager") return nil, err } return mgr, nil } // createScheme creates a new Kubernetes schema and registers the built-in // Kubernetes resources along with the IENode and NodeFirewall resources. func createScheme() *kruntime.Scheme { scheme := kruntime.NewScheme() utilruntime.Must(clientgoscheme.AddToScheme(scheme)) utilruntime.Must(v1ien.AddToScheme(scheme)) return scheme }