imago
imago copied to clipboard
How to configure external kube cluster inside kube cluster
We have 2 kube clusters. In first we have jenkins with imago which deploy jobs on second kube cluster. Problem is imago can not see second cluster because he ignore kubeConfig:
func inClusterClientPossible() bool {
fi, err := os.Stat("/var/run/secrets/kubernetes.io/serviceaccount/token")
return os.Getenv("KUBERNETES_SERVICE_HOST") != "" &&
os.Getenv("KUBERNETES_SERVICE_PORT") != "" &&
err == nil && !fi.IsDir()
}
I think there should be option to use kubeConfig even it is inside another kube cluster
if inClusterClientPossible() {
//kubeconfig is ignored
clusterConfig, err = rest.InClusterConfig()
if err != nil {
return nil, err
}
if err = setNamespace(true); err != nil {
return nil, err
}
} else {
clusterConfig, err = clientcmd.BuildConfigFromFlags("", kubeconfig)
if err != nil {
return nil, err
}
if err = setNamespace(false); err != nil {
return nil, err
}
}