kubernetes-client/java で context を切り替える

Javaからk8s扱ってたんだけどcontextの切り替えが良くわからなくて結局コード読んで調べた。

正解は config 作ってそこでsetContextするだった。 kubectl config だとcontext切り替え時はset-contextは罠でuse-context使うんだけどプログラムからはsetContextでしたね〜 難しい

var kubeConfigPath = System.getenv("HOME") + "/.kube/config";
var config = KubeConfig.loadKubeConfig(new FileReader(kubeConfigPath));

// Staging 用のContext にして API 作成
config.setContext("staging");
var stagingApi = new CoreV1Api(ClientBuilder.kubeconfig(config).build());

// production 用のContext にして API 作成
config.setContext("production");
var productionApi = new CoreV1Api(ClientBuilder.kubeconfig(config).build());