Ulexus / kconf

A command line tool for managing multiple kubeconfigs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

kconf

An opinionated command line tool for managing multiple kubeconfigs.

Release GitHub Workflow Status

Description

kconf works by storing all kubeconfig information in a single file ($HOME/.kube/config). This file is looked at by default when using kubectl.

Usage

Add in a new kubeconfig file:
kconf add /path/to/kubeconfig.conf

or

kconf add /path/to/kubeconfig.conf --context-name=myContext
Remove an existing kubeconfig:
kconf rm myContext
List all saved contexts in the kubeconfig:
kconf ls
View and print a single context's kubeconfig (you can pipe or export to a file):
kconf view myContext
Switch to an existing context:
kconf use myContext
Set a preferred namespace
kconf use myContext -n kube-system

Why?

I was previously managing my kubeconfigs using the $KUBECONFIG environment variable. However, in order to automate this process, you have to do something like this in your rc files:

KUBECONFIG=$(find $HOME/.kube -type f -name '*.conf' 2> /dev/null | sed ':a;N;$!ba;s/\n/:/g')

... that gets you a $KUBECONFIG variable with all your kubeconfigs separated by colons. The problem is that if you're frequently working with new/modified kubeconfigs, you'd have to trigger this command each time something changed.

With the kconf command, there's no need for $KUBECONFIG since kubectl already looks at $HOME/.kube/config by default. Additionally, as soon as you have a new kubeconfig, you can add it pretty easily and quickly.

Known Issues

Check out the Issues section or specifically issues created by me

About

A command line tool for managing multiple kubeconfigs


Languages

Language:Go 100.0%