in cli/pkg/config/config.go [260:296]
func validateConfigRegion(projectID, region string) error {
ctx := context.Background()
c, err := compute.NewZonesRESTClient(ctx)
if err != nil {
return err
}
defer c.Close()
req := &computepb.ListZonesRequest{
Project: projectID,
}
it := c.List(ctx, req)
// Use zones to populate a map of valid regions for this project
regions := map[string]bool{}
for {
resp, err := it.Next()
if err == iterator.Done {
break
}
if err != nil {
return err
}
r := resp.GetRegion()
spl := strings.Split(r, "/")
if len(spl) < 2 {
return fmt.Errorf("error validating region (%s) - GCP region (%s) is invalid\n", region, r)
}
sanitizedRegion := spl[len(spl)-1]
regions[sanitizedRegion] = true
}
// check if Config.Region is in the map.
if _, ok := regions[region]; !ok {
return fmt.Errorf("config-wide region %s not found. Must be one of: %v\n", region, regions)
}
return nil
}