pkg/k8s/utils.go (22 lines of code) (raw):
package k8s
import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/types"
"k8s.io/client-go/discovery"
)
const (
unknownK8sVersion = "UNKNOWN_K8S_VERSION"
)
// NamespacedName returns the namespaced name for k8s objects
func NamespacedName(obj metav1.Object) types.NamespacedName {
return types.NamespacedName{
Namespace: obj.GetNamespace(),
Name: obj.GetName(),
}
}
// ServerVersion returns the version for k8s server
// the server version will be used to help App Mesh team to identify
// the platform Envoy is running on to provide better user experience
func ServerVersion(client discovery.ServerVersionInterface) string {
versionInfo, err := client.ServerVersion()
if err != nil {
return unknownK8sVersion
}
return versionInfo.GitVersion
}