Files
capsule/pkg/webhook/utils/kubernetes_version.go
T
078588acb5 migrating service webhook to controller p1 (#130)
migrating service webhook to controller p2

migrating service webhook to controller p3. add tests

Using an abstract reconciler to avoid copy/paste code

update tests. remove service_labels webhook. fix bug in sync labels\endpoint func

apply review notes

disable EndpointSlicesLabelsReconciler for kubernetes versions <=1.16

Co-authored-by: Maksim Fedotov <m_fedotov@wargaming.net>
2020-11-10 19:43:30 +03:00

36 lines
747 B
Go

package utils
import (
"path/filepath"
"strconv"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/rest"
"k8s.io/client-go/tools/clientcmd"
"k8s.io/client-go/util/homedir"
)
func GetK8sVersion() (major, minor int, ver string, err error) {
cfg, err := rest.InClusterConfig()
if err != nil {
kubeconfig := filepath.Join(homedir.HomeDir(), ".kube", "config")
cfg, err = clientcmd.BuildConfigFromFlags("", kubeconfig)
}
if err != nil {
return 0, 0, "", err
}
client, err := kubernetes.NewForConfig(cfg)
if err != nil {
return 0, 0, "", err
}
v, err := client.Discovery().ServerVersion()
if err != nil {
return 0, 0, "", err
}
major, _ = strconv.Atoi(v.Major)
minor, _ = strconv.Atoi(v.Minor)
ver = v.String()
return
}