@@ -52,13 +52,13 @@ func TestOverridesAPIWithRunningCortex(t *testing.T) {
52
52
flags := map [string ]string {
53
53
"-target" : "overrides" ,
54
54
55
- "-overrides. runtime-config- file" : "runtime.yaml" ,
56
- "-overrides .backend" : "s3" ,
57
- "-overrides .s3.access-key-id" : e2edb .MinioAccessKey ,
58
- "-overrides .s3.secret-access-key" : e2edb .MinioSecretKey ,
59
- "-overrides .s3.bucket-name" : "cortex" ,
60
- "-overrides .s3.endpoint" : minio .NetworkHTTPEndpoint (),
61
- "-overrides .s3.insecure" : "true" ,
55
+ "-runtime-config. file" : "runtime.yaml" ,
56
+ "-runtime-config .backend" : "s3" ,
57
+ "-runtime-config .s3.access-key-id" : e2edb .MinioAccessKey ,
58
+ "-runtime-config .s3.secret-access-key" : e2edb .MinioSecretKey ,
59
+ "-runtime-config .s3.bucket-name" : "cortex" ,
60
+ "-runtime-config .s3.endpoint" : minio .NetworkHTTPEndpoint (),
61
+ "-runtime-config .s3.insecure" : "true" ,
62
62
}
63
63
64
64
cortexSvc := e2ecortex .NewSingleBinary ("cortex-overrides" , flags , "" )
@@ -100,15 +100,15 @@ func TestOverridesAPIWithRunningCortex(t *testing.T) {
100
100
assert .Empty (t , overrides )
101
101
})
102
102
103
- t .Run ("PUT overrides for new user" , func (t * testing.T ) {
103
+ t .Run ("POST overrides for new user" , func (t * testing.T ) {
104
104
newOverrides := map [string ]interface {}{
105
105
"ingestion_rate" : 6000 ,
106
106
"ingestion_burst_size" : 7000 ,
107
107
}
108
108
requestBody , err := json .Marshal (newOverrides )
109
109
require .NoError (t , err )
110
110
111
- req , err := http .NewRequest ("PUT " , "http://" + cortexSvc .HTTPEndpoint ()+ "/api/v1/user-overrides" , bytes .NewReader (requestBody ))
111
+ req , err := http .NewRequest ("POST " , "http://" + cortexSvc .HTTPEndpoint ()+ "/api/v1/user-overrides" , bytes .NewReader (requestBody ))
112
112
require .NoError (t , err )
113
113
req .Header .Set ("X-Scope-OrgID" , "user3" )
114
114
req .Header .Set ("Content-Type" , "application/json" )
@@ -137,14 +137,14 @@ func TestOverridesAPIWithRunningCortex(t *testing.T) {
137
137
assert .Equal (t , float64 (7000 ), savedOverrides ["ingestion_burst_size" ])
138
138
})
139
139
140
- t .Run ("PUT overrides with invalid limit" , func (t * testing.T ) {
140
+ t .Run ("POST overrides with invalid limit" , func (t * testing.T ) {
141
141
invalidOverrides := map [string ]interface {}{
142
142
"invalid_limit" : 5000 ,
143
143
}
144
144
requestBody , err := json .Marshal (invalidOverrides )
145
145
require .NoError (t , err )
146
146
147
- req , err := http .NewRequest ("PUT " , "http://" + cortexSvc .HTTPEndpoint ()+ "/api/v1/user-overrides" , bytes .NewReader (requestBody ))
147
+ req , err := http .NewRequest ("POST " , "http://" + cortexSvc .HTTPEndpoint ()+ "/api/v1/user-overrides" , bytes .NewReader (requestBody ))
148
148
require .NoError (t , err )
149
149
req .Header .Set ("X-Scope-OrgID" , "user4" )
150
150
req .Header .Set ("Content-Type" , "application/json" )
@@ -156,8 +156,8 @@ func TestOverridesAPIWithRunningCortex(t *testing.T) {
156
156
assert .Equal (t , http .StatusBadRequest , resp .StatusCode )
157
157
})
158
158
159
- t .Run ("PUT overrides with invalid JSON" , func (t * testing.T ) {
160
- req , err := http .NewRequest ("PUT " , "http://" + cortexSvc .HTTPEndpoint ()+ "/api/v1/user-overrides" , bytes .NewReader ([]byte ("invalid json" )))
159
+ t .Run ("POST overrides with invalid JSON" , func (t * testing.T ) {
160
+ req , err := http .NewRequest ("POST " , "http://" + cortexSvc .HTTPEndpoint ()+ "/api/v1/user-overrides" , bytes .NewReader ([]byte ("invalid json" )))
161
161
require .NoError (t , err )
162
162
req .Header .Set ("X-Scope-OrgID" , "user5" )
163
163
req .Header .Set ("Content-Type" , "application/json" )
@@ -208,16 +208,34 @@ func TestOverridesAPITenantExtraction(t *testing.T) {
208
208
minio := e2edb .NewMinio (9010 , "cortex" )
209
209
require .NoError (t , s .StartAndWaitReady (minio ))
210
210
211
+ // Upload an empty runtime config file to S3
212
+ runtimeConfig := map [string ]interface {}{
213
+ "overrides" : map [string ]interface {}{},
214
+ }
215
+ runtimeConfigData , err := yaml .Marshal (runtimeConfig )
216
+ require .NoError (t , err )
217
+
218
+ s3Client , err := s3 .NewBucketWithConfig (nil , s3.Config {
219
+ Endpoint : minio .HTTPEndpoint (),
220
+ Insecure : true ,
221
+ Bucket : "cortex" ,
222
+ AccessKey : e2edb .MinioAccessKey ,
223
+ SecretKey : e2edb .MinioSecretKey ,
224
+ }, "overrides-test-tenant" , nil )
225
+ require .NoError (t , err )
226
+
227
+ require .NoError (t , s3Client .Upload (context .Background (), "runtime.yaml" , bytes .NewReader (runtimeConfigData )))
228
+
211
229
flags := map [string ]string {
212
230
"-target" : "overrides" ,
213
231
214
- "-overrides. runtime-config- file" : "runtime.yaml" ,
215
- "-overrides .backend" : "s3" ,
216
- "-overrides .s3.access-key-id" : e2edb .MinioAccessKey ,
217
- "-overrides .s3.secret-access-key" : e2edb .MinioSecretKey ,
218
- "-overrides .s3.bucket-name" : "cortex" ,
219
- "-overrides .s3.endpoint" : minio .NetworkHTTPEndpoint (),
220
- "-overrides .s3.insecure" : "true" ,
232
+ "-runtime-config. file" : "runtime.yaml" ,
233
+ "-runtime-config .backend" : "s3" ,
234
+ "-runtime-config .s3.access-key-id" : e2edb .MinioAccessKey ,
235
+ "-runtime-config .s3.secret-access-key" : e2edb .MinioSecretKey ,
236
+ "-runtime-config .s3.bucket-name" : "cortex" ,
237
+ "-runtime-config .s3.endpoint" : minio .NetworkHTTPEndpoint (),
238
+ "-runtime-config .s3.insecure" : "true" ,
221
239
}
222
240
223
241
cortexSvc := e2ecortex .NewSingleBinary ("cortex-overrides-tenant" , flags , "" )
@@ -248,44 +266,3 @@ func TestOverridesAPITenantExtraction(t *testing.T) {
248
266
249
267
require .NoError (t , s .Stop (cortexSvc ))
250
268
}
251
-
252
- func TestOverridesAPIFilesystemBackendRejected (t * testing.T ) {
253
- s , err := e2e .NewScenario (networkName )
254
- require .NoError (t , err )
255
- defer s .Close ()
256
-
257
- t .Run ("filesystem backend should be rejected" , func (t * testing.T ) {
258
- flags := map [string ]string {
259
- "-target" : "overrides" ,
260
- "-overrides.runtime-config-file" : "runtime.yaml" ,
261
- "-overrides.backend" : "filesystem" ,
262
- }
263
-
264
- cortexSvc := e2ecortex .NewSingleBinary ("cortex-overrides-filesystem" , flags , "" )
265
-
266
- err = s .StartAndWaitReady (cortexSvc )
267
- if err == nil {
268
- t .Error ("Expected Cortex to fail to start with filesystem backend, but it started successfully" )
269
- require .NoError (t , s .Stop (cortexSvc ))
270
- } else {
271
- t .Logf ("Expected failure with filesystem backend: %v" , err )
272
- }
273
- })
274
-
275
- t .Run ("no backend specified should be rejected" , func (t * testing.T ) {
276
- flags := map [string ]string {
277
- "-target" : "overrides" ,
278
- "-overrides.runtime-config-file" : "runtime.yaml" ,
279
- }
280
-
281
- cortexSvc := e2ecortex .NewSingleBinary ("cortex-overrides-no-backend" , flags , "" )
282
-
283
- err = s .StartAndWaitReady (cortexSvc )
284
- if err == nil {
285
- t .Error ("Expected Cortex to fail to start with no backend specified, but it started successfully" )
286
- require .NoError (t , s .Stop (cortexSvc ))
287
- } else {
288
- t .Logf ("Expected failure with no backend specified: %v" , err )
289
- }
290
- })
291
- }
0 commit comments