first-commit
This commit is contained in:
71
modules/k8s/cmd/controller-manager/app/server.go
Normal file
71
modules/k8s/cmd/controller-manager/app/server.go
Normal file
@@ -0,0 +1,71 @@
|
||||
package app
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
"k8s.io/apimachinery/pkg/util/errors"
|
||||
"k8s.io/apimachinery/pkg/util/runtime"
|
||||
cliflag "k8s.io/component-base/cli/flag"
|
||||
"k8s.io/component-base/term"
|
||||
"k8s.io/klog/v2"
|
||||
"sigs.k8s.io/controller-runtime/pkg/manager/signals"
|
||||
|
||||
"code.gitea.io/gitea/modules/k8s/cmd/controller-manager/app/options"
|
||||
"code.gitea.io/gitea/modules/k8s/controller"
|
||||
"code.gitea.io/gitea/modules/k8s/controller/application"
|
||||
"code.gitea.io/gitea/modules/k8s/controller/devcontainer"
|
||||
)
|
||||
|
||||
func init() {
|
||||
// 在初始化时注册所有控制器
|
||||
runtime.Must(controller.Register(&devcontainer.Controller{}))
|
||||
runtime.Must(controller.Register(&application.Controller{}))
|
||||
}
|
||||
|
||||
// NewControllerManagerCommand 创建一个启动 controller manager 的命令
|
||||
func NewControllerManagerCommand() *cobra.Command {
|
||||
s := options.NewControllerManagerOptions()
|
||||
|
||||
cmd := &cobra.Command{
|
||||
Use: "controller-manager",
|
||||
Long: `DevStar controller manager is a daemon that embeds the control loops shipped with DevStar.`,
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
if errs := s.Validate(); len(errs) != 0 {
|
||||
return errors.NewAggregate(errs)
|
||||
}
|
||||
|
||||
return Run(signals.SetupSignalHandler(), s)
|
||||
},
|
||||
}
|
||||
|
||||
fs := cmd.Flags()
|
||||
namedFlagSets := s.Flags()
|
||||
for _, f := range namedFlagSets.FlagSets {
|
||||
fs.AddFlagSet(f)
|
||||
}
|
||||
|
||||
usageFmt := "Usage:\n %s\n"
|
||||
cols, _, _ := term.TerminalSize(cmd.OutOrStdout())
|
||||
cmd.SetUsageFunc(func(cmd *cobra.Command) error {
|
||||
_, _ = fmt.Fprintf(cmd.OutOrStderr(), usageFmt, cmd.UseLine())
|
||||
cliflag.PrintSections(cmd.OutOrStderr(), namedFlagSets, cols)
|
||||
return nil
|
||||
})
|
||||
|
||||
return cmd
|
||||
}
|
||||
|
||||
// Run 启动控制器管理器
|
||||
func Run(ctx context.Context, s *options.ControllerManagerOptions) error {
|
||||
klog.InfoS("Starting DevStar controller manager")
|
||||
|
||||
cm, err := s.NewControllerManager()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// 启动控制器管理器
|
||||
return cm.Start(ctx)
|
||||
}
|
Reference in New Issue
Block a user