diff --git a/pkg/asset/machines/aws/zones.go b/pkg/asset/machines/aws/zones.go index 50788f115f6..24b080e5943 100644 --- a/pkg/asset/machines/aws/zones.go +++ b/pkg/asset/machines/aws/zones.go @@ -8,8 +8,16 @@ import ( awsutil "github.com/openshift/installer/pkg/asset/installconfig/aws" ) +var cache map[string][]string + // AvailabilityZones retrieves a list of availability zones for the given region. func AvailabilityZones(region string) ([]string, error) { + if cache == nil { + cache = map[string][]string{} + } else if zones, ok := cache[region]; ok { + return zones, nil + } + ec2Client, err := ec2Client(region) if err != nil { return nil, err @@ -18,6 +26,7 @@ func AvailabilityZones(region string) ([]string, error) { if err != nil { return nil, fmt.Errorf("cannot fetch availability zones: %v", err) } + cache[region] = zones return zones, nil }