• Stars
    star
    343
  • Rank 123,074 (Top 3 %)
  • Language
    Shell
  • License
    Apache License 2.0
  • Created over 5 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

konfig helps to merge, split or import kubeconfig files

konfig

Latest GitHub release GitHub workflow status Written in Bash

konfig helps to merge, split or import kubeconfig files

Usage

Import a kubeconfig

konfig import --save new-cfg

Imports the config file new-cfg into the default kubeconfig at ~/.kube/config. To show the result without changing your kubeconfig, do

konfig import new-cfg

CAVEAT: due to how shells work, the following will lose your current ~/.kube/config

# WRONG, don't do this!
konfig import new-cfg > ~/.kube/config

Merge several kubeconfig files

konfig merge config1 config2 > merged-config

This variant creates a self-contained kubeconfig where all credentials are stored inline in the kubeconfig. If you want to preserve the structure and keep credentials separate, use --preserve-structure.

Extract a minimal kubeconfig for one or several contexts

This will extract a minimal kubeconfig with a single context minikube:

# extract context minikube from the default kubeconfig
konfig export minikube > minikube.config

# extract context minikube and docker-for-desktop from two input configs
konfig export minikube docker-for-desktop -k ~/.kube/other,~/dockercfg > local

Installation

There are several ways to install konfig. The recommended installation method is via krew.

Via krew

Krew is the kubectl plugin manager. If you have not yet installed krew, get it at https://github.com/kubernetes-sigs/krew. Then installation is as simple as

kubectl krew install konfig

The plugin will be available as kubectl konfig, see doc/USAGE for further details. You could also define an alias as well: alias konfig = 'kubectl konfig'

Manual

When using the binaries for installation, also have a look at USAGE.

OSX & Linux

curl -Lo konfig https://github.com/corneliusweig/konfig/raw/v0.2.6/konfig \
  && chmod +x konfig \
  && sudo mv -i konfig /usr/local/bin

Feel free to change the sudo mv to put konfig in some other location from your $PATH variable.

Windows

If you figure out how to run konfig on Windows, please send a PR with instructions.