Files
open-cluster-management/test/framework/common.go
xuezhao 6c4292b1bc Refactor tester to e2e framework. (#565)
Signed-off-by: xuezhaojun <zxue@redhat.com>
2024-07-24 01:31:58 +00:00

94 lines
3.0 KiB
Go

package framework
import (
"fmt"
apiextensionsclient "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
"k8s.io/apimachinery/pkg/api/meta"
"k8s.io/client-go/dynamic"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/rest"
"sigs.k8s.io/controller-runtime/pkg/client/apiutil"
addonclient "open-cluster-management.io/api/client/addon/clientset/versioned"
clusterclient "open-cluster-management.io/api/client/cluster/clientset/versioned"
operatorclient "open-cluster-management.io/api/client/operator/clientset/versioned"
workv1client "open-cluster-management.io/api/client/work/clientset/versioned"
)
type Images struct {
RegistrationImage string
WorkImage string
SingletonImage string
}
// OCMClients contains every kind of client that we need to interact with ocm components
type OCMClients struct {
KubeClient kubernetes.Interface
APIExtensionsClient apiextensionsclient.Interface
OperatorClient operatorclient.Interface
ClusterClient clusterclient.Interface
WorkClient workv1client.Interface
AddonClient addonclient.Interface
DynamicClient dynamic.Interface
RestMapper meta.RESTMapper
}
func NewOCMClients(clusterCfg *rest.Config) (*OCMClients, error) {
kubeClient, err := kubernetes.NewForConfig(clusterCfg)
if err != nil {
return nil, fmt.Errorf("failed to create managed cluster client: %w", err)
}
httpClient, err := rest.HTTPClientFor(clusterCfg)
if err != nil {
return nil, fmt.Errorf("failed to create managed cluster http client: %w", err)
}
restMapper, err := apiutil.NewDynamicRESTMapper(clusterCfg, httpClient)
if err != nil {
return nil, fmt.Errorf("failed to create managed cluster rest mapper: %w", err)
}
dynamicClient, err := dynamic.NewForConfig(clusterCfg)
if err != nil {
return nil, fmt.Errorf("failed to create managed cluster dynamic client: %w", err)
}
apiExtensionsClient, err := apiextensionsclient.NewForConfig(clusterCfg)
if err != nil {
return nil, fmt.Errorf("failed to create managed cluster api extensions client: %w", err)
}
operatorClient, err := operatorclient.NewForConfig(clusterCfg)
if err != nil {
return nil, fmt.Errorf("failed to create managed cluster operator client: %w", err)
}
clusterClient, err := clusterclient.NewForConfig(clusterCfg)
if err != nil {
return nil, fmt.Errorf("failed to create managed cluster cluster client: %w", err)
}
workClient, err := workv1client.NewForConfig(clusterCfg)
if err != nil {
return nil, fmt.Errorf("failed to create managed cluster work client: %w", err)
}
addonClient, err := addonclient.NewForConfig(clusterCfg)
if err != nil {
return nil, fmt.Errorf("failed to create managed cluster addon client: %w", err)
}
return &OCMClients{
KubeClient: kubeClient,
APIExtensionsClient: apiExtensionsClient,
OperatorClient: operatorClient,
ClusterClient: clusterClient,
WorkClient: workClient,
AddonClient: addonClient,
DynamicClient: dynamicClient,
RestMapper: restMapper,
}, nil
}