github.com/IBM-Cloud/bluemix-go@v0.0.0-20240423071914-9e96525baef4/examples/container/V2containers/DedicatedHost/CreateCluster/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  	v2 "github.com/IBM-Cloud/bluemix-go/api/container/containerv2"
    10  	"github.com/IBM-Cloud/bluemix-go/session"
    11  	"github.com/IBM-Cloud/bluemix-go/trace"
    12  )
    13  
    14  func main() {
    15  	var VpcID string
    16  	flag.StringVar(&VpcID, "vpcid", "", "VpcID")
    17  	var SubnetID string
    18  	flag.StringVar(&SubnetID, "subnetid", "", "SubnetID")
    19  	var Name string
    20  	flag.StringVar(&Name, "name", "bluemixV2Test", "Name")
    21  	var Zone string
    22  	flag.StringVar(&Zone, "zone", "us-south-1", "Zone")
    23  	var HostPoolID string
    24  	flag.StringVar(&HostPoolID, "hostpoolid", "", "HostPoolID")
    25  	flag.Parse()
    26  	fmt.Println("[FLAG]VpcID: ", VpcID)
    27  	fmt.Println("[FLAG]SubnetID: ", SubnetID)
    28  	fmt.Println("[FLAG]Name: ", Name)
    29  	fmt.Println("[FLAG]Zone: ", Zone)
    30  	fmt.Println("[FLAG]HostPoolID: ", HostPoolID)
    31  	c := new(bluemix.Config)
    32  	trace.Logger = trace.NewLogger("true")
    33  	var clusterInfo = v2.ClusterCreateRequest{
    34  		DisablePublicServiceEndpoint: true,
    35  		Name:                         Name,
    36  		Provider:                     "vpc-gen2",
    37  		WorkerPools: v2.WorkerPoolConfig{
    38  			HostPoolID: HostPoolID,
    39  			CommonWorkerPoolConfig: v2.CommonWorkerPoolConfig{
    40  				DiskEncryption: false,
    41  				Flavor:         "bx2d.16x64",
    42  				VpcID:          VpcID,
    43  				WorkerCount:    1,
    44  				Zones: []v2.Zone{
    45  					{
    46  						ID:       Zone,
    47  						SubnetID: SubnetID,
    48  					},
    49  				},
    50  			},
    51  		},
    52  	}
    53  	sess, err := session.New(c)
    54  	if err != nil {
    55  		log.Fatal(err)
    56  	}
    57  	target := v2.ClusterTargetHeader{}
    58  	v2Client, err := v2.New(sess)
    59  	if err != nil {
    60  		log.Fatal(err)
    61  	}
    62  	clustersAPI := v2Client.Clusters()
    63  	out, err := clustersAPI.Create(clusterInfo, target)
    64  	if err != nil {
    65  		log.Fatal(err)
    66  	}
    67  	fmt.Println("out=", out)
    68  }