✂️
大きなkubeconfigファイルを分割するツールを作った
はじめに
こんにちは。
日頃大きなkubeconfigファイルに悩まされているといった大変稀有な方に朗報です。
kubeconfigファイルを分割するツールを作りました!
おそらく大半の人が必要としないツールでしょう。
使い方
早速ですが、以下使い方です。
- このリポジトリをクローンします。
- 分割したいkubeconfigファイルをリポジトリに配置します。
- ツールをビルドして実行します。
go build main.go
./main
- 分割されたkubeconfigファイルは、/tmpディレクトリにコンテキストの数だけ作成されます。
その際、OSの一時ディレクトリにkubeconfigNという連番形式でファイルが作成されます。
使用例
まず、分割対象ファイルを見てみましょう。
3つのcontextからなるkubeconfigファイルであることが分かりますね。
$ ls -l config
-rw-r--r-- 1 stuff stuff 16631 Jun 1 05:17 config
$ export KUBECONFIG=./config
$ kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
* primary v1270-cluster kubernetes-admin1
secondary1 v1262-cluster kubernetes-admin2
secondary2 v1252-cluster kubernetes-admin3
次に本ツールでファイルを分割します。
$ go run main.go
$ ls -l /tmp/kubeconfig*
-rw------- 1 stuff stuff 5602 Jun 1 05:18 /tmp/kubeconfig0
-rw------- 1 stuff stuff 5601 Jun 1 05:18 /tmp/kubeconfig1
-rw------- 1 stuff stuff 5605 Jun 1 05:18 /tmp/kubeconfig2
早速確認してみましょう。
まずそれぞれのファイルのcontextを見てみます。
問題なく分割できてますね。
$ kubectl --kubeconfig /tmp/kubeconfig0 config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
primary v1270-cluster kubernetes-admin1
$ kubectl --kubeconfig /tmp/kubeconfig1 config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
secondary1 v1262-cluster kubernetes-admin2
$ kubectl --kubeconfig /tmp/kubeconfig2 config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
secondary2 v1252-cluster kubernetes-admin3
次にきちんと各Clusterにアクセスできるのかを確認します。
うん、うん、問題ないですね!
$ kubectl --kubeconfig /tmp/kubeconfig0 --context primary get node
NAME STATUS ROLES AGE VERSION
k8s-master Ready control-plane 49d v1.27.0
k8s-worker Ready <none> 49d v1.27.0
$ kubectl --kubeconfig /tmp/kubeconfig1 --context secondary1 get node
NAME STATUS ROLES AGE VERSION
cks-master Ready control-plane 256d v1.26.2
cks-worker Ready <none> 256d v1.26.2
$ kubectl --kubeconfig /tmp/kubeconfig2 --context secondary2 get node
NAME STATUS ROLES AGE VERSION
v1252-master Ready control-plane 245d v1.25.2
v1252-worker Ready <none> 245d v1.25.2
さいごに
kubeconfigファイルを分割したいなあといった滅多にない要望があれば、是非使ってみてください!
Discussion