Skip to content

Commit 3c32b39

Browse files
committed
more tests for RHELAI we really need the cloud-importer
Signed-off-by: Adrian Riobo <ariobolo@redhat.com>
1 parent d41515f commit 3c32b39

7 files changed

Lines changed: 468 additions & 23 deletions

File tree

cmd/mapt/cmd/aws/aws.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ func GetCmd() *cobra.Command {
3434
hosts.GetMacCmd(),
3535
hosts.GetWindowsCmd(),
3636
hosts.GetRHELCmd(),
37+
hosts.GetRHELAICmd(),
3738
hosts.GetFedoraCmd(),
3839
services.GetMacPoolCmd(),
3940
services.GetOpenshiftSNCCmd(),

cmd/mapt/cmd/aws/hosts/rhelai.go

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
package hosts
2+
3+
import (
4+
params "github.com/redhat-developer/mapt/cmd/mapt/cmd/constants"
5+
maptContext "github.com/redhat-developer/mapt/pkg/manager/context"
6+
rhelai "github.com/redhat-developer/mapt/pkg/provider/aws/action/rhel-ai"
7+
"github.com/redhat-developer/mapt/pkg/util/logging"
8+
"github.com/spf13/cobra"
9+
"github.com/spf13/pflag"
10+
"github.com/spf13/viper"
11+
)
12+
13+
const (
14+
cmdRHELAI = "rhel-ai"
15+
cmdRHELAIDesc = "manage rhel ai host"
16+
)
17+
18+
func GetRHELAICmd() *cobra.Command {
19+
c := &cobra.Command{
20+
Use: cmdRHELAI,
21+
Short: cmdRHELAIDesc,
22+
RunE: func(cmd *cobra.Command, args []string) error {
23+
if err := viper.BindPFlags(cmd.Flags()); err != nil {
24+
return err
25+
}
26+
return nil
27+
},
28+
}
29+
30+
flagSet := pflag.NewFlagSet(cmdRHELAI, pflag.ExitOnError)
31+
params.AddCommonFlags(flagSet)
32+
c.PersistentFlags().AddFlagSet(flagSet)
33+
34+
c.AddCommand(getRHELAICreate(), getRHELAIDestroy())
35+
return c
36+
}
37+
38+
func getRHELAICreate() *cobra.Command {
39+
c := &cobra.Command{
40+
Use: params.CreateCmdName,
41+
Short: params.CreateCmdName,
42+
RunE: func(cmd *cobra.Command, args []string) error {
43+
if err := viper.BindPFlags(cmd.Flags()); err != nil {
44+
return err
45+
}
46+
47+
ctx := &maptContext.ContextArgs{
48+
ProjectName: viper.GetString(params.ProjectName),
49+
BackedURL: viper.GetString(params.BackedURL),
50+
ResultsOutput: viper.GetString(params.ConnectionDetailsOutput),
51+
Debug: viper.IsSet(params.Debug),
52+
DebugLevel: viper.GetUint(params.DebugLevel),
53+
Tags: viper.GetStringMapString(params.Tags),
54+
}
55+
56+
// Run create
57+
if err := rhelai.Create(
58+
ctx,
59+
&rhelai.Request{
60+
Prefix: "main",
61+
SubsUsername: viper.GetString(params.SubsUsername),
62+
SubsUserpass: viper.GetString(params.SubsUserpass),
63+
Timeout: viper.GetString(params.Timeout),
64+
SetupGHActionsRunner: viper.IsSet(params.InstallGHActionsRunner),
65+
}); err != nil {
66+
logging.Error(err)
67+
}
68+
return nil
69+
},
70+
}
71+
flagSet := pflag.NewFlagSet(params.CreateCmdName, pflag.ExitOnError)
72+
flagSet.StringP(params.ConnectionDetailsOutput, "", "", params.ConnectionDetailsOutputDesc)
73+
flagSet.StringToStringP(params.Tags, "", nil, params.TagsDesc)
74+
75+
flagSet.StringP(params.SubsUsername, "", "", params.SubsUsernameDesc)
76+
flagSet.StringP(params.SubsUserpass, "", "", params.SubsUserpassDesc)
77+
78+
flagSet.StringP(params.Timeout, "", "", params.TimeoutDesc)
79+
80+
// flagSet.AddFlagSet(params.GetGHActionsFlagset())
81+
// params.AddCirrusFlags(flagSet)
82+
// flagSet.AddFlagSet(params.GetCpusAndMemoryFlagset())
83+
c.PersistentFlags().AddFlagSet(flagSet)
84+
return c
85+
}
86+
87+
func getRHELAIDestroy() *cobra.Command {
88+
c := &cobra.Command{
89+
Use: params.DestroyCmdName,
90+
Short: params.DestroyCmdName,
91+
RunE: func(cmd *cobra.Command, args []string) error {
92+
if err := viper.BindPFlags(cmd.Flags()); err != nil {
93+
return err
94+
}
95+
96+
if err := rhelai.Destroy(&maptContext.ContextArgs{
97+
ProjectName: viper.GetString(params.ProjectName),
98+
BackedURL: viper.GetString(params.BackedURL),
99+
Debug: viper.IsSet(params.Debug),
100+
DebugLevel: viper.GetUint(params.DebugLevel),
101+
Serverless: viper.IsSet(params.Serverless),
102+
}); err != nil {
103+
logging.Error(err)
104+
}
105+
return nil
106+
},
107+
}
108+
flagSet := pflag.NewFlagSet(params.DestroyCmdName, pflag.ExitOnError)
109+
flagSet.Bool(params.Serverless, false, params.ServerlessDesc)
110+
c.PersistentFlags().AddFlagSet(flagSet)
111+
return c
112+
}

oci/Containerfile

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
<<<<<<< HEAD
2+
=======
3+
# Moved to Fedora 41 and install go tools until ubi9 go tools support go 1.23
4+
FROM quay.io/fedora/fedora@sha256:77326d310d7df97020509f2015525d2e1c30761929d30f16e8462892d69112ad as builder
5+
RUN dnf install -y make go
6+
>>>>>>> ff9ffbcd (more tests for RHELAI we really need the cloud-importer)
17

28
FROM registry.access.redhat.com/ubi9/go-toolset@sha256:d4bcb27c15c76c727742a78173ba02a56d9acc695ecc2603a0dc0fc745a75685 as builder
39
ARG TARGETARCH
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package rhelai
2+
3+
import (
4+
"github.com/aws/amazon-ec2-instance-selector/v3/pkg/bytequantity"
5+
"github.com/aws/amazon-ec2-instance-selector/v3/pkg/selector"
6+
"github.com/redhat-developer/mapt/pkg/provider/util/instancetypes"
7+
)
8+
9+
var (
10+
stackName = "stackRHELAIBaremetal"
11+
awsRHELDedicatedID = "araid"
12+
13+
diskSize int = 2000
14+
15+
amiProductDescription = "Red Hat Enterprise Linux"
16+
amiName = "rhel-ai-nvidia-aws-1.3.2"
17+
amiOwnerSelf = "self"
18+
amiArch = "x86_64"
19+
amiUserDefault = "ec2-user"
20+
21+
instanceSpecs = instancetypes.AwsInstanceRequest{
22+
CPUsRange: &selector.Int32RangeFilter{
23+
LowerBound: 32,
24+
UpperBound: 192,
25+
},
26+
MemoryRange: &selector.ByteQuantityRangeFilter{
27+
LowerBound: bytequantity.FromGiB(uint64(192)),
28+
UpperBound: bytequantity.FromTiB(uint64(4)),
29+
},
30+
Arch: instancetypes.Amd64,
31+
GPUs: 8,
32+
GPUManufacturer: "NVIDIA",
33+
// GPUModel: "A100",
34+
// GPUModel: "H100",
35+
GPUModel: "L40S",
36+
}
37+
38+
outputHost = "ardHost"
39+
outputUsername = "ardUsername"
40+
outputUserPrivateKey = "ardPrivatekey"
41+
)
42+
43+
// NVIDIA A100 X2
44+
// [2] NVIDIA A100 X4
45+
// [3] NVIDIA A100 X8
46+
// [4] NVIDIA H100 X2
47+
// [5] NVIDIA H100 X4
48+
// [6] NVIDIA H100 X8
49+
// [7] NVIDIA L4 X8
50+
// [8] NVIDIA L40S X4
51+
// [9] NVIDIA L40S X8

0 commit comments

Comments
 (0)