Manage in a better way multiple kubernetes config.
This tiny cli creates in your home directory the folder .kcm, to store multiples .kube
configs. So you can switch configurations of kubernetes as easiest ever. Also it stores
the last config used in the file .kcm/kcm_config.json, and makes a backup in case
.kube are not empty.
npm i -g k8s-config-management
$ ./bin/kcm -h
Usage: kcm [options] [command]
Multiple k8s configuration manager
Options:
-V, --version output the version number
-h, --help output usage information
Commands:
add|a <fileOrFolderPath> [name] Copy contained config or file config with the specified with the folder name under 'kcm' folder
use [name] Put the config you want in `.kube` to use it with `kubectl`
now Shows actual config
ls Show stored config in `.kcm`
-
add
file_or_folder_pathname: Addfile_or_folder_pathto the.kcmdirectory with foldernamespecified. If you dont put name it usesdefault -
use
name: Copy thenameconfig to the.kubedirectory. If you dont use a name it usesdefault. -
now: Show configuration that you are using, it is stored in
.kcm/kcm_config.jsonfile -
ls: Show a list of the predefined configurations, basically a ls -l of the
.kcmexcluding files.
As an example imagine you have 2 kubernetes configurations: client-1 and personal.
> tree -L 1 ~/.kcm
/Users/USER/.kcm
├── ...
└── kcm_config.json
Then you add both files with kcm
> kcm add ./kube-folder-of-client-1 client-1
> tree -L 1 ~/.kcm
/Users/USER/.kcm
├── client-1
└── kcm_config.json
> kcm add ./kube-folder-of-personal personal
/Users/USER/.kcm
├── personal
├── client-1
└── kcm_config.json
Now you already have both configuration to be managed by kcm. Now type kcm use personal or kcm use client-1 to copy the content to your .kube and here we go, your
kubectl now use the config you want.
Then you can use kcm use client-1 or kcm use personal to make your .kube change.
Easy!
Licensed under the MIT license. 2017
PR are welcome, thanks!
When you use kcm use ... it always make a backup of your actual config (but only stores
1 backup, so be care about it)
Its a simple tool, if you copy manually to your .kube there is no way that kcm will
know about it.