@@ -56,21 +56,9 @@ type InstallerEntry struct {
56
56
}
57
57
58
58
// ReadInstallerConfigMap fetches and parses installer data from a ConfigMap
59
- func ReadInstallerConfigMap () ([]InstallerEntry , error ) {
60
-
61
- // Load kubeconfig and create a Kubernetes client
62
- config , err := LoadKubeConfig ()
63
- if err != nil {
64
- return nil , fmt .Errorf ("failed to load kubeconfig: %w" , err )
65
- }
66
-
67
- clientset , err := kubernetes .NewForConfig (config )
68
- if err != nil {
69
- return nil , fmt .Errorf ("failed to create Kubernetes client: %w" , err )
70
- }
71
-
59
+ func ReadInstallerConfigMap (k8sclient * kubernetes.Clientset ) ([]InstallerEntry , error ) {
72
60
// Get the ConfigMap
73
- cm , err := clientset .CoreV1 ().ConfigMaps (namespace ).Get (context .TODO (), configMapName , metav1.GetOptions {})
61
+ cm , err := k8sclient .CoreV1 ().ConfigMaps (namespace ).Get (context .TODO (), configMapName , metav1.GetOptions {})
74
62
if err != nil {
75
63
if apiErrors .IsNotFound (err ) {
76
64
fmt .Println (Yellow + "\n No existing Parseable OSS clusters found.\n " + Reset )
@@ -102,6 +90,20 @@ func LoadKubeConfig() (*rest.Config, error) {
102
90
return clientcmd .BuildConfigFromFlags ("" , kubeconfig )
103
91
}
104
92
93
+ func CreateK8sClient () (* kubernetes.Clientset , error ) {
94
+ // Load kubeconfig and create a Kubernetes client
95
+ config , err := LoadKubeConfig ()
96
+ if err != nil {
97
+ return nil , fmt .Errorf ("failed to load kubeconfig: %w" , err )
98
+ }
99
+
100
+ clientset , err := kubernetes .NewForConfig (config )
101
+ if err != nil {
102
+ return nil , fmt .Errorf ("failed to create Kubernetes client: %w" , err )
103
+ }
104
+ return clientset , nil
105
+ }
106
+
105
107
// PromptK8sContext retrieves Kubernetes contexts from kubeconfig.
106
108
func PromptK8sContext () (clusterName string , err error ) {
107
109
kubeconfigPath := os .Getenv ("KUBECONFIG" )
@@ -220,20 +222,9 @@ func CreateDeploymentSpinner(infoMsg string) *spinner.Spinner {
220
222
221
223
return s
222
224
}
223
- func RemoveInstallerEntry (name string ) error {
224
- // Load kubeconfig and create a Kubernetes client
225
- config , err := LoadKubeConfig ()
226
- if err != nil {
227
- return fmt .Errorf ("failed to load kubeconfig: %w" , err )
228
- }
229
-
230
- clientset , err := kubernetes .NewForConfig (config )
231
- if err != nil {
232
- return fmt .Errorf ("failed to create Kubernetes client: %w" , err )
233
- }
234
-
225
+ func RemoveInstallerEntry (name string , k8sclient * kubernetes.Clientset ) error {
235
226
// Fetch the ConfigMap
236
- configMap , err := clientset .CoreV1 ().ConfigMaps (namespace ).Get (context .TODO (), configMapName , metav1.GetOptions {})
227
+ configMap , err := k8sclient .CoreV1 ().ConfigMaps (namespace ).Get (context .TODO (), configMapName , metav1.GetOptions {})
237
228
if err != nil {
238
229
return fmt .Errorf ("failed to fetch ConfigMap: %v" , err )
239
230
}
@@ -271,7 +262,7 @@ func RemoveInstallerEntry(name string) error {
271
262
configMap .Data ["installer-data" ] = string (updatedData )
272
263
273
264
// Update the ConfigMap in Kubernetes
274
- _ , err = clientset .CoreV1 ().ConfigMaps (namespace ).Update (context .TODO (), configMap , metav1.UpdateOptions {})
265
+ _ , err = k8sclient .CoreV1 ().ConfigMaps (namespace ).Update (context .TODO (), configMap , metav1.UpdateOptions {})
275
266
if err != nil {
276
267
return fmt .Errorf ("failed to update ConfigMap: %v" , err )
277
268
}
0 commit comments