15
15
package controllers
16
16
17
17
import (
18
- "strings"
19
18
"testing"
20
19
21
20
cmv1 "github.com/cert-manager/cert-manager/pkg/apis/certmanager/v1"
@@ -1245,7 +1244,7 @@ service:
1245
1244
name string
1246
1245
args args
1247
1246
want []client.Object
1248
- featuregates []string
1247
+ featuregates []* colfeaturegate. Gate
1249
1248
wantErr bool
1250
1249
opts []config.Option
1251
1250
}{
@@ -2188,8 +2187,7 @@ prometheus_cr:
2188
2187
},
2189
2188
},
2190
2189
},
2191
- wantErr : false ,
2192
- featuregates : []string {},
2190
+ wantErr : false ,
2193
2191
},
2194
2192
{
2195
2193
name : "target allocator mtls enabled" ,
@@ -2827,7 +2825,7 @@ prometheus_cr:
2827
2825
opts : []config.Option {
2828
2826
config .WithCertManagerAvailability (certmanager .Available ),
2829
2827
},
2830
- featuregates : []string { "operator.targetallocator.mtls" },
2828
+ featuregates : []* colfeaturegate. Gate { featuregate . EnableTargetAllocatorMTLS },
2831
2829
},
2832
2830
}
2833
2831
for _ , tt := range tests {
@@ -2848,13 +2846,18 @@ prometheus_cr:
2848
2846
targetAllocator , err := collector .TargetAllocator (params )
2849
2847
require .NoError (t , err )
2850
2848
params .TargetAllocator = targetAllocator
2851
- if len (tt .featuregates ) > 0 {
2852
- fg := strings .Join (tt .featuregates , "," )
2853
- flagset := featuregate .Flags (colfeaturegate .GlobalRegistry ())
2854
- if err = flagset .Set (featuregate .FeatureGatesFlag , fg ); err != nil {
2855
- t .Errorf ("featuregate setting error = %v" , err )
2849
+ registry := colfeaturegate .GlobalRegistry ()
2850
+ for _ , gate := range tt .featuregates {
2851
+ current := gate .IsEnabled ()
2852
+ require .False (t , current , "only enable gates which are disabled by default" )
2853
+ if setErr := registry .Set (gate .ID (), true ); setErr != nil {
2854
+ require .NoError (t , setErr )
2856
2855
return
2857
2856
}
2857
+ t .Cleanup (func () {
2858
+ setErr := registry .Set (gate .ID (), current )
2859
+ require .NoError (t , setErr )
2860
+ })
2858
2861
}
2859
2862
got , err := BuildCollector (params )
2860
2863
if (err != nil ) != tt .wantErr {
@@ -2909,7 +2912,7 @@ service:
2909
2912
name string
2910
2913
args args
2911
2914
want []client.Object
2912
- featuregates []string
2915
+ featuregates []* colfeaturegate. Gate
2913
2916
wantErr bool
2914
2917
opts []config.Option
2915
2918
}{
@@ -3396,7 +3399,7 @@ service:
3396
3399
},
3397
3400
},
3398
3401
wantErr : false ,
3399
- featuregates : []string {},
3402
+ featuregates : []* colfeaturegate. Gate {},
3400
3403
},
3401
3404
}
3402
3405
for _ , tt := range tests {
@@ -3417,13 +3420,20 @@ service:
3417
3420
targetAllocator , err := collector .TargetAllocator (params )
3418
3421
require .NoError (t , err )
3419
3422
params .TargetAllocator = targetAllocator
3420
- featuregates := []string { "operator.collector.targetallocatorcr" }
3423
+ featuregates := []* colfeaturegate. Gate { featuregate . CollectorUsesTargetAllocatorCR }
3421
3424
featuregates = append (featuregates , tt .featuregates ... )
3422
- fg := strings .Join (featuregates , "," )
3423
- flagset := featuregate .Flags (colfeaturegate .GlobalRegistry ())
3424
- if err = flagset .Set (featuregate .FeatureGatesFlag , fg ); err != nil {
3425
- t .Errorf ("featuregate setting error = %v" , err )
3426
- return
3425
+ registry := colfeaturegate .GlobalRegistry ()
3426
+ for _ , gate := range featuregates {
3427
+ current := gate .IsEnabled ()
3428
+ require .False (t , current , "only enable gates which are disabled by default" )
3429
+ if setErr := registry .Set (gate .ID (), true ); setErr != nil {
3430
+ require .NoError (t , setErr )
3431
+ return
3432
+ }
3433
+ t .Cleanup (func () {
3434
+ setErr := registry .Set (gate .ID (), current )
3435
+ require .NoError (t , setErr )
3436
+ })
3427
3437
}
3428
3438
got , err := BuildCollector (params )
3429
3439
if (err != nil ) != tt .wantErr {
@@ -3445,7 +3455,7 @@ func TestBuildTargetAllocator(t *testing.T) {
3445
3455
name string
3446
3456
args args
3447
3457
want []client.Object
3448
- featuregates []string
3458
+ featuregates []* colfeaturegate. Gate
3449
3459
wantErr bool
3450
3460
opts []config.Option
3451
3461
}{
@@ -4019,8 +4029,7 @@ prometheus_cr:
4019
4029
},
4020
4030
},
4021
4031
},
4022
- wantErr : false ,
4023
- featuregates : []string {},
4032
+ wantErr : false ,
4024
4033
},
4025
4034
{
4026
4035
name : "collector present" ,
@@ -4776,7 +4785,7 @@ prometheus_cr:
4776
4785
opts : []config.Option {
4777
4786
config .WithCertManagerAvailability (certmanager .Available ),
4778
4787
},
4779
- featuregates : []string { "operator.targetallocator.mtls" },
4788
+ featuregates : []* colfeaturegate. Gate { featuregate . EnableTargetAllocatorMTLS },
4780
4789
},
4781
4790
}
4782
4791
for _ , tt := range tests {
@@ -4795,13 +4804,18 @@ prometheus_cr:
4795
4804
TargetAllocator : tt .args .instance ,
4796
4805
Collector : tt .args .collector ,
4797
4806
}
4798
- if len (tt .featuregates ) > 0 {
4799
- fg := strings .Join (tt .featuregates , "," )
4800
- flagset := featuregate .Flags (colfeaturegate .GlobalRegistry ())
4801
- if err := flagset .Set (featuregate .FeatureGatesFlag , fg ); err != nil {
4802
- t .Errorf ("featuregate setting error = %v" , err )
4807
+ registry := colfeaturegate .GlobalRegistry ()
4808
+ for _ , gate := range tt .featuregates {
4809
+ current := gate .IsEnabled ()
4810
+ require .False (t , current , "only enable gates which are disabled by default" )
4811
+ if err := registry .Set (gate .ID (), true ); err != nil {
4812
+ require .NoError (t , err )
4803
4813
return
4804
4814
}
4815
+ t .Cleanup (func () {
4816
+ err := registry .Set (gate .ID (), current )
4817
+ require .NoError (t , err )
4818
+ })
4805
4819
}
4806
4820
got , err := BuildTargetAllocator (params )
4807
4821
if (err != nil ) != tt .wantErr {
0 commit comments