agent

package
v0.0.27 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 8, 2024 License: MIT Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var RootCmd = &cobra.Command{
	Use:   "agent",
	Short: "Agent.",
	Long:  `Sidecar agent for Galera that co-operates with mariadb-operator.`,
	Args:  cobra.NoArgs,
	Run: func(cmd *cobra.Command, args []string) {
		if err := log.SetupLoggerWithCommand(cmd); err != nil {
			fmt.Printf("error setting up logger: %v\n", err)
			os.Exit(1)
		}
		logger.Info("Starting agent")

		env, err := environment.GetPodEnv(context.Background())
		if err != nil {
			logger.Error(err, "Error getting environment variables")
			os.Exit(1)
		}
		fileManager, err := filemanager.NewFileManager(configDir, stateDir)
		if err != nil {
			logger.Error(err, "Error creating file manager")
			os.Exit(1)
		}
		state := state.NewState(stateDir)
		k8sClient, err := getK8sClient()
		if err != nil {
			logger.Error(err, "Error getting Kubernetes client")
			os.Exit(1)
		}

		mariadbKey := types.NamespacedName{
			Name:      env.MariadbName,
			Namespace: env.PodNamespace,
		}
		handlerLogger := logger.WithName("handler")
		handler := handler.NewHandler(
			mariadbKey,
			k8sClient,
			fileManager,
			state,
			&handlerLogger,
			handler.WithRecoveryTimeout(recoveryTimeout),
		)

		routerOpts := []router.Option{
			router.WithCompressLevel(compressLevel),
			router.WithRateLimit(rateLimitRequests, rateLimitDuration),
		}
		if kubernetesAuth && kubernetesTrustedName != "" && kubernetesTrustedNamespace != "" {
			routerOpts = append(routerOpts, router.WithKubernetesAuth(
				kubernetesAuth,
				&kubeauth.Trusted{
					ServiceAccountName:      kubernetesTrustedName,
					ServiceAccountNamespace: kubernetesTrustedNamespace,
				},
			))
		}
		router := router.NewRouter(
			handler,
			k8sClient,
			logger,
			routerOpts...,
		)

		serverLogger := logger.WithName("server")
		server := server.NewServer(
			addr,
			router,
			&serverLogger,
			server.WithGracefulShutdownTimeout(gracefulShutdownTimeout),
		)
		if err := server.Start(context.Background()); err != nil {
			logger.Error(err, "server error")
			os.Exit(1)
		}
	},
}

Functions

This section is empty.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL