Forked from
Eclipse Projects / xfsc / Personal Credential Manager - Cloud / Plugin Kubernetes Operator
3 commits behind the upstream repository.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
config.go 850 B
package kubernetes
import (
"errors"
"github.com/spf13/viper"
"k8s.io/client-go/kubernetes"
k8rest "k8s.io/client-go/rest"
"k8s.io/client-go/tools/clientcmd"
)
var client *kubernetes.Clientset
func InitializeKubernetes() error {
config, err := k8rest.InClusterConfig()
if viper.GetBool("OVERRIDE_INCLUSTER") || (err != nil && errors.Is(err, k8rest.ErrNotInCluster)) {
file := viper.GetString("KUBE_FILE")
masterUrl := viper.GetString("KUBE_CLUSTER_URL")
config, err = clientcmd.BuildConfigFromFlags(masterUrl, file)
}
if err != nil {
return errors.Join(err, errors.New("error building kubernetes config"))
}
// creates the clientset
clientset, err := kubernetes.NewForConfig(config)
if err != nil {
return errors.Join(err, errors.New("error creating kubernetes client from config"))
}
client = clientset
return nil
}