diff --git a/cli/internal/cmd/config.go b/cli/internal/cmd/config.go index 0bbf8a21e..3571a16aa 100644 --- a/cli/internal/cmd/config.go +++ b/cli/internal/cmd/config.go @@ -14,6 +14,7 @@ func NewConfigCmd() *cobra.Command { cmd.AddCommand(newConfigGenerateCmd()) cmd.AddCommand(newConfigFetchMeasurementsCmd()) + cmd.AddCommand(NewConfigInstanceTypesCmd()) return cmd } diff --git a/cli/internal/cmd/configgenerate.go b/cli/internal/cmd/configgenerate.go index 12de467ef..9b61c185a 100644 --- a/cli/internal/cmd/configgenerate.go +++ b/cli/internal/cmd/configgenerate.go @@ -63,6 +63,8 @@ func configGenerate(cmd *cobra.Command, fileHandler file.Handler, provider cloud } cmd.Println("Config file written to", flags.file) cmd.Println("Please fill in your CSP specific configuration before proceeding.") + cmd.Println("You can find the list of supported virtual machine types by executing:") + cmd.Println("\tconstellation config instance-types") return nil } diff --git a/cli/internal/cmd/configinstancetypes.go b/cli/internal/cmd/configinstancetypes.go new file mode 100644 index 000000000..5df92d3b5 --- /dev/null +++ b/cli/internal/cmd/configinstancetypes.go @@ -0,0 +1,35 @@ +package cmd + +import ( + "fmt" + "strings" + + "github.com/edgelesssys/constellation/internal/config/instancetypes" + "github.com/spf13/cobra" +) + +func NewConfigInstanceTypesCmd() *cobra.Command { + cmd := &cobra.Command{ + Use: "instance-types", + Short: "Prints the supported instance types for all cloud providers", + Long: "Prints the supported instance types for all cloud providers.", + Args: cobra.ArbitraryArgs, + Run: printSupportedInstanceTypes, + } + + return cmd +} + +func printSupportedInstanceTypes(cmd *cobra.Command, args []string) { + fmt.Printf(`Azure Confidential VM instance types: +%v +Azure Trusted Launch instance types: +%v +GCP instance types: +%v +`, formatInstanceTypes(instancetypes.AzureCVMInstanceTypes), formatInstanceTypes(instancetypes.AzureTrustedLaunchInstanceTypes), formatInstanceTypes(instancetypes.GCPInstanceTypes)) +} + +func formatInstanceTypes(types []string) string { + return "\t" + strings.Join(types, "\n\t") +}