mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-24 16:03:43 +08:00
feat(apigateway): report k3s environment (#21198)
This commit is contained in:
@@ -21,6 +21,9 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"k8s.io/client-go/kubernetes"
|
||||
"k8s.io/client-go/rest"
|
||||
|
||||
"yunion.io/x/jsonutils"
|
||||
"yunion.io/x/log"
|
||||
"yunion.io/x/pkg/errors"
|
||||
@@ -76,6 +79,7 @@ type sReport struct {
|
||||
|
||||
const (
|
||||
RUNNING_ENV_KUBERNETES = "kubernetes"
|
||||
RUNNING_ENV_K3S = "k3s"
|
||||
RUNNING_ENV_DOCKER_COMPOSE = "docker-compose"
|
||||
RUNNING_ENV_DOCKER_COMPOSE_BAREMETAL = "docker-compose-baremetal"
|
||||
RUNNING_ENV_UNKNOWN = "unknown"
|
||||
@@ -118,8 +122,31 @@ func isInsideKubernetes() bool {
|
||||
return true
|
||||
}
|
||||
|
||||
func getK8sVersion() (string, error) {
|
||||
cfg, err := rest.InClusterConfig()
|
||||
if err != nil {
|
||||
return "", errors.Wrap(err, "get k8s config")
|
||||
}
|
||||
client, err := kubernetes.NewForConfig(cfg)
|
||||
if err != nil {
|
||||
return "", errors.Wrap(err, "get k8s client")
|
||||
}
|
||||
ver, err := client.ServerVersion()
|
||||
if err != nil {
|
||||
return "", errors.Wrap(err, "get k8s version")
|
||||
}
|
||||
return ver.String(), nil
|
||||
}
|
||||
|
||||
func getRunningEnv() string {
|
||||
if isInsideKubernetes() {
|
||||
ver, err := getK8sVersion()
|
||||
if err != nil {
|
||||
log.Errorf("get k8s version: %v", err)
|
||||
}
|
||||
if strings.Contains(ver, "k3s") {
|
||||
return RUNNING_ENV_K3S
|
||||
}
|
||||
return RUNNING_ENV_KUBERNETES
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user