github.com/IBM-Cloud/bluemix-go@v0.0.0-20240423071914-9e96525baef4/examples/container/custom_container_endpoint/main.go (about) 1 package main 2 3 import ( 4 "flag" 5 "fmt" 6 "log" 7 "os" 8 9 bluemix "github.com/IBM-Cloud/bluemix-go" 10 "github.com/IBM-Cloud/bluemix-go/helpers" 11 "github.com/IBM-Cloud/bluemix-go/session" 12 13 "github.com/IBM-Cloud/bluemix-go/api/account/accountv2" 14 v1 "github.com/IBM-Cloud/bluemix-go/api/container/containerv1" 15 "github.com/IBM-Cloud/bluemix-go/api/mccp/mccpv2" 16 ) 17 18 var clusterInfo = v1.ClusterCreateRequest{ 19 Name: "my_cluster", 20 Datacenter: "dal10", 21 MachineType: "u2c.2x4", 22 WorkerNum: 1, 23 PrivateVlan: "vlan", 24 PublicVlan: "vlan", 25 Isolation: "public", 26 } 27 28 func main() { 29 c := new(bluemix.Config) 30 flag.StringVar(&c.IBMID, "ibmid", "", "The IBM ID. You can also source it from env IBMID") 31 flag.StringVar(&c.IBMIDPassword, "ibmidpass", "", "The IBMID Password. You can also source it from IBMID_PASSWORD") 32 flag.StringVar(&c.Region, "region", "us-south", "The Bluemix region. You can source it from env IC_REGION or BLUEMIX_REGION") 33 flag.BoolVar(&c.Debug, "debug", false, "Show full trace if on") 34 35 var org string 36 flag.StringVar(&org, "org", "", "Bluemix Organization") 37 38 var space string 39 flag.StringVar(&space, "space", "", "Bluemix Space") 40 41 var endpoint string 42 flag.StringVar(&endpoint, "endpoint", "", "Cluster endpoint") 43 44 var skipDeletion bool 45 flag.BoolVar(&skipDeletion, "no-delete", false, "If provided will delete the resources created") 46 47 flag.Parse() 48 49 if org == "" || space == "" || endpoint == "" { 50 flag.Usage() 51 os.Exit(1) 52 } 53 54 sess, err := session.New(c) 55 if err != nil { 56 log.Fatal(err) 57 } 58 59 client, err := mccpv2.New(sess) 60 61 if err != nil { 62 log.Fatal(err) 63 } 64 65 region := sess.Config.Region 66 orgAPI := client.Organizations() 67 myorg, err := orgAPI.FindByName(org, region) 68 69 if err != nil { 70 log.Fatal(err) 71 } 72 73 spaceAPI := client.Spaces() 74 myspace, err := spaceAPI.FindByNameInOrg(myorg.GUID, space, region) 75 76 if err != nil { 77 log.Fatal(err) 78 } 79 80 accClient, err := accountv2.New(sess) 81 if err != nil { 82 log.Fatal(err) 83 } 84 accountAPI := accClient.Accounts() 85 myAccount, err := accountAPI.FindByOrg(myorg.GUID, c.Region) 86 if err != nil { 87 log.Fatal(err) 88 } 89 90 target := v1.ClusterTargetHeader{ 91 OrgID: myorg.GUID, 92 SpaceID: myspace.GUID, 93 AccountID: myAccount.GUID, 94 } 95 96 clusterClient, err := v1.New(sess.Copy(&bluemix.Config{ 97 Endpoint: helpers.String(endpoint), 98 })) 99 if err != nil { 100 log.Fatal(err) 101 } 102 clustersAPI := clusterClient.Clusters() 103 104 out, err := clustersAPI.Create(clusterInfo, target) 105 if err != nil { 106 log.Fatal(err) 107 } 108 fmt.Println(out) 109 }