penguin/monok8s

k8s image for Mono Gateway Dev Kit

clitools/pkg/cmd/internal/internal.go

raw ยท 878 bytes

package internal

import (
	"github.com/spf13/cobra"
	"example.com/monok8s/pkg/bootstrap"
	"example.com/monok8s/pkg/config"
)

func NewCmdInternal() *cobra.Command {
	var configPath string
	cmd := &cobra.Command{Use: "internal", Hidden: true}
	cmd.AddCommand(&cobra.Command{
		Use:   "run-step STEP",
		Short: "Run one internal step for testing",
		Args:  cobra.ExactArgs(1),
		RunE: func(cmd *cobra.Command, args []string) error {
			path, err := (config.Loader{}).ResolvePath(configPath)
			if err != nil {
				return err
			}

			cfg, err := (config.Loader{}).Load(path)
			if err != nil {
				return err
			}

			err = bootstrap.NewRunner(cfg).RunNamedStep(cmd.Context(), args[0])
			if err != nil {
				return err
			}

			cmd.Println("OK")
			return nil
		},
	})
	cmd.PersistentFlags().StringVarP(&configPath, "config", "c", "", "path to MonoKSConfig yaml")
	return cmd
}