github.com/IBM-Cloud/bluemix-go@v0.0.0-20240423071914-9e96525baef4/examples/container/alb/CreateALB/main.go (about)

     1  package main
     2  
     3  import (
     4  	"flag"
     5  	"fmt"
     6  	"log"
     7  	"os"
     8  	"time"
     9  
    10  	"github.com/IBM-Cloud/bluemix-go/session"
    11  
    12  	v1 "github.com/IBM-Cloud/bluemix-go/api/container/containerv1"
    13  	"github.com/IBM-Cloud/bluemix-go/trace"
    14  )
    15  
    16  func main() {
    17  
    18  	var enable bool
    19  	flag.BoolVar(&enable, "enable", false, "enable alb")
    20  
    21  	var clusterID string //mandatory
    22  	flag.StringVar(&clusterID, "clusterNameOrID", "", "cluster name or ID - mandatory")
    23  
    24  	var albtype string //mandatory
    25  	flag.StringVar(&albtype, "type", "", "type of alb - mandatory")
    26  
    27  	var vlanID string //mandatory
    28  	flag.StringVar(&vlanID, "vlanID", "", "vlanID of alb - mandatory")
    29  
    30  	var zone string //mandatory
    31  	flag.StringVar(&zone, "zone", "", "zone of alb - mandatory")
    32  
    33  	var region string //mandatory
    34  	flag.StringVar(&region, "region", "us-south", "region of cluster - mandatory")
    35  
    36  	flag.Parse()
    37  
    38  	trace.Logger = trace.NewLogger("true")
    39  	if region == "" || albtype == "" || clusterID == "" || vlanID == "" || zone == "" {
    40  		fmt.Println("region: ", region)
    41  		fmt.Println("albtype: ", albtype)
    42  		fmt.Println("clusterID: ", clusterID)
    43  		fmt.Println("vlanID: ", vlanID)
    44  		fmt.Println("zone: ", zone)
    45  		flag.Usage()
    46  		os.Exit(1)
    47  	}
    48  
    49  	sess, err := session.New()
    50  	if err != nil {
    51  		log.Fatal(err)
    52  	}
    53  
    54  	albClient, err := v1.New(sess)
    55  	if err != nil {
    56  		log.Fatal(err)
    57  	}
    58  	albAPI := albClient.Albs()
    59  	target := v1.ClusterTargetHeader{
    60  		Region: region,
    61  	}
    62  
    63  	params := v1.CreateALB{
    64  		Zone: zone, VlanID: vlanID, Type: albtype, EnableByDefault: enable,
    65  	}
    66  
    67  	albResp, err := albAPI.CreateALB(params, clusterID, target)
    68  	if err != nil {
    69  		log.Fatal(err)
    70  	}
    71  
    72  	time.Sleep(10 * time.Second)
    73  
    74  	alb, err := albAPI.GetALB(albResp.Alb, target)
    75  	if err != nil {
    76  		log.Fatal(err)
    77  	}
    78  
    79  	fmt.Println("Created ALB: ", alb)
    80  
    81  }