Skip to content

Commit

Permalink
kubeconfig parameter added
Browse files Browse the repository at this point in the history
  • Loading branch information
WoodProgrammer committed May 26, 2023
1 parent 0f58937 commit 2e52aa1
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 13 deletions.
Binary file removed src/backup.bin
Binary file not shown.
12 changes: 7 additions & 5 deletions src/cli.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,18 +28,19 @@ var mode = &cobra.Command{
sourceCluster, _ := cmd.Flags().GetString("sourcecluster")
targetNs, _ := cmd.Flags().GetString("ns")
rollback, _ := cmd.Flags().GetBool("rollback")
kubeconfig, _ := cmd.Flags().GetString("kubeconfig")

WarningLogger.Println("Source cluster is :: ", sourceCluster)
WarningLogger.Println("Target cluster is ::", targetCluster)
WarningLogger.Println("Source namespace is ::", targetNs)
sourceClusterclientset := configHandler(sourceCluster)
sourceClusterclientset := configHandler(sourceCluster, kubeconfig)

if args[0] == "backup" {
WarningLogger.Println("Running only backup mode.. Extracting files under this directory...")
backup := getBackup(targetNs, sourceClusterclientset)
currentTime := time.Now()

backupFile := fmt.Sprintf("%d-%d-%d-%d-%d-%d-helm.backup\n",
backupFile := fmt.Sprintf("%d-%d-%d-%d-%d-%d-helm.backup",
currentTime.Year(),
currentTime.Month(),
currentTime.Day(),
Expand All @@ -49,10 +50,10 @@ var mode = &cobra.Command{

dump(backupFile, backup)

} else if args[0] == "restore" || args[0] == "full" {
} else if args[0] == "full" {
WarningLogger.Println("This option provides both backup and restore functionality...")
sourceClusterclientset := configHandler(sourceCluster)
targetClusterclientset := configHandler(targetCluster)
sourceClusterclientset := configHandler(sourceCluster, kubeconfig)
targetClusterclientset := configHandler(targetCluster, kubeconfig)
backup := getBackup(targetNs, sourceClusterclientset)

restoreBackup(targetNs, targetClusterclientset, backup)
Expand All @@ -70,6 +71,7 @@ func Execute() {
mode.PersistentFlags().String("targetcluster", "", "Source of the backup of helm releases")
mode.PersistentFlags().String("sourcecluster", "", "Target cluster address of helm restore operation")
mode.PersistentFlags().String("rollback", "", "This option provides rollback option enabled whether or not")
mode.PersistentFlags().String("kubeconfig", "", "This path of the kubeconfig")

if err := rootCmd.Execute(); err != nil {
ErrorLogger.Println(os.Stderr, "Whoops. There was an error while executing your CLI '%s'", err)
Expand Down
22 changes: 14 additions & 8 deletions src/config.go
Original file line number Diff line number Diff line change
@@ -1,22 +1,28 @@
package main

import (
"fmt"
"os"

"k8s.io/client-go/kubernetes"
"k8s.io/client-go/tools/clientcmd"
)

func configHandler(contextToUse string) *kubernetes.Clientset {
/*var kubeconfig *string
func configHandler(contextToUse string, kubeconfig string) *kubernetes.Clientset {
var filename string
var kubeconfigPath string
dirname, err := os.UserHomeDir()

if kubeconfig == "" {
filename = ".kube/config"
kubeconfigPath = fmt.Sprintf("%s/%s", dirname, filename)

if home := homedir.HomeDir(); home != "" {
kubeconfig = flag.String("kubeconfig", filepath.Join(home, ".kube", "config"), "(optional) absolute path to the kubeconfig file")
} else {
kubeconfig = flag.String("kubeconfig", "", "absolute path to the kubeconfig file")
}
flag.Parse()*/

WarningLogger.Println("The obtained kubeconfig path is %s", kubeconfigPath)

config, err := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(
&clientcmd.ClientConfigLoadingRules{ExplicitPath: "/Users/user/.kube/config"},
&clientcmd.ClientConfigLoadingRules{ExplicitPath: kubeconfigPath},
&clientcmd.ConfigOverrides{
CurrentContext: contextToUse,
}).ClientConfig()
Expand Down

0 comments on commit 2e52aa1

Please sign in to comment.