constellation/e2e/internal/kubectl/kubectl.go
Daniel Weiße 690b50b29d
dev-docs: Go package docs (#958)
* Remove unused package

* Add Go package docs to most packages

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
Signed-off-by: Fabian Kammel <fk@edgeless.systems>
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
Co-authored-by: Fabian Kammel <fk@edgeless.systems>
2023-01-19 15:57:50 +01:00

43 lines
1.0 KiB
Go

/*
Copyright (c) Edgeless Systems GmbH
SPDX-License-Identifier: AGPL-3.0-only
*/
// Provides functionality to easily interact with the K8s API, which can be used
// from any e2e test.
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
}