From a7bc30469c7adae138b863311d94cff75e51ee27 Mon Sep 17 00:00:00 2001 From: Uzair Ali <72073401+uzaxirr@users.noreply.github.com> Date: Fri, 24 Jan 2025 09:53:35 +0530 Subject: [PATCH] add update-kubeconfig cmd --- cmd/kubernetes/kubernetes.go | 1 + .../kubernetes_update_kubeconfig.go | 44 +++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 cmd/kubernetes/kubernetes_update_kubeconfig.go diff --git a/cmd/kubernetes/kubernetes.go b/cmd/kubernetes/kubernetes.go index 5789bff3..6313d9d3 100644 --- a/cmd/kubernetes/kubernetes.go +++ b/cmd/kubernetes/kubernetes.go @@ -71,6 +71,7 @@ func init() { KubernetesCmd.AddCommand(kubernetesUpgradeCmd) KubernetesCmd.AddCommand(kubernetesRemoveCmd) KubernetesCmd.AddCommand(kubernetesRecycleCmd) + KubernetesCmd.AddCommand(kubernetesUpdateKubeconfigCmd) home, err := os.UserHomeDir() if err != nil { diff --git a/cmd/kubernetes/kubernetes_update_kubeconfig.go b/cmd/kubernetes/kubernetes_update_kubeconfig.go new file mode 100644 index 00000000..ab5e547c --- /dev/null +++ b/cmd/kubernetes/kubernetes_update_kubeconfig.go @@ -0,0 +1,44 @@ +package kubernetes + +import ( + "fmt" + "os" + + "github.com/civo/cli/common" + "github.com/civo/cli/config" + "github.com/civo/cli/utility" + "github.com/spf13/cobra" +) + +var kubernetesUpdateKubeconfigCmd = &cobra.Command{ + Use: "update-kubeconfig", + Short: "Update kubeconfig for the specified cluster", + Example: "civo kubernetes update-kubeconfig CLUSTER_NAME", + Args: cobra.ExactArgs(1), + Run: func(cmd *cobra.Command, args []string) { + utility.EnsureCurrentRegion() + + client, err := config.CivoAPIClient() + if common.RegionSet != "" { + client.Region = common.RegionSet + } + if err != nil { + utility.Error("Creating the connection to Civo's API failed with %s", err) + os.Exit(1) + } + + cluster, err := client.FindKubernetesCluster(args[0]) + if err != nil { + utility.Error("Finding cluster failed with %s", err) + os.Exit(1) + } + + err = utility.ObtainKubeConfig(localPathConfig, cluster.KubeConfig, true, true, cluster.Name) + if err != nil { + utility.Error("Updating kubeconfig failed with %s", err) + os.Exit(1) + } + + fmt.Printf("Updated kubeconfig with cluster %s configuration\n", utility.Green(cluster.Name)) + }, +}