@@ -56,21 +56,9 @@ type InstallerEntry struct {
5656}
5757
5858// 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 ) {
7260 // 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 {})
7462 if err != nil {
7563 if apiErrors .IsNotFound (err ) {
7664 fmt .Println (Yellow + "\n No existing Parseable OSS clusters found.\n " + Reset )
@@ -102,6 +90,20 @@ func LoadKubeConfig() (*rest.Config, error) {
10290 return clientcmd .BuildConfigFromFlags ("" , kubeconfig )
10391}
10492
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+
105107// PromptK8sContext retrieves Kubernetes contexts from kubeconfig.
106108func PromptK8sContext () (clusterName string , err error ) {
107109 kubeconfigPath := os .Getenv ("KUBECONFIG" )
@@ -220,20 +222,9 @@ func CreateDeploymentSpinner(infoMsg string) *spinner.Spinner {
220222
221223 return s
222224}
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 {
235226 // 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 {})
237228 if err != nil {
238229 return fmt .Errorf ("failed to fetch ConfigMap: %v" , err )
239230 }
@@ -271,7 +262,7 @@ func RemoveInstallerEntry(name string) error {
271262 configMap .Data ["installer-data" ] = string (updatedData )
272263
273264 // 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 {})
275266 if err != nil {
276267 return fmt .Errorf ("failed to update ConfigMap: %v" , err )
277268 }
0 commit comments