From e4ecb8c1db866bce8bf9e82c55b0bcaa01e9b2d8 Mon Sep 17 00:00:00 2001
From: pb <pierre.bayle@irt-stexupery.com>
Date: Thu, 10 Apr 2025 15:48:08 +0200
Subject: [PATCH] replaced k8s go-client create with apply for the creation of
 the Secret

---
 infrastructure/kubernetes.go | 52 ++++++++++++++++++++----------------
 1 file changed, 29 insertions(+), 23 deletions(-)

diff --git a/infrastructure/kubernetes.go b/infrastructure/kubernetes.go
index 9b0f31c..4944a26 100644
--- a/infrastructure/kubernetes.go
+++ b/infrastructure/kubernetes.go
@@ -16,6 +16,7 @@ import (
 	rbacv1 "k8s.io/api/rbac/v1"
 	apierrors "k8s.io/apimachinery/pkg/api/errors"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+	apply "k8s.io/client-go/applyconfigurations/core/v1"
 	"k8s.io/client-go/kubernetes"
 	"k8s.io/client-go/rest"
 )
@@ -346,32 +347,37 @@ func (k *KubernetesService) CreateKubeconfigSecret(context context.Context,kubec
 		return nil, err
 	}
 
-	secretManifest := &v1.Secret{
-		ObjectMeta: metav1.ObjectMeta{
-			Name:      "kube-secret-" + executionId,
-			Namespace:  executionId,
-		},
-		Data: map[string][]byte{
-			"config": config,
-		},
-	}
+	secretApplyConfig := apply.Secret("kube-secret-" + executionId,
+									executionId).
+								WithData(map[string][]byte{
+										"config": config,
+										},
+									)
+
+
+
+	// exists, err := k.GetKubeconfigSecret(context,executionId)
+	// if err != nil {
+	// 	fmt.Println("Error verifying if kube secret exists in namespace ", executionId)
+	// 	return nil, err
+	// }
+	// if exists != nil {
+	// 	fmt.Println("kube-secret already exists in namespace", executionId)
+	// 	fmt.Println("Overriding existing kube-secret with a newer resource")
+	// 	// TODO : implement DeleteKubeConfigSecret(executionID)
+	// 	deleted, err := k.DeleteKubeConfigSecret(executionId)
+	// 	_ = deleted
+	// 	_ = err
+	// }
+
 
-	exists, err := k.GetKubeconfigSecret(context,executionId)
-	if err != nil {
-		fmt.Println("Error verifying if kube secret exists in namespace ", executionId)
-		return nil, err
-	}
-	if exists != nil {
-		fmt.Println("kube-secret already exists in namespace", executionId)
-		fmt.Println("Overriding existing kube-secret with a newer resource")
-		// TODO : implement DeleteKubeConfigSecret(executionID)
-		deleted, err := k.DeleteKubeConfigSecret(executionId)
-		_ = deleted
-		_ = err
-	}
 	resp, err := k.Set.CoreV1().
 				Secrets(executionId).
-				Create(context,secretManifest,metav1.CreateOptions{})
+				Apply(context,
+					secretApplyConfig,
+					metav1.ApplyOptions{
+						FieldManager: "admiralty-manager",
+				})
 				
 	if err != nil {
 		fmt.Println("Error while trying to contact API to get secret kube-secret-"+executionId)