@@ -45,10 +45,6 @@ func Test_defaultSubnetsResolver_ResolveViaDiscovery(t *testing.T) {
45
45
{
46
46
input : & ec2sdk.DescribeSubnetsInput {
47
47
Filters : []* ec2sdk.Filter {
48
- {
49
- Name : awssdk .String ("tag:kubernetes.io/cluster/kube-cluster" ),
50
- Values : awssdk .StringSlice ([]string {"owned" , "shared" }),
51
- },
52
48
{
53
49
Name : awssdk .String ("tag:kubernetes.io/role/elb" ),
54
50
Values : awssdk .StringSlice ([]string {"" , "1" }),
@@ -102,10 +98,6 @@ func Test_defaultSubnetsResolver_ResolveViaDiscovery(t *testing.T) {
102
98
{
103
99
input : & ec2sdk.DescribeSubnetsInput {
104
100
Filters : []* ec2sdk.Filter {
105
- {
106
- Name : awssdk .String ("tag:kubernetes.io/cluster/kube-cluster" ),
107
- Values : awssdk .StringSlice ([]string {"owned" , "shared" }),
108
- },
109
101
{
110
102
Name : awssdk .String ("tag:kubernetes.io/role/internal-elb" ),
111
103
Values : awssdk .StringSlice ([]string {"" , "1" }),
@@ -159,10 +151,6 @@ func Test_defaultSubnetsResolver_ResolveViaDiscovery(t *testing.T) {
159
151
{
160
152
input : & ec2sdk.DescribeSubnetsInput {
161
153
Filters : []* ec2sdk.Filter {
162
- {
163
- Name : awssdk .String ("tag:kubernetes.io/cluster/kube-cluster" ),
164
- Values : awssdk .StringSlice ([]string {"owned" , "shared" }),
165
- },
166
154
{
167
155
Name : awssdk .String ("tag:kubernetes.io/role/internal-elb" ),
168
156
Values : awssdk .StringSlice ([]string {"" , "1" }),
@@ -194,10 +182,6 @@ func Test_defaultSubnetsResolver_ResolveViaDiscovery(t *testing.T) {
194
182
{
195
183
input : & ec2sdk.DescribeSubnetsInput {
196
184
Filters : []* ec2sdk.Filter {
197
- {
198
- Name : awssdk .String ("tag:kubernetes.io/cluster/kube-cluster" ),
199
- Values : awssdk .StringSlice ([]string {"owned" , "shared" }),
200
- },
201
185
{
202
186
Name : awssdk .String ("tag:kubernetes.io/role/internal-elb" ),
203
187
Values : awssdk .StringSlice ([]string {"" , "1" }),
@@ -241,10 +225,6 @@ func Test_defaultSubnetsResolver_ResolveViaDiscovery(t *testing.T) {
241
225
{
242
226
input : & ec2sdk.DescribeSubnetsInput {
243
227
Filters : []* ec2sdk.Filter {
244
- {
245
- Name : awssdk .String ("tag:kubernetes.io/cluster/kube-cluster" ),
246
- Values : awssdk .StringSlice ([]string {"owned" , "shared" }),
247
- },
248
228
{
249
229
Name : awssdk .String ("tag:kubernetes.io/role/internal-elb" ),
250
230
Values : awssdk .StringSlice ([]string {"" , "1" }),
@@ -282,10 +262,6 @@ func Test_defaultSubnetsResolver_ResolveViaDiscovery(t *testing.T) {
282
262
{
283
263
input : & ec2sdk.DescribeSubnetsInput {
284
264
Filters : []* ec2sdk.Filter {
285
- {
286
- Name : awssdk .String ("tag:kubernetes.io/cluster/kube-cluster" ),
287
- Values : awssdk .StringSlice ([]string {"owned" , "shared" }),
288
- },
289
265
{
290
266
Name : awssdk .String ("tag:kubernetes.io/role/internal-elb" ),
291
267
Values : awssdk .StringSlice ([]string {"" , "1" }),
@@ -349,10 +325,6 @@ func Test_defaultSubnetsResolver_ResolveViaDiscovery(t *testing.T) {
349
325
{
350
326
input : & ec2sdk.DescribeSubnetsInput {
351
327
Filters : []* ec2sdk.Filter {
352
- {
353
- Name : awssdk .String ("tag:kubernetes.io/cluster/kube-cluster" ),
354
- Values : awssdk .StringSlice ([]string {"owned" , "shared" }),
355
- },
356
328
{
357
329
Name : awssdk .String ("tag:kubernetes.io/role/internal-elb" ),
358
330
Values : awssdk .StringSlice ([]string {"" , "1" }),
@@ -396,10 +368,6 @@ func Test_defaultSubnetsResolver_ResolveViaDiscovery(t *testing.T) {
396
368
{
397
369
input : & ec2sdk.DescribeSubnetsInput {
398
370
Filters : []* ec2sdk.Filter {
399
- {
400
- Name : awssdk .String ("tag:kubernetes.io/cluster/kube-cluster" ),
401
- Values : awssdk .StringSlice ([]string {"owned" , "shared" }),
402
- },
403
371
{
404
372
Name : awssdk .String ("tag:kubernetes.io/role/internal-elb" ),
405
373
Values : awssdk .StringSlice ([]string {"" , "1" }),
@@ -422,6 +390,164 @@ func Test_defaultSubnetsResolver_ResolveViaDiscovery(t *testing.T) {
422
390
},
423
391
wantErr : errors .New ("some error" ),
424
392
},
393
+ {
394
+ name : "subnet with cluster tag gets precedence" ,
395
+ fields : fields {
396
+ vpcID : "vpc-1" ,
397
+ clusterName : "kube-cluster" ,
398
+ describeSubnetsAsListCalls : []describeSubnetsAsListCall {
399
+ {
400
+ input : & ec2sdk.DescribeSubnetsInput {
401
+ Filters : []* ec2sdk.Filter {
402
+ {
403
+ Name : awssdk .String ("tag:kubernetes.io/role/elb" ),
404
+ Values : awssdk .StringSlice ([]string {"" , "1" }),
405
+ },
406
+ {
407
+ Name : awssdk .String ("vpc-id" ),
408
+ Values : awssdk .StringSlice ([]string {"vpc-1" }),
409
+ },
410
+ },
411
+ },
412
+ output : []* ec2sdk.Subnet {
413
+ {
414
+ SubnetId : awssdk .String ("subnet-1" ),
415
+ AvailabilityZone : awssdk .String ("us-west-2b" ),
416
+ VpcId : awssdk .String ("vpc-1" ),
417
+ },
418
+ {
419
+ SubnetId : awssdk .String ("subnet-2" ),
420
+ AvailabilityZone : awssdk .String ("us-west-2b" ),
421
+ VpcId : awssdk .String ("vpc-1" ),
422
+ Tags : []* ec2sdk.Tag {
423
+ {
424
+ Key : awssdk .String ("kubernetes.io/cluster/kube-cluster" ),
425
+ Value : awssdk .String ("owned" ),
426
+ },
427
+ },
428
+ },
429
+ },
430
+ },
431
+ },
432
+ },
433
+ args : args {
434
+ opts : []SubnetsResolveOption {
435
+ WithSubnetsResolveLBType (elbv2model .LoadBalancerTypeNetwork ),
436
+ WithSubnetsResolveLBScheme (elbv2model .LoadBalancerSchemeInternetFacing ),
437
+ },
438
+ },
439
+ want : []* ec2sdk.Subnet {
440
+ {
441
+ SubnetId : awssdk .String ("subnet-2" ),
442
+ AvailabilityZone : awssdk .String ("us-west-2b" ),
443
+ VpcId : awssdk .String ("vpc-1" ),
444
+ Tags : []* ec2sdk.Tag {
445
+ {
446
+ Key : awssdk .String ("kubernetes.io/cluster/kube-cluster" ),
447
+ Value : awssdk .String ("owned" ),
448
+ },
449
+ },
450
+ },
451
+ },
452
+ },
453
+ {
454
+ name : "subnets tagged for some other clusters get ignored" ,
455
+ fields : fields {
456
+ vpcID : "vpc-1" ,
457
+ clusterName : "kube-cluster" ,
458
+ describeSubnetsAsListCalls : []describeSubnetsAsListCall {
459
+ {
460
+ input : & ec2sdk.DescribeSubnetsInput {
461
+ Filters : []* ec2sdk.Filter {
462
+ {
463
+ Name : awssdk .String ("tag:kubernetes.io/role/elb" ),
464
+ Values : awssdk .StringSlice ([]string {"" , "1" }),
465
+ },
466
+ {
467
+ Name : awssdk .String ("vpc-id" ),
468
+ Values : awssdk .StringSlice ([]string {"vpc-1" }),
469
+ },
470
+ },
471
+ },
472
+ output : []* ec2sdk.Subnet {
473
+ {
474
+ SubnetId : awssdk .String ("subnet-1" ),
475
+ AvailabilityZone : awssdk .String ("us-west-2a" ),
476
+ VpcId : awssdk .String ("vpc-1" ),
477
+ Tags : []* ec2sdk.Tag {
478
+ {
479
+ Key : awssdk .String ("kubernetes.io/cluster/some-other-cluster" ),
480
+ Value : awssdk .String ("owned" ),
481
+ },
482
+ },
483
+ },
484
+ {
485
+ SubnetId : awssdk .String ("subnet-3" ),
486
+ AvailabilityZone : awssdk .String ("us-west-2a" ),
487
+ VpcId : awssdk .String ("vpc-1" ),
488
+ Tags : []* ec2sdk.Tag {
489
+ {
490
+ Key : awssdk .String ("kubernetes.io/cluster/kube-cluster" ),
491
+ Value : awssdk .String ("owned" ),
492
+ },
493
+ },
494
+ },
495
+ {
496
+ SubnetId : awssdk .String ("subnet-4" ),
497
+ AvailabilityZone : awssdk .String ("us-west-2b" ),
498
+ VpcId : awssdk .String ("vpc-1" ),
499
+ Tags : []* ec2sdk.Tag {
500
+ {
501
+ Key : awssdk .String ("kubernetes.io/cluster/no-cluster" ),
502
+ Value : awssdk .String ("owned" ),
503
+ },
504
+ },
505
+ },
506
+ {
507
+ SubnetId : awssdk .String ("subnet-2" ),
508
+ AvailabilityZone : awssdk .String ("us-west-2a" ),
509
+ VpcId : awssdk .String ("vpc-1" ),
510
+ Tags : []* ec2sdk.Tag {
511
+ {
512
+ Key : awssdk .String ("kubernetes.io/cluster/kube-cluster" ),
513
+ Value : awssdk .String ("owned" ),
514
+ },
515
+ },
516
+ },
517
+ {
518
+ SubnetId : awssdk .String ("subnet-5" ),
519
+ AvailabilityZone : awssdk .String ("us-west-2c" ),
520
+ VpcId : awssdk .String ("vpc-1" ),
521
+ },
522
+ },
523
+ },
524
+ },
525
+ },
526
+ args : args {
527
+ opts : []SubnetsResolveOption {
528
+ WithSubnetsResolveLBType (elbv2model .LoadBalancerTypeNetwork ),
529
+ WithSubnetsResolveLBScheme (elbv2model .LoadBalancerSchemeInternetFacing ),
530
+ },
531
+ },
532
+ want : []* ec2sdk.Subnet {
533
+ {
534
+ SubnetId : awssdk .String ("subnet-2" ),
535
+ AvailabilityZone : awssdk .String ("us-west-2a" ),
536
+ VpcId : awssdk .String ("vpc-1" ),
537
+ Tags : []* ec2sdk.Tag {
538
+ {
539
+ Key : awssdk .String ("kubernetes.io/cluster/kube-cluster" ),
540
+ Value : awssdk .String ("owned" ),
541
+ },
542
+ },
543
+ },
544
+ {
545
+ SubnetId : awssdk .String ("subnet-5" ),
546
+ AvailabilityZone : awssdk .String ("us-west-2c" ),
547
+ VpcId : awssdk .String ("vpc-1" ),
548
+ },
549
+ },
550
+ },
425
551
}
426
552
427
553
for _ , tt := range tests {
0 commit comments