Download your service account credentials file from Google Cloud and save it as googlecloudinfo.json
in your HOME/.gocloud directory.
You can also set the credentials as environment variables:
export PrivateKey = "xxxxxxxxxxxx"
export Type = "xxxxxxxxxxxx"
export ProjectID = "xxxxxxxxxxxx"
export PrivateKeyID = "xxxxxxxxxxxx"
export ClientEmail = "xxxxxxxxxxxx"
export ClientID = "xxxxxxxxxxxx"
export AuthURI = "xxxxxxxxxxxx"
export TokenURI = "xxxxxxxxxxxx"
export AuthProviderX509CertURL = "xxxxxxxxxxxx"
export ClientX509CertURL = "xxxxxxxxxxxx"
import "github.com/cloudlibz/gocloud/gocloud"
googlecloud, _ := gocloud.CloudProvider(gocloud.Googleprovider)
creatloadbalancer := map[string]interface{}{
"Project": "sheltermap-1493101612061",
"Name" : "google-loadbalancer",
"Region": "us-central1",
"Instances": []string{"https://www.googleapis.com/compute/v1/projects/sheltermap-1493101612061/zones/us-central1-b/instances/instance-1"},
}
resp, err := googlecloud.CreateLoadBalancer(creatloadbalancer)
response := resp.(map[string]interface{})
fmt.Println(response["body"])
listloadbalancer := map[string]string{
"Project": "sheltermap-1493101612061",
"Region": "us-central1",
}
resp, err := googlecloud.ListLoadBalancer(listloadbalancer)
response := resp.(map[string]interface{})
fmt.Println(response["body"])
attachnodewithloadbalancer := map[string]interface{}{
"Project": "sheltermap-1493101612061",
"Region": "us-central1",
"TargetPool": "google-loadbalancer",
"Instances": []string{"https://www.googleapis.com/compute/v1/projects/sheltermap-1493101612061/zones/us-central1-b/instances/instance-2"},
}
resp, err := googlecloud.AttachNodeWithLoadBalancer(attachnodewithloadbalancer)
response := resp.(map[string]interface{})
fmt.Println(response["body"])
detachnodewithloadbalancer := map[string]interface{}{
"Project": "sheltermap-1493101612061",
"Region": "us-central1",
"TargetPool": "google-loadbalancer",
"Instances": []string{"https://www.googleapis.com/compute/v1/projects/sheltermap-1493101612061/zones/us-central1-b/instances/instance-2"},
}
resp, err := googlecloud.DetachNodeWithLoadBalancer(detachnodewithloadbalancer)
response := resp.(map[string]interface{})
fmt.Println(response["body"])
deleteloadbalancer := map[string]string{
"Project": "sheltermap-1493101612061",
"Region": "us-central1",
"TargetPool": "google-loadbalancer",
}
resp, err := googlecloud.DeleteLoadBalancer(deleteloadbalancer)
response := resp.(map[string]interface{})
fmt.Println(response["body"])