mirror of
https://github.com/edgelesssys/constellation.git
synced 2024-10-01 01:36:09 -04:00
83f09e1058
* implement e2e test lb * add lb e2e test to weekly schedule Signed-off-by: Fabian Kammel <fk@edgeless.systems>
41 lines
923 B
Go
41 lines
923 B
Go
/*
|
|
Copyright (c) Edgeless Systems GmbH
|
|
|
|
SPDX-License-Identifier: AGPL-3.0-only
|
|
*/
|
|
|
|
package kubectl
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
|
|
"k8s.io/client-go/kubernetes"
|
|
"k8s.io/client-go/tools/clientcmd"
|
|
)
|
|
|
|
// New creates a new k8s client. The kube config file is expected to be set
|
|
// via environment variable KUBECONFIG or located at ./constellation-admin.conf.
|
|
func New() (*kubernetes.Clientset, error) {
|
|
cfgPath := ""
|
|
if envPath := os.Getenv("KUBECONFIG"); envPath != "" {
|
|
cfgPath = envPath
|
|
fmt.Printf("K8s config path empty. Using environment variable %s=%s.\n", "KUBECONFIG", envPath)
|
|
} else {
|
|
cfgPath = "constellation-admin.conf"
|
|
fmt.Printf("K8s config path empty. Assuming '%s'.\n", cfgPath)
|
|
}
|
|
|
|
kubeConfig, err := clientcmd.BuildConfigFromFlags("", cfgPath)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
k8sClient, err := kubernetes.NewForConfig(kubeConfig)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return k8sClient, nil
|
|
}
|