@@ -52,13 +52,13 @@ func TestOverridesAPIWithRunningCortex(t *testing.T) {
5252 flags := map [string ]string {
5353 "-target" : "overrides" ,
5454
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" ,
6262 }
6363
6464 cortexSvc := e2ecortex .NewSingleBinary ("cortex-overrides" , flags , "" )
@@ -100,15 +100,15 @@ func TestOverridesAPIWithRunningCortex(t *testing.T) {
100100 assert .Empty (t , overrides )
101101 })
102102
103- t .Run ("PUT overrides for new user" , func (t * testing.T ) {
103+ t .Run ("POST overrides for new user" , func (t * testing.T ) {
104104 newOverrides := map [string ]interface {}{
105105 "ingestion_rate" : 6000 ,
106106 "ingestion_burst_size" : 7000 ,
107107 }
108108 requestBody , err := json .Marshal (newOverrides )
109109 require .NoError (t , err )
110110
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 ))
112112 require .NoError (t , err )
113113 req .Header .Set ("X-Scope-OrgID" , "user3" )
114114 req .Header .Set ("Content-Type" , "application/json" )
@@ -137,14 +137,14 @@ func TestOverridesAPIWithRunningCortex(t *testing.T) {
137137 assert .Equal (t , float64 (7000 ), savedOverrides ["ingestion_burst_size" ])
138138 })
139139
140- t .Run ("PUT overrides with invalid limit" , func (t * testing.T ) {
140+ t .Run ("POST overrides with invalid limit" , func (t * testing.T ) {
141141 invalidOverrides := map [string ]interface {}{
142142 "invalid_limit" : 5000 ,
143143 }
144144 requestBody , err := json .Marshal (invalidOverrides )
145145 require .NoError (t , err )
146146
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 ))
148148 require .NoError (t , err )
149149 req .Header .Set ("X-Scope-OrgID" , "user4" )
150150 req .Header .Set ("Content-Type" , "application/json" )
@@ -156,8 +156,8 @@ func TestOverridesAPIWithRunningCortex(t *testing.T) {
156156 assert .Equal (t , http .StatusBadRequest , resp .StatusCode )
157157 })
158158
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" )))
161161 require .NoError (t , err )
162162 req .Header .Set ("X-Scope-OrgID" , "user5" )
163163 req .Header .Set ("Content-Type" , "application/json" )
@@ -208,16 +208,34 @@ func TestOverridesAPITenantExtraction(t *testing.T) {
208208 minio := e2edb .NewMinio (9010 , "cortex" )
209209 require .NoError (t , s .StartAndWaitReady (minio ))
210210
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+
211229 flags := map [string ]string {
212230 "-target" : "overrides" ,
213231
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" ,
221239 }
222240
223241 cortexSvc := e2ecortex .NewSingleBinary ("cortex-overrides-tenant" , flags , "" )
@@ -248,44 +266,3 @@ func TestOverridesAPITenantExtraction(t *testing.T) {
248266
249267 require .NoError (t , s .Stop (cortexSvc ))
250268}
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