Skip to content

Commit 7c2ba70

Browse files
Alevskdvaldivia
andauthored
add labels to tenant secrets for easy deletion (#252)
Co-authored-by: Daniel Valdivia <hola@danielvaldivia.com>
1 parent 545a890 commit 7c2ba70

File tree

1 file changed

+37
-9
lines changed

1 file changed

+37
-9
lines changed

restapi/admin_tenants.go

Lines changed: 37 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -398,12 +398,16 @@ func getTenantCreatedResponse(session *models.Principal, params admin_api.Create
398398
secretKey = tenantReq.SecretKey
399399
}
400400

401-
secretName := fmt.Sprintf("%s-secret", *tenantReq.Name)
401+
tenantName := *tenantReq.Name
402+
secretName := fmt.Sprintf("%s-secret", tenantName)
402403
imm := true
403404

404405
instanceSecret := corev1.Secret{
405406
ObjectMeta: metav1.ObjectMeta{
406407
Name: secretName,
408+
Labels: map[string]string{
409+
operator.TenantLabel: tenantName,
410+
},
407411
},
408412
Immutable: &imm,
409413
Data: map[string][]byte{
@@ -432,7 +436,7 @@ func getTenantCreatedResponse(session *models.Principal, params admin_api.Create
432436
//Construct a MinIO Instance with everything we are getting from parameters
433437
minInst := operator.Tenant{
434438
ObjectMeta: metav1.ObjectMeta{
435-
Name: *tenantReq.Name,
439+
Name: tenantName,
436440
},
437441
Spec: operator.TenantSpec{
438442
Image: minioImage,
@@ -522,6 +526,9 @@ func getTenantCreatedResponse(session *models.Principal, params admin_api.Create
522526
externalTLSCertificateSecret := corev1.Secret{
523527
ObjectMeta: metav1.ObjectMeta{
524528
Name: externalTLSCertificateSecretName,
529+
Labels: map[string]string{
530+
operator.TenantLabel: tenantName,
531+
},
525532
},
526533
Type: corev1.SecretTypeTLS,
527534
Immutable: &imm,
@@ -549,13 +556,13 @@ func getTenantCreatedResponse(session *models.Principal, params admin_api.Create
549556
})
550557
// KES client mTLSCertificates used by MinIO instance, only if autoCert is not enabled
551558
if !minInst.Spec.RequestAutoCert {
552-
minInst.Spec.ExternalClientCertSecret, err = getTenantExternalClientCertificates(ctx, clientset, ns, tenantReq.Encryption, secretName)
559+
minInst.Spec.ExternalClientCertSecret, err = getTenantExternalClientCertificates(ctx, clientset, ns, tenantReq.Encryption, secretName, tenantName)
553560
if err != nil {
554561
return nil, err
555562
}
556563
}
557564
// KES configuration for Tenant instance
558-
minInst.Spec.KES, err = getKESConfiguration(ctx, clientset, ns, tenantReq.Encryption, secretName, minInst.Spec.RequestAutoCert)
565+
minInst.Spec.KES, err = getKESConfiguration(ctx, clientset, ns, tenantReq.Encryption, secretName, tenantName, minInst.Spec.RequestAutoCert)
559566
if err != nil {
560567
return nil, err
561568
}
@@ -571,14 +578,17 @@ func getTenantCreatedResponse(session *models.Principal, params admin_api.Create
571578
}
572579

573580
if enableConsole {
574-
consoleSelector := fmt.Sprintf("%s-console", *tenantReq.Name)
581+
consoleSelector := fmt.Sprintf("%s-console", tenantName)
575582
consoleSecretName := fmt.Sprintf("%s-secret", consoleSelector)
576583
consoleAccess = RandomCharString(16)
577584
consoleSecret = RandomCharString(32)
578585
imm := true
579586
instanceSecret := corev1.Secret{
580587
ObjectMeta: metav1.ObjectMeta{
581588
Name: consoleSecretName,
589+
Labels: map[string]string{
590+
operator.TenantLabel: tenantName,
591+
},
582592
},
583593
Immutable: &imm,
584594
Data: map[string][]byte{
@@ -641,6 +651,9 @@ func getTenantCreatedResponse(session *models.Principal, params admin_api.Create
641651
consoleExternalTLSCertificateSecret := corev1.Secret{
642652
ObjectMeta: metav1.ObjectMeta{
643653
Name: consoleExternalTLSCertificateSecretName,
654+
Labels: map[string]string{
655+
operator.TenantLabel: tenantName,
656+
},
644657
},
645658
Type: corev1.SecretTypeTLS,
646659
Immutable: &imm,
@@ -694,7 +707,7 @@ func getTenantCreatedResponse(session *models.Principal, params admin_api.Create
694707

695708
if tenantReq.ImagePullSecret != "" {
696709
imagePullSecret = tenantReq.ImagePullSecret
697-
} else if imagePullSecret, err = setImageRegistry(ctx, *tenantReq.Name, tenantReq.ImageRegistry, clientset.CoreV1(), ns); err != nil {
710+
} else if imagePullSecret, err = setImageRegistry(ctx, tenantName, tenantReq.ImageRegistry, clientset.CoreV1(), ns); err != nil {
698711
log.Println("error setting image registry secret:", err)
699712
return nil, err
700713
}
@@ -722,7 +735,7 @@ func getTenantCreatedResponse(session *models.Principal, params admin_api.Create
722735

723736
// Integratrions
724737
if os.Getenv("GKE_INTEGRATION") != "" {
725-
err := gkeIntegration(clientset, *tenantReq.Name, ns, session.SessionToken)
738+
err := gkeIntegration(clientset, tenantName, ns, session.SessionToken)
726739
if err != nil {
727740
return nil, err
728741
}
@@ -771,6 +784,9 @@ func setImageRegistry(ctx context.Context, tenantName string, req *models.ImageR
771784
instanceSecret := corev1.Secret{
772785
ObjectMeta: metav1.ObjectMeta{
773786
Name: pullSecretName,
787+
Labels: map[string]string{
788+
operator.TenantLabel: tenantName,
789+
},
774790
},
775791
Data: map[string][]byte{
776792
corev1.DockerConfigJsonKey: []byte(string(imRegistryJSON)),
@@ -1388,7 +1404,7 @@ func parseNodeSelectorTerm(term *corev1.NodeSelectorTerm) *models.NodeSelectorTe
13881404
return &t
13891405
}
13901406

1391-
func getTenantExternalClientCertificates(ctx context.Context, clientSet *kubernetes.Clientset, ns string, encryptionCfg *models.EncryptionConfiguration, secretName string) (clientCertificates *operator.LocalCertificateReference, err error) {
1407+
func getTenantExternalClientCertificates(ctx context.Context, clientSet *kubernetes.Clientset, ns string, encryptionCfg *models.EncryptionConfiguration, secretName, tenantName string) (clientCertificates *operator.LocalCertificateReference, err error) {
13921408
instanceExternalClientCertificateSecretName := fmt.Sprintf("%s-instance-external-client-mtls-certificates", secretName)
13931409
// If there's an error during this process we delete all KES configuration secrets
13941410
defer func() {
@@ -1413,6 +1429,9 @@ func getTenantExternalClientCertificates(ctx context.Context, clientSet *kuberne
14131429
instanceExternalClientCertificateSecret := corev1.Secret{
14141430
ObjectMeta: metav1.ObjectMeta{
14151431
Name: instanceExternalClientCertificateSecretName,
1432+
Labels: map[string]string{
1433+
operator.TenantLabel: tenantName,
1434+
},
14161435
},
14171436
Type: corev1.SecretTypeTLS,
14181437
Immutable: &imm,
@@ -1433,7 +1452,7 @@ func getTenantExternalClientCertificates(ctx context.Context, clientSet *kuberne
14331452
return clientCertificates, nil
14341453
}
14351454

1436-
func getKESConfiguration(ctx context.Context, clientSet *kubernetes.Clientset, ns string, encryptionCfg *models.EncryptionConfiguration, secretName string, autoCert bool) (kesConfiguration *operator.KESConfig, err error) {
1455+
func getKESConfiguration(ctx context.Context, clientSet *kubernetes.Clientset, ns string, encryptionCfg *models.EncryptionConfiguration, secretName, tenantName string, autoCert bool) (kesConfiguration *operator.KESConfig, err error) {
14371456
// secrets used by the KES configuration
14381457
instanceExternalClientCertificateSecretName := fmt.Sprintf("%s-instance-external-client-mtls-certificates", secretName)
14391458
kesExternalCertificateSecretName := fmt.Sprintf("%s-kes-external-mtls-certificates", secretName)
@@ -1489,6 +1508,9 @@ func getKESConfiguration(ctx context.Context, clientSet *kubernetes.Clientset, n
14891508
kesExternalCertificateSecret := corev1.Secret{
14901509
ObjectMeta: metav1.ObjectMeta{
14911510
Name: kesExternalCertificateSecretName,
1511+
Labels: map[string]string{
1512+
operator.TenantLabel: tenantName,
1513+
},
14921514
},
14931515
Type: corev1.SecretTypeTLS,
14941516
Immutable: &imm,
@@ -1674,6 +1696,9 @@ func getKESConfiguration(ctx context.Context, clientSet *kubernetes.Clientset, n
16741696
kesClientCertSecret := corev1.Secret{
16751697
ObjectMeta: metav1.ObjectMeta{
16761698
Name: kesClientCertSecretName,
1699+
Labels: map[string]string{
1700+
operator.TenantLabel: tenantName,
1701+
},
16771702
},
16781703
Immutable: &imm,
16791704
Data: mTLSCertificates,
@@ -1697,6 +1722,9 @@ func getKESConfiguration(ctx context.Context, clientSet *kubernetes.Clientset, n
16971722
kesConfigurationSecret := corev1.Secret{
16981723
ObjectMeta: metav1.ObjectMeta{
16991724
Name: kesConfigurationSecretName,
1725+
Labels: map[string]string{
1726+
operator.TenantLabel: tenantName,
1727+
},
17001728
},
17011729
Immutable: &imm,
17021730
Data: map[string][]byte{

0 commit comments

Comments
 (0)