@@ -66,7 +66,7 @@ func (s *multiPathBackendStack) Deploy(ctx context.Context, f *framework.Framewo
66
66
if err := s .allocateNamespaces (ctx , f ); err != nil {
67
67
return err
68
68
}
69
- s .resStackByNSID , s .ingByIngIDByNSID = s .buildResourceStacks (s .namespacedResourcesCFGs , s .nsByNSID )
69
+ s .resStackByNSID , s .ingByIngIDByNSID = s .buildResourceStacks (s .namespacedResourcesCFGs , s .nsByNSID , f )
70
70
if err := s .deployResourceStacks (ctx , f ); err != nil {
71
71
return err
72
72
}
@@ -193,21 +193,21 @@ func (s *multiPathBackendStack) cleanupResourceStacks(ctx context.Context, f *fr
193
193
return nil
194
194
}
195
195
196
- func (s * multiPathBackendStack ) buildResourceStacks (namespacedResourcesCFGs map [string ]NamespacedResourcesConfig , nsByNSID map [string ]* corev1.Namespace ) (map [string ]* resourceStack , map [string ]map [string ]* networking.Ingress ) {
196
+ func (s * multiPathBackendStack ) buildResourceStacks (namespacedResourcesCFGs map [string ]NamespacedResourcesConfig , nsByNSID map [string ]* corev1.Namespace , f * framework. Framework ) (map [string ]* resourceStack , map [string ]map [string ]* networking.Ingress ) {
197
197
resStackByNSID := make (map [string ]* resourceStack , len (namespacedResourcesCFGs ))
198
198
ingByIngIDByNSID := make (map [string ]map [string ]* networking.Ingress , len (namespacedResourcesCFGs ))
199
199
for nsID , resCFG := range namespacedResourcesCFGs {
200
200
ns := nsByNSID [nsID ]
201
- resStack , ingByIngID := s .buildResourceStack (ns , resCFG )
201
+ resStack , ingByIngID := s .buildResourceStack (ns , resCFG , f )
202
202
resStackByNSID [nsID ] = resStack
203
203
ingByIngIDByNSID [nsID ] = ingByIngID
204
204
}
205
205
return resStackByNSID , ingByIngIDByNSID
206
206
}
207
207
208
- func (s * multiPathBackendStack ) buildResourceStack (ns * corev1.Namespace , resourcesCFG NamespacedResourcesConfig ) (* resourceStack , map [string ]* networking.Ingress ) {
208
+ func (s * multiPathBackendStack ) buildResourceStack (ns * corev1.Namespace , resourcesCFG NamespacedResourcesConfig , f * framework. Framework ) (* resourceStack , map [string ]* networking.Ingress ) {
209
209
dpByBackendID , svcByBackendID := s .buildBackendResources (ns , resourcesCFG .BackendCFGs )
210
- ingByIngID := s .buildIngressResources (ns , resourcesCFG .IngCFGs , svcByBackendID )
210
+ ingByIngID := s .buildIngressResources (ns , resourcesCFG .IngCFGs , svcByBackendID , f )
211
211
212
212
dps := make ([]* appsv1.Deployment , 0 , len (dpByBackendID ))
213
213
for _ , dp := range dpByBackendID {
@@ -224,24 +224,28 @@ func (s *multiPathBackendStack) buildResourceStack(ns *corev1.Namespace, resourc
224
224
return NewResourceStack (dps , svcs , ings ), ingByIngID
225
225
}
226
226
227
- func (s * multiPathBackendStack ) buildIngressResources (ns * corev1.Namespace , ingCFGs map [string ]MultiPathIngressConfig , svcByBackendID map [string ]* corev1.Service ) map [string ]* networking.Ingress {
227
+ func (s * multiPathBackendStack ) buildIngressResources (ns * corev1.Namespace , ingCFGs map [string ]MultiPathIngressConfig , svcByBackendID map [string ]* corev1.Service , f * framework. Framework ) map [string ]* networking.Ingress {
228
228
ingByIngID := make (map [string ]* networking.Ingress , len (ingCFGs ))
229
229
for ingID , ingCFG := range ingCFGs {
230
- ing := s .buildIngressResource (ns , ingID , ingCFG , svcByBackendID )
230
+ ing := s .buildIngressResource (ns , ingID , ingCFG , svcByBackendID , f )
231
231
ingByIngID [ingID ] = ing
232
232
}
233
233
return ingByIngID
234
234
}
235
235
236
- func (s * multiPathBackendStack ) buildIngressResource (ns * corev1.Namespace , ingID string , ingCFG MultiPathIngressConfig , svcByBackendID map [string ]* corev1.Service ) * networking.Ingress {
236
+ func (s * multiPathBackendStack ) buildIngressResource (ns * corev1.Namespace , ingID string , ingCFG MultiPathIngressConfig , svcByBackendID map [string ]* corev1.Service , f * framework.Framework ) * networking.Ingress {
237
+ annotations := map [string ]string {
238
+ "kubernetes.io/ingress.class" : "alb" ,
239
+ "alb.ingress.kubernetes.io/scheme" : "internet-facing" ,
240
+ }
241
+ if f .Options .IPFamily == "IPv6" {
242
+ annotations ["alb.ingress.kubernetes.io/ip-address-type" ] = "dualstack"
243
+ }
237
244
ing := & networking.Ingress {
238
245
ObjectMeta : metav1.ObjectMeta {
239
- Namespace : ns .Name ,
240
- Name : ingID ,
241
- Annotations : map [string ]string {
242
- "kubernetes.io/ingress.class" : "alb" ,
243
- "alb.ingress.kubernetes.io/scheme" : "internet-facing" ,
244
- },
246
+ Namespace : ns .Name ,
247
+ Name : ingID ,
248
+ Annotations : annotations ,
245
249
},
246
250
Spec : networking.IngressSpec {
247
251
Rules : []networking.IngressRule {
0 commit comments