add --overwrite flag for get-kubeconfig

This commit is contained in:
iwilltry42 2020-01-21 11:36:00 +01:00
parent c2289c71b6
commit 4d8876f649
No known key found for this signature in database
GPG Key ID: 7BA57AD1CFF16110
4 changed files with 23 additions and 8 deletions

View File

@ -167,7 +167,7 @@ func createKubeConfigFile(cluster string) error {
return nil
}
func getKubeConfig(cluster string) (string, error) {
func getKubeConfig(cluster string, overwrite bool) (string, error) {
kubeConfigPath, err := getClusterKubeConfigPath(cluster)
if err != nil {
return "", err
@ -180,14 +180,25 @@ func getKubeConfig(cluster string) (string, error) {
return "", fmt.Errorf("Cluster %s does not exist", cluster)
}
// If kubeconfi.yaml has not been created, generate it now
if _, err := os.Stat(kubeConfigPath); err != nil {
if os.IsNotExist(err) {
if err = createKubeConfigFile(cluster); err != nil {
// Create or overwrite file no matter if it exists or not
if overwrite {
log.Debugf("Creating/Overwriting file %s...", kubeConfigPath)
if err = createKubeConfigFile(cluster); err != nil {
return "", err
}
} else {
// If kubeconfi.yaml has not been created, generate it now
if _, err := os.Stat(kubeConfigPath); err != nil {
if os.IsNotExist(err) {
log.Debugf("File %s does not exist. Creating it now...", kubeConfigPath)
if err = createKubeConfigFile(cluster); err != nil {
return "", err
}
} else {
return "", err
}
} else {
return "", err
log.Debugf("File %s exists, leaving it as it is...", kubeConfigPath)
}
}

View File

@ -470,7 +470,7 @@ func GetKubeConfig(c *cli.Context) error {
}
for _, cluster := range clusters {
kubeConfigPath, err := getKubeConfig(cluster.name)
kubeConfigPath, err := getKubeConfig(cluster.name, c.Bool("overwrite"))
if err != nil {
if !c.Bool("all") {
return err

View File

@ -51,7 +51,7 @@ func subShell(cluster, shell, command string) error {
}
// get kubeconfig for selected cluster
kubeConfigPath, err := getKubeConfig(cluster)
kubeConfigPath, err := getKubeConfig(cluster, true)
if err != nil {
return err
}

View File

@ -273,6 +273,10 @@ func main() {
Name: "all, a",
Usage: "Get kubeconfig for all clusters (this ignores the --name/-n flag)",
},
cli.BoolFlag{
Name: "overwrite, o",
Usage: "Overwrite any existing file with the same name",
},
},
Action: run.GetKubeConfig,
},