@@ -0,0 +1,34 @@
|
||||
package k8s
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/omnex/control-plane/api/internal/config"
|
||||
|
||||
"k8s.io/client-go/kubernetes"
|
||||
"k8s.io/client-go/rest"
|
||||
"k8s.io/client-go/tools/clientcmd"
|
||||
)
|
||||
|
||||
func NewClient(cfg *config.Config) (*kubernetes.Clientset, error) {
|
||||
var (
|
||||
k8sCfg *rest.Config
|
||||
err error
|
||||
)
|
||||
|
||||
if cfg.Kubeconfig != "" {
|
||||
k8sCfg, err = clientcmd.BuildConfigFromFlags("", cfg.Kubeconfig)
|
||||
} else {
|
||||
k8sCfg, err = rest.InClusterConfig()
|
||||
}
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("k8s config: %w", err)
|
||||
}
|
||||
|
||||
client, err := kubernetes.NewForConfig(k8sCfg)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("k8s clientset: %w", err)
|
||||
}
|
||||
|
||||
return client, nil
|
||||
}
|
||||
Reference in New Issue
Block a user