github.com/IBM-Cloud/bluemix-go@v0.0.0-20240423071914-9e96525baef4/examples/container/V2containers/CreateClusterV2/main.go (about) 1 package main 2 3 import ( 4 "flag" 5 "fmt" 6 "log" 7 8 bluemix "github.com/IBM-Cloud/bluemix-go" 9 "github.com/IBM-Cloud/bluemix-go/session" 10 11 v2 "github.com/IBM-Cloud/bluemix-go/api/container/containerv2" 12 13 "github.com/IBM-Cloud/bluemix-go/trace" 14 ) 15 16 func main() { 17 18 var KmsInstanceID string 19 flag.StringVar(&KmsInstanceID, "kmsid", "", "KmsInstanceID") 20 21 var WorkerVolumeCRKID string 22 flag.StringVar(&WorkerVolumeCRKID, "crkid", "", "WorkerVolumeCRKID") 23 24 var VpcID string 25 flag.StringVar(&VpcID, "vpcid", "", "VpcID") 26 27 var SubnetID string 28 flag.StringVar(&SubnetID, "subnetid", "", "SubnetID") 29 30 var Name string 31 flag.StringVar(&Name, "name", "bluemixV2Test", "Name") 32 33 var Zone string 34 flag.StringVar(&Zone, "zone", "us-south-1", "Zone") 35 36 var SecondaryStorageOption string 37 flag.StringVar(&SecondaryStorageOption, "secondarystorage", "", "SecondaryStorageOption") 38 39 flag.Parse() 40 fmt.Println("[FLAG]KmsInstanceID: ", KmsInstanceID) 41 fmt.Println("[FLAG]WorkerVolumeCRKID: ", WorkerVolumeCRKID) 42 fmt.Println("[FLAG]VpcID: ", VpcID) 43 fmt.Println("[FLAG]SubnetID: ", SubnetID) 44 fmt.Println("[FLAG]Name: ", Name) 45 fmt.Println("[FLAG]Zone: ", Zone) 46 47 c := new(bluemix.Config) 48 49 trace.Logger = trace.NewLogger("true") 50 51 var wve *v2.WorkerVolumeEncryption 52 if KmsInstanceID != "" && WorkerVolumeCRKID != "" { 53 wve = &v2.WorkerVolumeEncryption{ 54 KmsInstanceID: KmsInstanceID, 55 WorkerVolumeCRKID: WorkerVolumeCRKID, 56 } 57 } 58 59 var clusterInfo = v2.ClusterCreateRequest{ 60 DisablePublicServiceEndpoint: true, 61 Name: Name, 62 Provider: "vpc-gen2", 63 WorkerPools: v2.WorkerPoolConfig{ 64 CommonWorkerPoolConfig: v2.CommonWorkerPoolConfig{ 65 DiskEncryption: true, 66 Flavor: "bx2.4x16", 67 VpcID: VpcID, 68 WorkerCount: 1, 69 Zones: []v2.Zone{ 70 { 71 ID: Zone, 72 SubnetID: SubnetID, 73 }, 74 }, 75 WorkerVolumeEncryption: wve, 76 SecondaryStorageOption: SecondaryStorageOption, 77 }, 78 }, 79 } 80 81 sess, err := session.New(c) 82 if err != nil { 83 log.Fatal(err) 84 } 85 86 if err != nil { 87 log.Fatal(err) 88 } 89 90 target := v2.ClusterTargetHeader{} 91 92 clusterClient, err := v2.New(sess) 93 if err != nil { 94 log.Fatal(err) 95 } 96 clustersAPI := clusterClient.Clusters() 97 98 out, err := clustersAPI.Create(clusterInfo, target) 99 if err != nil { 100 log.Fatal(err) 101 } 102 fmt.Println("Cluster create request was successful") 103 fmt.Println("Response:", out) 104 }