@@ -47,9 +47,13 @@ func (cc *Config) setDefaultAvailabilityZones(awsClient *aws.Client) error {
47
47
}
48
48
instanceTypesSlice := instanceTypes .Slice ()
49
49
50
- zones , err := awsClient .ListSupportedAvailabilityZones (instanceTypesSlice [0 ], instanceTypesSlice [1 :]... )
51
- if err != nil {
52
- // Try again without checking instance types
50
+ var zones strset.Set
51
+ var err error
52
+ if len (instanceTypesSlice ) > 0 {
53
+ zones , err = awsClient .ListSupportedAvailabilityZones (instanceTypesSlice [0 ], instanceTypesSlice [1 :]... )
54
+ }
55
+ if len (zones ) == 0 || err != nil {
56
+ // Try without checking instance types
53
57
zones , err = awsClient .ListAvailabilityZonesInRegion ()
54
58
if err != nil {
55
59
return nil // Let eksctl choose the availability zones
@@ -75,12 +79,6 @@ func (cc *Config) setDefaultAvailabilityZones(awsClient *aws.Client) error {
75
79
}
76
80
77
81
func (cc * Config ) validateUserAvailabilityZones (awsClient * aws.Client ) error {
78
- instanceTypes := strset .New ()
79
- for _ , ng := range cc .NodeGroups {
80
- instanceTypes .Add (ng .InstanceType )
81
- }
82
- instanceTypesSlice := instanceTypes .Slice ()
83
-
84
82
allZones , err := awsClient .ListAvailabilityZonesInRegion ()
85
83
if err != nil {
86
84
return nil // Skip validation
@@ -92,15 +90,23 @@ func (cc *Config) validateUserAvailabilityZones(awsClient *aws.Client) error {
92
90
}
93
91
}
94
92
95
- supportedZones , err := awsClient .ListSupportedAvailabilityZones (instanceTypesSlice [0 ], instanceTypesSlice [1 :]... )
96
- if err != nil {
97
- // Skip validation instance-based validation
98
- supportedZones = strset .Difference (allZones , _azBlacklist )
99
- }
93
+ if len (cc .NodeGroups ) > 0 {
94
+ instanceTypes := strset .New ()
95
+ for _ , ng := range cc .NodeGroups {
96
+ instanceTypes .Add (ng .InstanceType )
97
+ }
98
+ instanceTypesSlice := instanceTypes .Slice ()
100
99
101
- for _ , userZone := range cc .AvailabilityZones {
102
- if ! supportedZones .Has (userZone ) {
103
- return ErrorUnsupportedAvailabilityZone (userZone , instanceTypesSlice [0 ], instanceTypesSlice [1 :]... )
100
+ supportedZones , err := awsClient .ListSupportedAvailabilityZones (instanceTypesSlice [0 ], instanceTypesSlice [1 :]... )
101
+ if err != nil {
102
+ // Skip validation instance-based validation
103
+ supportedZones = strset .Difference (allZones , _azBlacklist )
104
+ }
105
+
106
+ for _ , userZone := range cc .AvailabilityZones {
107
+ if ! supportedZones .Has (userZone ) {
108
+ return ErrorUnsupportedAvailabilityZone (userZone , instanceTypesSlice [0 ], instanceTypesSlice [1 :]... )
109
+ }
104
110
}
105
111
}
106
112
0 commit comments