mirror of
https://github.com/kubevela/kubevela.git
synced 2026-05-17 23:07:34 +00:00
46 lines
1.0 KiB
Go
46 lines
1.0 KiB
Go
package util
|
|
|
|
import (
|
|
"k8s.io/apimachinery/pkg/api/meta"
|
|
"k8s.io/cli-runtime/pkg/genericclioptions"
|
|
"k8s.io/client-go/discovery"
|
|
"k8s.io/client-go/rest"
|
|
"k8s.io/client-go/tools/clientcmd"
|
|
)
|
|
|
|
type Factory interface {
|
|
genericclioptions.RESTClientGetter
|
|
}
|
|
|
|
type factoryImpl struct {
|
|
clientGetter genericclioptions.RESTClientGetter
|
|
}
|
|
|
|
func (f *factoryImpl) ToRESTConfig() (*rest.Config, error) {
|
|
return f.clientGetter.ToRESTConfig()
|
|
}
|
|
|
|
func (f *factoryImpl) ToRESTMapper() (meta.RESTMapper, error) {
|
|
return f.clientGetter.ToRESTMapper()
|
|
}
|
|
|
|
func (f *factoryImpl) ToDiscoveryClient() (discovery.CachedDiscoveryInterface, error) {
|
|
return f.clientGetter.ToDiscoveryClient()
|
|
}
|
|
|
|
func (f *factoryImpl) ToRawKubeConfigLoader() clientcmd.ClientConfig {
|
|
return f.clientGetter.ToRawKubeConfigLoader()
|
|
}
|
|
|
|
func NewFactory(clientGetter genericclioptions.RESTClientGetter) Factory {
|
|
if clientGetter == nil {
|
|
panic("attempt to instantiate client_access_factory with nil clientGetter")
|
|
}
|
|
|
|
f := &factoryImpl{
|
|
clientGetter: clientGetter,
|
|
}
|
|
|
|
return f
|
|
}
|