Added some ctl boilerplate
This commit is contained in:
50
clitools/pkg/kube/clients.go
Normal file
50
clitools/pkg/kube/clients.go
Normal file
@@ -0,0 +1,50 @@
|
||||
package kube
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
monov1alpha1 "undecided.project/monok8s/pkg/apis/monok8s/v1alpha1"
|
||||
apiextensionsclientset "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
|
||||
"k8s.io/cli-runtime/pkg/genericclioptions"
|
||||
"k8s.io/client-go/dynamic"
|
||||
kubernetes "k8s.io/client-go/kubernetes"
|
||||
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
|
||||
"k8s.io/client-go/rest"
|
||||
)
|
||||
|
||||
type Clients struct {
|
||||
Config *rest.Config
|
||||
Kubernetes kubernetes.Interface
|
||||
Dynamic dynamic.Interface
|
||||
APIExtensions apiextensionsclientset.Interface
|
||||
RESTClientGetter genericclioptions.RESTClientGetter
|
||||
}
|
||||
|
||||
func NewClients(flags *genericclioptions.ConfigFlags) (*Clients, error) {
|
||||
cfg, err := flags.ToRESTConfig()
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("build rest config: %w", err)
|
||||
}
|
||||
kubeClient, err := kubernetes.NewForConfig(cfg)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("build kubernetes client: %w", err)
|
||||
}
|
||||
dyn, err := dynamic.NewForConfig(cfg)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("build dynamic client: %w", err)
|
||||
}
|
||||
ext, err := apiextensionsclientset.NewForConfig(cfg)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("build apiextensions client: %w", err)
|
||||
}
|
||||
return &Clients{Config: cfg, Kubernetes: kubeClient, Dynamic: dyn, APIExtensions: ext, RESTClientGetter: flags}, nil
|
||||
}
|
||||
|
||||
func Scheme() *runtime.Scheme {
|
||||
scheme := runtime.NewScheme()
|
||||
utilruntime.Must(clientgoscheme.AddToScheme(scheme))
|
||||
utilruntime.Must(monov1alpha1.AddToScheme(scheme))
|
||||
return scheme
|
||||
}
|
||||
Reference in New Issue
Block a user