cmd/e2e-test/setup/setup.go (52 lines of code) (raw):

package setup import ( "context" "fmt" "github.com/aws/aws-sdk-go-v2/config" "github.com/integrii/flaggy" "go.uber.org/zap" "github.com/aws/eks-hybrid/internal/cli" "github.com/aws/eks-hybrid/test/e2e" "github.com/aws/eks-hybrid/test/e2e/cluster" ) type Command struct { flaggy *flaggy.Subcommand configFilePath string } func NewCommand() *Command { cmd := Command{} setupCmd := flaggy.NewSubcommand("setup") setupCmd.Description = "Create the E2E test infrastructure" setupCmd.AdditionalHelpPrepend = "This command will run the setup infrastructure for running E2E tests" setupCmd.String(&cmd.configFilePath, "s", "setup-config-path", "Path to setup config file") cmd.flaggy = setupCmd return &cmd } func (c *Command) Flaggy() *flaggy.Subcommand { return c.flaggy } func (c *Command) Commands() []cli.Command { return []cli.Command{c} } func (s *Command) Run(log *zap.Logger, opts *cli.GlobalOptions) error { ctx := context.Background() testResources, err := cluster.LoadTestResources(s.configFilePath) if err != nil { return fmt.Errorf("failed to load test resources: %w", err) } aws, err := e2e.NewAWSConfig(ctx, config.WithRegion(testResources.ClusterRegion), // We use a custom AppId so the requests show that they were // made by this command in the user-agent config.WithAppID("nodeadm-e2e-test-setup-cmd"), ) if err != nil { return fmt.Errorf("reading AWS configuration: %w", err) } logger := e2e.NewLogger() create := cluster.NewCreate(aws, logger, testResources.EKS.Endpoint) logger.Info("Creating cluster infrastructure for E2E tests...") if err := create.Run(ctx, testResources); err != nil { return fmt.Errorf("creating E2E test infrastructure: %w", err) } fmt.Println("E2E test infrastructure setup completed successfully!") return nil }