Compare commits

...

2 Commits

  1. 2
      README.md
  2. 14
      pkg/client/kubeconfig.go

@ -184,5 +184,5 @@ This project follows the [all-contributors](https://github.com/all-contributors/
Thanks to all our amazing sponsors! ๐Ÿ™
<ul>
<!-- sponsors --><li><a href="https://github.com/dwightgunning">[<strong>dwightgunning</strong>]</a> Dwight Gunning</li><li><a href="https://github.com/mbrettsc">[<strong>mbrettsc</strong>]</a> Martin Brettschneider</li><!-- sponsors -->
<!-- sponsors --><li><a href="https://github.com/dwightgunning">[<strong>dwightgunning</strong>]</a> Dwight Gunning</li><li><a href="https://github.com/mbrettsc">[<strong>mbrettsc</strong>]</a> Martin Brettschneider</li><li><a href="https://github.com/jpfyoder">[<strong>jpfyoder</strong>]</a> Joshua Yoder</li><!-- sponsors -->
</ul>

@ -283,12 +283,22 @@ func KubeconfigWrite(ctx context.Context, kubeconfig *clientcmdapi.Config, path
return fmt.Errorf("failed to write merged kubeconfig to temporary file '%s': %w", tempPath, err)
}
// In case path is a symlink, retrives the name of the target
realPath, err := filepath.EvalSymlinks(path)
if err != nil {
return fmt.Errorf("failed to follow symlink '%s': %w", path, err)
}
// Move temporary file over existing KubeConfig
if err := os.Rename(tempPath, path); err != nil {
if err := os.Rename(tempPath, realPath); err != nil {
return fmt.Errorf("failed to overwrite existing KubeConfig '%s' with new kubeconfig '%s': %w", path, tempPath, err)
}
l.Log().Debugf("Wrote kubeconfig to '%s'", path)
extraLog := ""
if filepath.Clean(path) != realPath {
extraLog = fmt.Sprintf("(via symlink '%s')", path)
}
l.Log().Debugf("Wrote kubeconfig to '%s' %s", realPath, extraLog)
return nil
}

Loadingโ€ฆ
Cancel
Save