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  }