@@ -57,7 +57,6 @@ import (
57
57
utilflowcontrol "k8s.io/apiserver/pkg/util/flowcontrol"
58
58
apiserverproxyutil "k8s.io/apiserver/pkg/util/proxy"
59
59
"k8s.io/client-go/transport"
60
- "k8s.io/component-base/featuregate"
61
60
featuregatetesting "k8s.io/component-base/featuregate/testing"
62
61
"k8s.io/component-base/metrics"
63
62
"k8s.io/component-base/metrics/legacyregistry"
@@ -134,10 +133,11 @@ func TestProxyHandler(t *testing.T) {
134
133
expectedCalled bool
135
134
expectedHeaders map [string ][]string
136
135
137
- enableFeatureGates []featuregate. Feature
136
+ remoteRequestHeaderUIDFeature bool
138
137
}{
139
138
"no target" : {
140
- expectedStatusCode : http .StatusNotFound ,
139
+ expectedStatusCode : http .StatusNotFound ,
140
+ remoteRequestHeaderUIDFeature : true ,
141
141
},
142
142
"no user" : {
143
143
apiService : & apiregistration.APIService {
@@ -153,10 +153,11 @@ func TestProxyHandler(t *testing.T) {
153
153
},
154
154
},
155
155
},
156
- expectedStatusCode : http .StatusInternalServerError ,
157
- expectedBody : "missing user" ,
156
+ expectedStatusCode : http .StatusInternalServerError ,
157
+ expectedBody : "missing user" ,
158
+ remoteRequestHeaderUIDFeature : true ,
158
159
},
159
- "proxy with user, insecure" : {
160
+ "[-RemoteRequestHeaderUID] proxy with user, insecure" : {
160
161
user : & user.DefaultInfo {
161
162
Name : "username" ,
162
163
UID : "6b60d791-1af9-4513-92e5-e4252a1e0a78" ,
@@ -177,8 +178,9 @@ func TestProxyHandler(t *testing.T) {
177
178
},
178
179
},
179
180
},
180
- expectedStatusCode : http .StatusOK ,
181
- expectedCalled : true ,
181
+ remoteRequestHeaderUIDFeature : false ,
182
+ expectedStatusCode : http .StatusOK ,
183
+ expectedCalled : true ,
182
184
expectedHeaders : map [string ][]string {
183
185
"X-Forwarded-Proto" : {"https" },
184
186
"X-Forwarded-Uri" : {"/request/path" },
@@ -189,7 +191,7 @@ func TestProxyHandler(t *testing.T) {
189
191
"X-Remote-Group" : {"one" , "two" },
190
192
},
191
193
},
192
- "[RemoteRequestHeaderUID] proxy with user, insecure" : {
194
+ "proxy with user, insecure" : {
193
195
user : & user.DefaultInfo {
194
196
Name : "username" ,
195
197
UID : "6b60d791-1af9-4513-92e5-e4252a1e0a78" ,
@@ -210,9 +212,9 @@ func TestProxyHandler(t *testing.T) {
210
212
},
211
213
},
212
214
},
213
- enableFeatureGates : []featuregate. Feature { features . RemoteRequestHeaderUID } ,
214
- expectedStatusCode : http .StatusOK ,
215
- expectedCalled : true ,
215
+ remoteRequestHeaderUIDFeature : true ,
216
+ expectedStatusCode : http .StatusOK ,
217
+ expectedCalled : true ,
216
218
expectedHeaders : map [string ][]string {
217
219
"X-Forwarded-Proto" : {"https" },
218
220
"X-Forwarded-Uri" : {"/request/path" },
@@ -224,7 +226,7 @@ func TestProxyHandler(t *testing.T) {
224
226
"X-Remote-Group" : {"one" , "two" },
225
227
},
226
228
},
227
- "proxy with user, cabundle" : {
229
+ "[-RemoteRequestHeaderUID] proxy with user, cabundle" : {
228
230
user : & user.DefaultInfo {
229
231
Name : "username" ,
230
232
UID : "6b60d791-1af9-4513-92e5-e4252a1e0a78" ,
@@ -245,8 +247,9 @@ func TestProxyHandler(t *testing.T) {
245
247
},
246
248
},
247
249
},
248
- expectedStatusCode : http .StatusOK ,
249
- expectedCalled : true ,
250
+ remoteRequestHeaderUIDFeature : false ,
251
+ expectedStatusCode : http .StatusOK ,
252
+ expectedCalled : true ,
250
253
expectedHeaders : map [string ][]string {
251
254
"X-Forwarded-Proto" : {"https" },
252
255
"X-Forwarded-Uri" : {"/request/path" },
@@ -257,7 +260,7 @@ func TestProxyHandler(t *testing.T) {
257
260
"X-Remote-Group" : {"one" , "two" },
258
261
},
259
262
},
260
- "[RemoteRequestHeaderUID] proxy with user, cabundle" : {
263
+ "proxy with user, cabundle" : {
261
264
user : & user.DefaultInfo {
262
265
Name : "username" ,
263
266
UID : "6b60d791-1af9-4513-92e5-e4252a1e0a78" ,
@@ -278,9 +281,9 @@ func TestProxyHandler(t *testing.T) {
278
281
},
279
282
},
280
283
},
281
- enableFeatureGates : []featuregate. Feature { features . RemoteRequestHeaderUID } ,
282
- expectedStatusCode : http .StatusOK ,
283
- expectedCalled : true ,
284
+ remoteRequestHeaderUIDFeature : true ,
285
+ expectedStatusCode : http .StatusOK ,
286
+ expectedCalled : true ,
284
287
expectedHeaders : map [string ][]string {
285
288
"X-Forwarded-Proto" : {"https" },
286
289
"X-Forwarded-Uri" : {"/request/path" },
@@ -313,7 +316,8 @@ func TestProxyHandler(t *testing.T) {
313
316
},
314
317
},
315
318
},
316
- expectedStatusCode : http .StatusServiceUnavailable ,
319
+ remoteRequestHeaderUIDFeature : true ,
320
+ expectedStatusCode : http .StatusServiceUnavailable ,
317
321
},
318
322
"service unresolveable" : {
319
323
user : & user.DefaultInfo {
@@ -337,7 +341,8 @@ func TestProxyHandler(t *testing.T) {
337
341
},
338
342
},
339
343
},
340
- expectedStatusCode : http .StatusServiceUnavailable ,
344
+ remoteRequestHeaderUIDFeature : true ,
345
+ expectedStatusCode : http .StatusServiceUnavailable ,
341
346
},
342
347
"fail on bad serving cert" : {
343
348
user : & user.DefaultInfo {
@@ -359,7 +364,8 @@ func TestProxyHandler(t *testing.T) {
359
364
},
360
365
},
361
366
},
362
- expectedStatusCode : http .StatusServiceUnavailable ,
367
+ remoteRequestHeaderUIDFeature : true ,
368
+ expectedStatusCode : http .StatusServiceUnavailable ,
363
369
},
364
370
"fail on bad serving cert w/o SAN and increase SAN error counter metrics" : {
365
371
user : & user.DefaultInfo {
@@ -382,9 +388,10 @@ func TestProxyHandler(t *testing.T) {
382
388
},
383
389
},
384
390
},
385
- serviceCertOverride : svcCrtNoSAN ,
386
- increaseSANWarnCounter : true ,
387
- expectedStatusCode : http .StatusServiceUnavailable ,
391
+ serviceCertOverride : svcCrtNoSAN ,
392
+ increaseSANWarnCounter : true ,
393
+ remoteRequestHeaderUIDFeature : true ,
394
+ expectedStatusCode : http .StatusServiceUnavailable ,
388
395
},
389
396
}
390
397
@@ -394,9 +401,7 @@ func TestProxyHandler(t *testing.T) {
394
401
legacyregistry .Reset ()
395
402
396
403
t .Run (name , func (t * testing.T ) {
397
- for _ , f := range tc .enableFeatureGates {
398
- featuregatetesting .SetFeatureGateDuringTest (t , utilfeature .DefaultFeatureGate , f , true )
399
- }
404
+ featuregatetesting .SetFeatureGateDuringTest (t , utilfeature .DefaultFeatureGate , features .RemoteRequestHeaderUID , tc .remoteRequestHeaderUIDFeature )
400
405
401
406
targetServer := httptest .NewUnstartedServer (target )
402
407
serviceCert := tc .serviceCertOverride
0 commit comments