github.com/IBM-Cloud/bluemix-go@v0.0.0-20240423071914-9e96525baef4/examples/container/V2containers/UpdateAlbV2/main.go (about) 1 package main 2 3 import ( 4 "flag" 5 "fmt" 6 "log" 7 "os" 8 "time" 9 10 bluemix "github.com/IBM-Cloud/bluemix-go" 11 v1 "github.com/IBM-Cloud/bluemix-go/api/container/containerv1" 12 "github.com/IBM-Cloud/bluemix-go/session" 13 "github.com/IBM-Cloud/bluemix-go/trace" 14 15 v2 "github.com/IBM-Cloud/bluemix-go/api/container/containerv2" 16 ) 17 18 func main() { 19 20 var clusterID, albID, albVersion string 21 flag.StringVar(&clusterID, "clusterNameOrID", "", "cluster name or ID") 22 flag.StringVar(&albID, "albID", "", "ALB ID") 23 flag.StringVar(&albVersion, "albVersion", "", "target ALB build version") 24 flag.Parse() 25 26 trace.Logger = trace.NewLogger("true") 27 28 if clusterID == "" || albID == "" || albVersion == "" { 29 flag.Usage() 30 os.Exit(1) 31 } 32 33 c := new(bluemix.Config) 34 35 sess, err := session.New(c) 36 if err != nil { 37 log.Fatal(err) 38 } 39 40 if err != nil { 41 log.Fatal(err) 42 } 43 44 updateReq := v2.UpdateALBReq{ 45 ClusterID: clusterID, 46 ALBBuild: albVersion, 47 ALBList: []string{ 48 albID, 49 }, 50 } 51 52 targetV2 := v2.ClusterTargetHeader{} 53 54 clusterClientV2, err := v2.New(sess) 55 if err != nil { 56 log.Fatal(err) 57 } 58 59 targetV1 := v1.ClusterTargetHeader{} 60 61 clusterClientV1, err := v1.New(sess) 62 if err != nil { 63 log.Fatal(err) 64 } 65 66 albAPIV2 := clusterClientV2.Albs() 67 albAPIV1 := clusterClientV1.Albs() 68 69 autoUpdateOff := false 70 albUpdatePolicy := v1.ALBUpdatePolicy{ 71 AutoUpdate: autoUpdateOff, 72 } 73 74 fmt.Println("turn off auto update") 75 updatePolicyErr := albAPIV1.ChangeALBUpdatePolicy(clusterID, albUpdatePolicy, targetV1) 76 if updatePolicyErr != nil { 77 log.Fatal(updatePolicyErr) 78 } 79 80 albConf, getErr := albAPIV2.GetAlb(albID, targetV2) 81 if err != nil { 82 log.Fatal(getErr) 83 } 84 fmt.Println("before update version: ", albConf.AlbBuild) 85 86 updateErr := albAPIV2.UpdateAlb(updateReq, targetV2) 87 fmt.Println("updateErr: ", updateErr) 88 89 fmt.Println("wait 60 sec...") 90 time.Sleep(60 * time.Second) 91 92 albConf, getErr = albAPIV2.GetAlb(albID, targetV2) 93 if err != nil { 94 log.Fatal(getErr) 95 } 96 fmt.Println("after update version: ", albConf.AlbBuild) 97 }