penguin/monok8s

k8s image for Mono Gateway Dev Kit

clitools/pkg/cmd/create/create.go

raw ยท 1440 bytes

package create

import (
	"fmt"
	"github.com/spf13/cobra"
	"k8s.io/cli-runtime/pkg/genericclioptions"

	render "example.com/monok8s/pkg/render"
)

func NewCmdCreate(flags *genericclioptions.ConfigFlags) *cobra.Command {
	cmd := &cobra.Command{Use: "create", Short: "Create starter resources"}
	cmd.AddCommand(
		&cobra.Command{
			Use:   "config",
			Short: "Print a MonoKSConfig template",
			RunE: func(cmd *cobra.Command, _ []string) error {
				out, err := render.RenderMonoKSConfig()
				if err != nil {
					return err
				}
				_, err = fmt.Fprint(cmd.OutOrStdout(), out)
				return err
			},
		},
		&cobra.Command{
			Use:   "osupgrade",
			Short: "Print an OSUpgrade template",
			RunE: func(cmd *cobra.Command, _ []string) error {
				ns, _, err := flags.ToRawKubeConfigLoader().Namespace()
				if err != nil {
					return err
				}

				out, err := render.RenderOSUpgrade(ns)
				if err != nil {
					return err
				}
				_, err = fmt.Fprint(cmd.OutOrStdout(), out)
				return err
			},
		},
		&cobra.Command{
			Use:   "controller",
			Short: "Print controller deployment template",
			RunE: func(cmd *cobra.Command, _ []string) error {
				ns, _, err := flags.ToRawKubeConfigLoader().Namespace()
				if err != nil {
					return err
				}

				out, err := render.RenderControllerDeployments(ns)
				if err != nil {
					return err
				}
				_, err = fmt.Fprint(cmd.OutOrStdout(), out)
				return err
			},
		},
	)
	return cmd
}