@@ -25,9 +25,11 @@ import (
25
25
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
26
26
)
27
27
28
+ const configSecretName = "config-secret"
29
+
28
30
func TestEnvVarsToFileContent (t * testing.T ) {
29
31
type args struct {
30
- envVars []corev1 .EnvVar
32
+ envVars []miniov2 .EnvVar
31
33
}
32
34
tests := []struct {
33
35
name string
@@ -37,7 +39,7 @@ func TestEnvVarsToFileContent(t *testing.T) {
37
39
{
38
40
name : "Basic test case" ,
39
41
args : args {
40
- envVars : []corev1 .EnvVar {
42
+ envVars : []miniov2 .EnvVar {
41
43
{
42
44
Name : "MINIO_UPDATE" ,
43
45
Value : "on" ,
@@ -49,7 +51,7 @@ func TestEnvVarsToFileContent(t *testing.T) {
49
51
{
50
52
name : "Two Vars test case" ,
51
53
args : args {
52
- envVars : []corev1 .EnvVar {
54
+ envVars : []miniov2 .EnvVar {
53
55
{
54
56
Name : "MINIO_UPDATE" ,
55
57
Value : "on" ,
@@ -77,20 +79,20 @@ export MINIO_UPDATE_MINISIGN_PUBKEY="RWTx5Zr1tiHQLwG9keckT0c45M3AGeHD6IvimQHpyRy
77
79
func TestGetTenantConfiguration (t * testing.T ) {
78
80
type args struct {
79
81
tenant * miniov2.Tenant
80
- cfgEnvExisting map [string ]corev1 .EnvVar
82
+ cfgEnvExisting map [string ]miniov2 .EnvVar
81
83
}
82
84
tests := []struct {
83
85
name string
84
86
args args
85
- want []corev1 .EnvVar
87
+ want []miniov2 .EnvVar
86
88
}{
87
89
{
88
90
name : "Defaulted Values" ,
89
91
args : args {
90
92
tenant : & miniov2.Tenant {},
91
93
cfgEnvExisting : nil ,
92
94
},
93
- want : []corev1 .EnvVar {
95
+ want : []miniov2 .EnvVar {
94
96
{
95
97
Name : "MINIO_ARGS" ,
96
98
Value : "" ,
@@ -118,7 +120,7 @@ func TestGetTenantConfiguration(t *testing.T) {
118
120
args : args {
119
121
tenant : & miniov2.Tenant {
120
122
Spec : miniov2.TenantSpec {
121
- Env : []corev1 .EnvVar {
123
+ Env : []miniov2 .EnvVar {
122
124
{
123
125
Name : "TEST" ,
124
126
Value : "value" ,
@@ -128,7 +130,7 @@ func TestGetTenantConfiguration(t *testing.T) {
128
130
},
129
131
cfgEnvExisting : nil ,
130
132
},
131
- want : []corev1 .EnvVar {
133
+ want : []miniov2 .EnvVar {
132
134
{
133
135
Name : "MINIO_ARGS" ,
134
136
Value : "" ,
@@ -173,7 +175,7 @@ func TestParseConfEnvSecret(t *testing.T) {
173
175
tests := []struct {
174
176
name string
175
177
args args
176
- want map [string ]corev1 .EnvVar
178
+ want map [string ]miniov2 .EnvVar
177
179
}{
178
180
{
179
181
name : "Basic case" ,
@@ -185,7 +187,7 @@ export MINIO_STORAGE_CLASS_STANDARD="EC:2"
185
187
export MINIO_BROWSER="on"` )},
186
188
},
187
189
},
188
- want : map [string ]corev1 .EnvVar {
190
+ want : map [string ]miniov2 .EnvVar {
189
191
"MINIO_ROOT_USER" : {
190
192
Name : "MINIO_ROOT_USER" ,
191
193
Value : "minio" ,
@@ -214,7 +216,7 @@ export MINIO_BROWSER="on"`)},
214
216
export MINIO_BROWSER="on"` )},
215
217
},
216
218
},
217
- want : map [string ]corev1 .EnvVar {
219
+ want : map [string ]miniov2 .EnvVar {
218
220
"MINIO_ROOT_USER" : {
219
221
Name : "MINIO_ROOT_USER" ,
220
222
Value : "minio" ,
@@ -245,8 +247,9 @@ export MINIO_BROWSER="on"`)},
245
247
246
248
func TestGetFullTenantConfig (t * testing.T ) {
247
249
type args struct {
248
- tenant * miniov2.Tenant
249
- configSecret * corev1.Secret
250
+ tenant * miniov2.Tenant
251
+ secrets map [string ]* corev1.Secret
252
+ configMaps map [string ]* corev1.ConfigMap
250
253
}
251
254
tests := []struct {
252
255
name string
@@ -258,19 +261,24 @@ func TestGetFullTenantConfig(t *testing.T) {
258
261
args : args {
259
262
tenant : & miniov2.Tenant {
260
263
Spec : miniov2.TenantSpec {
261
- Env : []corev1.EnvVar {
264
+ Configuration : & corev1.LocalObjectReference {
265
+ Name : configSecretName ,
266
+ },
267
+ Env : []miniov2.EnvVar {
262
268
{
263
269
Name : "TEST" ,
264
270
Value : "value" ,
265
271
},
266
272
},
267
273
},
268
274
},
269
- configSecret : & corev1.Secret {
270
- Data : map [string ][]byte {"config.env" : []byte (`export MINIO_ROOT_USER="minio"
275
+ secrets : map [string ]* corev1.Secret {
276
+ configSecretName : {
277
+ Data : map [string ][]byte {"config.env" : []byte (`export MINIO_ROOT_USER="minio"
271
278
export MINIO_ROOT_PASSWORD="minio123"
272
279
export MINIO_STORAGE_CLASS_STANDARD="EC:2"
273
280
export MINIO_BROWSER="on"` )},
281
+ },
274
282
},
275
283
},
276
284
want : `export MINIO_ARGS=""
@@ -290,7 +298,10 @@ export TEST="value"
290
298
args : args {
291
299
tenant : & miniov2.Tenant {
292
300
Spec : miniov2.TenantSpec {
293
- Env : []corev1.EnvVar {
301
+ Configuration : & corev1.LocalObjectReference {
302
+ Name : configSecretName ,
303
+ },
304
+ Env : []miniov2.EnvVar {
294
305
{
295
306
Name : "TEST" ,
296
307
Value : "value" ,
@@ -303,11 +314,13 @@ export TEST="value"
303
314
},
304
315
},
305
316
},
306
- configSecret : & corev1.Secret {
307
- Data : map [string ][]byte {"config.env" : []byte (`export MINIO_ROOT_USER="minio"
317
+ secrets : map [string ]* corev1.Secret {
318
+ configSecretName : {
319
+ Data : map [string ][]byte {"config.env" : []byte (`export MINIO_ROOT_USER="minio"
308
320
export MINIO_ROOT_PASSWORD="minio123"
309
321
export MINIO_STORAGE_CLASS_STANDARD="EC:2"
310
322
export MINIO_BROWSER="on"` )},
323
+ },
311
324
},
312
325
},
313
326
want : `export MINIO_ARGS=""
@@ -332,7 +345,10 @@ export TEST="value"
332
345
Namespace : "ns-x" ,
333
346
},
334
347
Spec : miniov2.TenantSpec {
335
- Env : []corev1.EnvVar {
348
+ Configuration : & corev1.LocalObjectReference {
349
+ Name : configSecretName ,
350
+ },
351
+ Env : []miniov2.EnvVar {
336
352
{
337
353
Name : "TEST" ,
338
354
Value : "value" ,
@@ -353,11 +369,102 @@ export TEST="value"
353
369
},
354
370
},
355
371
},
356
- configSecret : & corev1.Secret {
357
- Data : map [string ][]byte {"config.env" : []byte (`export MINIO_ROOT_USER="minio"
372
+ secrets : map [string ]* corev1.Secret {
373
+ configSecretName : {
374
+ Data : map [string ][]byte {"config.env" : []byte (`export MINIO_ROOT_USER="minio"
375
+ export MINIO_ROOT_PASSWORD="minio123"
376
+ export MINIO_STORAGE_CLASS_STANDARD="EC:2"
377
+ export MINIO_BROWSER="on"` )},
378
+ },
379
+ },
380
+ },
381
+ want : `export MINIO_ARGS="https://tenant-pool-0-{0...3}.tenant-hl.ns-x.svc.cluster.local/export{0...3}"
382
+ export MINIO_BROWSER="on"
383
+ export MINIO_BROWSER_REDIRECT_URL="http://console.minio"
384
+ export MINIO_PROMETHEUS_JOB_ID="minio-job"
385
+ export MINIO_ROOT_PASSWORD="minio123"
386
+ export MINIO_ROOT_USER="minio"
387
+ export MINIO_SERVER_URL="https://minio.ns-x.svc.cluster.local:443"
388
+ export MINIO_STORAGE_CLASS_STANDARD="EC:2"
389
+ export MINIO_UPDATE="on"
390
+ export MINIO_UPDATE_MINISIGN_PUBKEY="RWTx5Zr1tiHQLwG9keckT0c45M3AGeHD6IvimQHpyRywVWGbP1aVSGav"
391
+ export TEST="value"
392
+ ` ,
393
+ },
394
+ {
395
+ name : "Default with both a config-map and secret reference" ,
396
+ args : args {
397
+ tenant : & miniov2.Tenant {
398
+ ObjectMeta : metav1.ObjectMeta {
399
+ Name : "tenant" ,
400
+ Namespace : "ns-x" ,
401
+ },
402
+ Spec : miniov2.TenantSpec {
403
+ Configuration : & corev1.LocalObjectReference {
404
+ Name : configSecretName ,
405
+ },
406
+ Env : []miniov2.EnvVar {
407
+ {
408
+ Name : "TEST" ,
409
+ Value : "value" ,
410
+ },
411
+ {
412
+ Name : "TEST_CONFIGMAP" ,
413
+ ValueFrom : & miniov2.EnvVarSource {
414
+ ConfigMapKeyRef : & miniov2.ConfigMapKeySelector {
415
+ LocalObjectReference : corev1.LocalObjectReference {
416
+ Name : "test-configmap" ,
417
+ },
418
+ Key : "test-configmap-key" ,
419
+ },
420
+ },
421
+ },
422
+ {
423
+ Name : "TEST_SECRET" ,
424
+ ValueFrom : & miniov2.EnvVarSource {
425
+ SecretKeyRef : & miniov2.SecretKeySelector {
426
+ LocalObjectReference : corev1.LocalObjectReference {
427
+ Name : "test-secret" ,
428
+ },
429
+ Key : "test-secret-key" ,
430
+ },
431
+ },
432
+ },
433
+ },
434
+ Features : & miniov2.Features {
435
+ Domains : & miniov2.TenantDomains {
436
+ Console : "http://console.minio" ,
437
+ },
438
+ },
439
+ Pools : []miniov2.Pool {
440
+ {
441
+ Name : "pool-0" ,
442
+ Servers : 4 ,
443
+ VolumesPerServer : 4 ,
444
+ VolumeClaimTemplate : nil ,
445
+ },
446
+ },
447
+ },
448
+ },
449
+ secrets : map [string ]* corev1.Secret {
450
+ configSecretName : {
451
+ Data : map [string ][]byte {"config.env" : []byte (`export MINIO_ROOT_USER="minio"
358
452
export MINIO_ROOT_PASSWORD="minio123"
359
453
export MINIO_STORAGE_CLASS_STANDARD="EC:2"
360
454
export MINIO_BROWSER="on"` )},
455
+ },
456
+ "test-secret" : {
457
+ Data : map [string ][]byte {
458
+ "test-secret-key" : []byte ("test-secret-value" ),
459
+ },
460
+ },
461
+ },
462
+ configMaps : map [string ]* corev1.ConfigMap {
463
+ "test-configmap" : {
464
+ Data : map [string ]string {
465
+ "test-configmap-key" : "test-configmap-value" ,
466
+ },
467
+ },
361
468
},
362
469
},
363
470
want : `export MINIO_ARGS="https://tenant-pool-0-{0...3}.tenant-hl.ns-x.svc.cluster.local/export{0...3}"
@@ -371,18 +478,16 @@ export MINIO_STORAGE_CLASS_STANDARD="EC:2"
371
478
export MINIO_UPDATE="on"
372
479
export MINIO_UPDATE_MINISIGN_PUBKEY="RWTx5Zr1tiHQLwG9keckT0c45M3AGeHD6IvimQHpyRywVWGbP1aVSGav"
373
480
export TEST="value"
481
+ export TEST_CONFIGMAP="test-configmap-value"
482
+ export TEST_SECRET="test-secret-value"
374
483
` ,
375
484
},
376
485
}
377
486
for _ , tt := range tests {
378
487
t .Run (tt .name , func (t * testing.T ) {
379
488
tt .args .tenant .EnsureDefaults ()
380
489
381
- var configMaps map [string ]* corev1.ConfigMap
382
- secrets := map [string ]* corev1.Secret {
383
- tt .args .tenant .ConfigurationSecretName (): tt .args .configSecret ,
384
- }
385
- if got , _ , _ := GetFullTenantConfig (tt .args .tenant , configMaps , secrets ); got != tt .want {
490
+ if got , _ , _ := GetFullTenantConfig (tt .args .tenant , tt .args .configMaps , tt .args .secrets ); got != tt .want {
386
491
t .Errorf ("GetFullTenantConfig() = `%v`, want `%v`" , got , tt .want )
387
492
}
388
493
})
0 commit comments