rename membercluster api to cluster

Signed-off-by: Kevin Wang <kevinwzf0126@gmail.com>
This commit is contained in:
Kevin Wang 2021-01-22 22:20:08 +08:00 committed by Hongcai Ren
parent eb194e9cd5
commit da394ab07a
27 changed files with 149 additions and 149 deletions

View File

@ -6,14 +6,14 @@ metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.4.1
creationTimestamp: null
name: memberclusters.membercluster.karmada.io
name: memberclusters.cluster.karmada.io
spec:
group: membercluster.karmada.io
group: cluster.karmada.io
names:
kind: MemberCluster
listKind: MemberClusterList
plural: memberclusters
singular: membercluster
singular: cluster
scope: Cluster
versions:
- additionalPrinterColumns:

View File

@ -1,4 +1,4 @@
apiVersion: membercluster.karmada.io/v1alpha1
apiVersion: cluster.karmada.io/v1alpha1
kind: MemberCluster
metadata:
name: cluster-foo

View File

@ -89,7 +89,7 @@ func setupControllers(mgr controllerruntime.Manager, stopChan <-chan struct{}) {
EventRecorder: mgr.GetEventRecorderFor(membercluster.ControllerName),
}
if err := MemberClusterController.SetupWithManager(mgr); err != nil {
klog.Fatalf("Failed to setup membercluster controller: %v", err)
klog.Fatalf("Failed to setup cluster controller: %v", err)
}
MemberClusterStatusController := &status.MemberClusterStatusController{

View File

@ -9,7 +9,7 @@ CODEGEN_PKG=${CODEGEN_PKG:-$(cd "${SCRIPT_ROOT}"; ls -d -1 ./vendor/k8s.io/code-
bash "${CODEGEN_PKG}"/generate-groups.sh "deepcopy,client,informer,lister" \
github.com/karmada-io/karmada/pkg/generated github.com/karmada-io/karmada/pkg/apis \
"propagationstrategy:v1alpha1 membercluster:v1alpha1" \
"propagationstrategy:v1alpha1 cluster:v1alpha1" \
--output-base "$(dirname "${BASH_SOURCE[0]}")/../../../.." \
--go-header-file "${SCRIPT_ROOT}"/hack/boilerplate/boilerplate.go.txt
@ -17,8 +17,8 @@ echo "Generating with register-gen"
GO111MODULE=on go install k8s.io/code-generator/cmd/register-gen
register-gen \
--go-header-file hack/boilerplate/boilerplate.go.txt \
--input-dirs=github.com/karmada-io/karmada/pkg/apis/membercluster/v1alpha1 \
--output-package=github.com/karmada-io/karmada/pkg/apis/membercluster/v1alpha1
--input-dirs=github.com/karmada-io/karmada/pkg/apis/cluster/v1alpha1 \
--output-package=github.com/karmada-io/karmada/pkg/apis/cluster/v1alpha1
register-gen \
--go-header-file hack/boilerplate/boilerplate.go.txt \
--input-dirs=github.com/karmada-io/karmada/pkg/apis/propagationstrategy/v1alpha1 \

View File

@ -1,4 +1,4 @@
// Package v1alpha1 is the v1alpha1 version of the API.
// +k8s:deepcopy-gen=package,register
// +groupName=membercluster.karmada.io
// +groupName=cluster.karmada.io
package v1alpha1

View File

@ -14,21 +14,21 @@ import (
// +kubebuilder:printcolumn:JSONPath=`.status.conditions[?(@.type=="Ready")].status`,name="Ready",type=string
// +kubebuilder:printcolumn:JSONPath=`.metadata.creationTimestamp`,name="Age",type=date
// MemberCluster represents the desire state and status of a member cluster.
type MemberCluster struct {
// Cluster represents the desire state and status of a member cluster.
type Cluster struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
// Spec represents the specification of the desired behavior of member cluster.
Spec MemberClusterSpec `json:"spec"`
Spec ClusterSpec `json:"spec"`
// Status represents the status of member cluster.
// +optional
Status MemberClusterStatus `json:"status,omitempty"`
Status ClusterStatus `json:"status,omitempty"`
}
// MemberClusterSpec defines the desired state of a member cluster.
type MemberClusterSpec struct {
// ClusterSpec defines the desired state of a member cluster.
type ClusterSpec struct {
// ManageMode specifies the relationship between control plane and member cluster,
// the mode determines how to reach each other.
// +optional
@ -99,9 +99,9 @@ const (
ClusterConditionReady = "Ready"
)
// MemberClusterStatus contains information about the current status of a
// ClusterStatus contains information about the current status of a
// cluster updated periodically by cluster controller.
type MemberClusterStatus struct {
type ClusterStatus struct {
// KubernetesVersion represents version of the member cluster.
// +optional
KubernetesVersion string `json:"kubernetesVersion,omitempty"`
@ -142,11 +142,11 @@ type NodeSummary struct {
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// MemberClusterList contains a list of member cluster
type MemberClusterList struct {
// ClusterList contains a list of member cluster
type ClusterList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
// Items holds a list of MemberCluster.
Items []MemberCluster `json:"items"`
// Items holds a list of Cluster.
Items []Cluster `json:"items"`
}

View File

@ -48,7 +48,7 @@ func (in *LocalSecretReference) DeepCopy() *LocalSecretReference {
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MemberCluster) DeepCopyInto(out *MemberCluster) {
func (in *Cluster) DeepCopyInto(out *Cluster) {
*out = *in
out.TypeMeta = in.TypeMeta
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
@ -57,18 +57,18 @@ func (in *MemberCluster) DeepCopyInto(out *MemberCluster) {
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemberCluster.
func (in *MemberCluster) DeepCopy() *MemberCluster {
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Cluster.
func (in *Cluster) DeepCopy() *Cluster {
if in == nil {
return nil
}
out := new(MemberCluster)
out := new(Cluster)
in.DeepCopyInto(out)
return out
}
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *MemberCluster) DeepCopyObject() runtime.Object {
func (in *Cluster) DeepCopyObject() runtime.Object {
if c := in.DeepCopy(); c != nil {
return c
}
@ -76,13 +76,13 @@ func (in *MemberCluster) DeepCopyObject() runtime.Object {
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MemberClusterList) DeepCopyInto(out *MemberClusterList) {
func (in *ClusterList) DeepCopyInto(out *ClusterList) {
*out = *in
out.TypeMeta = in.TypeMeta
in.ListMeta.DeepCopyInto(&out.ListMeta)
if in.Items != nil {
in, out := &in.Items, &out.Items
*out = make([]MemberCluster, len(*in))
*out = make([]Cluster, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
@ -90,18 +90,18 @@ func (in *MemberClusterList) DeepCopyInto(out *MemberClusterList) {
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemberClusterList.
func (in *MemberClusterList) DeepCopy() *MemberClusterList {
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterList.
func (in *ClusterList) DeepCopy() *ClusterList {
if in == nil {
return nil
}
out := new(MemberClusterList)
out := new(ClusterList)
in.DeepCopyInto(out)
return out
}
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *MemberClusterList) DeepCopyObject() runtime.Object {
func (in *ClusterList) DeepCopyObject() runtime.Object {
if c := in.DeepCopy(); c != nil {
return c
}
@ -109,7 +109,7 @@ func (in *MemberClusterList) DeepCopyObject() runtime.Object {
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MemberClusterSpec) DeepCopyInto(out *MemberClusterSpec) {
func (in *ClusterSpec) DeepCopyInto(out *ClusterSpec) {
*out = *in
if in.SecretRef != nil {
in, out := &in.SecretRef, &out.SecretRef
@ -126,18 +126,18 @@ func (in *MemberClusterSpec) DeepCopyInto(out *MemberClusterSpec) {
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemberClusterSpec.
func (in *MemberClusterSpec) DeepCopy() *MemberClusterSpec {
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterSpec.
func (in *ClusterSpec) DeepCopy() *ClusterSpec {
if in == nil {
return nil
}
out := new(MemberClusterSpec)
out := new(ClusterSpec)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MemberClusterStatus) DeepCopyInto(out *MemberClusterStatus) {
func (in *ClusterStatus) DeepCopyInto(out *ClusterStatus) {
*out = *in
if in.APIEnablements != nil {
in, out := &in.APIEnablements, &out.APIEnablements
@ -157,12 +157,12 @@ func (in *MemberClusterStatus) DeepCopyInto(out *MemberClusterStatus) {
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemberClusterStatus.
func (in *MemberClusterStatus) DeepCopy() *MemberClusterStatus {
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterStatus.
func (in *ClusterStatus) DeepCopy() *ClusterStatus {
if in == nil {
return nil
}
out := new(MemberClusterStatus)
out := new(ClusterStatus)
in.DeepCopyInto(out)
return out
}

View File

@ -9,7 +9,7 @@ import (
)
// GroupName specifies the group name used to register the objects.
const GroupName = "membercluster.karmada.io"
const GroupName = "cluster.karmada.io"
// GroupVersion specifies the group and the version used to register the objects.
var GroupVersion = v1.GroupVersion{Group: GroupName, Version: "v1alpha1"}
@ -42,8 +42,8 @@ func init() {
// Adds the list of known types to Scheme.
func addKnownTypes(scheme *runtime.Scheme) error {
scheme.AddKnownTypes(SchemeGroupVersion,
&MemberCluster{},
&MemberClusterList{},
&Cluster{},
&ClusterList{},
)
// AddToGroupVersion allows the serialization of client types like ListOptions.
v1.AddToGroupVersion(scheme, SchemeGroupVersion)

View File

@ -16,7 +16,7 @@ import (
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
"sigs.k8s.io/controller-runtime/pkg/predicate"
"github.com/karmada-io/karmada/pkg/apis/membercluster/v1alpha1"
"github.com/karmada-io/karmada/pkg/apis/cluster/v1alpha1"
propagationstrategy "github.com/karmada-io/karmada/pkg/apis/propagationstrategy/v1alpha1"
"github.com/karmada-io/karmada/pkg/util"
"github.com/karmada-io/karmada/pkg/util/names"
@ -166,7 +166,7 @@ func (c *Controller) dispatchPropagationWork(propagationWork *propagationstrateg
}
// syncToMemberClusters ensures that the state of the given object is synchronized to member clusters.
func (c *Controller) syncToMemberClusters(memberCluster *v1alpha1.MemberCluster, propagationWork *propagationstrategy.PropagationWork) error {
func (c *Controller) syncToMemberClusters(memberCluster *v1alpha1.Cluster, propagationWork *propagationstrategy.PropagationWork) error {
memberClusterDynamicClient, err := util.NewClusterDynamicClientSet(memberCluster, c.KubeClientSet)
if err != nil {
return err

View File

@ -15,21 +15,21 @@ import (
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
"github.com/karmada-io/karmada/pkg/apis/membercluster/v1alpha1"
"github.com/karmada-io/karmada/pkg/apis/cluster/v1alpha1"
"github.com/karmada-io/karmada/pkg/util"
"github.com/karmada-io/karmada/pkg/util/names"
)
const (
// ControllerName is the controller name that will be used when reporting events.
ControllerName = "membercluster-controller"
ControllerName = "cluster-controller"
executionSpaceLabelKey = "karmada.io/executionspace"
executionSpaceLabelValue = ""
)
// Controller is to sync MemberCluster.
// Controller is to sync Cluster.
type Controller struct {
client.Client // used to operate MemberCluster resources.
client.Client // used to operate Cluster resources.
KubeClientSet kubernetes.Interface // used to get kubernetes resources.
EventRecorder record.EventRecorder
}
@ -40,7 +40,7 @@ type Controller struct {
func (c *Controller) Reconcile(req controllerruntime.Request) (controllerruntime.Result, error) {
klog.V(4).Infof("Reconciling memberCluster %s", req.NamespacedName.Name)
memberCluster := &v1alpha1.MemberCluster{}
memberCluster := &v1alpha1.Cluster{}
if err := c.Client.Get(context.TODO(), req.NamespacedName, memberCluster); err != nil {
// The resource may no longer exist, in which case we stop processing.
if errors.IsNotFound(err) {
@ -59,10 +59,10 @@ func (c *Controller) Reconcile(req controllerruntime.Request) (controllerruntime
// SetupWithManager creates a controller and register to controller manager.
func (c *Controller) SetupWithManager(mgr controllerruntime.Manager) error {
return controllerruntime.NewControllerManagedBy(mgr).For(&v1alpha1.MemberCluster{}).Complete(c)
return controllerruntime.NewControllerManagedBy(mgr).For(&v1alpha1.Cluster{}).Complete(c)
}
func (c *Controller) syncMemberCluster(memberCluster *v1alpha1.MemberCluster) (controllerruntime.Result, error) {
func (c *Controller) syncMemberCluster(memberCluster *v1alpha1.Cluster) (controllerruntime.Result, error) {
// create execution space
err := c.createExecutionSpace(memberCluster)
if err != nil {
@ -73,7 +73,7 @@ func (c *Controller) syncMemberCluster(memberCluster *v1alpha1.MemberCluster) (c
return c.ensureFinalizer(memberCluster)
}
func (c *Controller) removeMemberCluster(memberCluster *v1alpha1.MemberCluster) (controllerruntime.Result, error) {
func (c *Controller) removeMemberCluster(memberCluster *v1alpha1.Cluster) (controllerruntime.Result, error) {
err := c.removeExecutionSpace(memberCluster)
if apierrors.IsNotFound(err) {
return c.removeFinalizer(memberCluster)
@ -96,7 +96,7 @@ func (c *Controller) removeMemberCluster(memberCluster *v1alpha1.MemberCluster)
}
// removeExecutionSpace delete the given execution space
func (c *Controller) removeExecutionSpace(memberCluster *v1alpha1.MemberCluster) error {
func (c *Controller) removeExecutionSpace(memberCluster *v1alpha1.Cluster) error {
executionSpace, err := names.GenerateExecutionSpaceName(memberCluster.Name)
if err != nil {
klog.Errorf("Failed to generate execution space name for member cluster %s, err is %v", memberCluster.Name, err)
@ -111,7 +111,7 @@ func (c *Controller) removeExecutionSpace(memberCluster *v1alpha1.MemberCluster)
}
// ensureRemoveExecutionSpace make sure the given execution space has been deleted
func (c *Controller) ensureRemoveExecutionSpace(memberCluster *v1alpha1.MemberCluster) (bool, error) {
func (c *Controller) ensureRemoveExecutionSpace(memberCluster *v1alpha1.Cluster) (bool, error) {
executionSpace, err := names.GenerateExecutionSpaceName(memberCluster.Name)
if err != nil {
klog.Errorf("Failed to generate execution space name for member cluster %s, err is %v", memberCluster.Name, err)
@ -129,7 +129,7 @@ func (c *Controller) ensureRemoveExecutionSpace(memberCluster *v1alpha1.MemberCl
return true, nil
}
func (c *Controller) removeFinalizer(memberCluster *v1alpha1.MemberCluster) (controllerruntime.Result, error) {
func (c *Controller) removeFinalizer(memberCluster *v1alpha1.Cluster) (controllerruntime.Result, error) {
if !controllerutil.ContainsFinalizer(memberCluster, util.MemberClusterControllerFinalizer) {
return controllerruntime.Result{}, nil
}
@ -143,7 +143,7 @@ func (c *Controller) removeFinalizer(memberCluster *v1alpha1.MemberCluster) (con
return controllerruntime.Result{}, nil
}
func (c *Controller) ensureFinalizer(memberCluster *v1alpha1.MemberCluster) (controllerruntime.Result, error) {
func (c *Controller) ensureFinalizer(memberCluster *v1alpha1.Cluster) (controllerruntime.Result, error) {
if controllerutil.ContainsFinalizer(memberCluster, util.MemberClusterControllerFinalizer) {
return controllerruntime.Result{}, nil
}
@ -158,7 +158,7 @@ func (c *Controller) ensureFinalizer(memberCluster *v1alpha1.MemberCluster) (con
}
// createExecutionSpace create member cluster execution space when member cluster joined
func (c *Controller) createExecutionSpace(memberCluster *v1alpha1.MemberCluster) error {
func (c *Controller) createExecutionSpace(memberCluster *v1alpha1.Cluster) error {
executionSpace, err := names.GenerateExecutionSpaceName(memberCluster.Name)
if err != nil {
klog.Errorf("Failed to generate execution space name for member cluster %s, err is %v", memberCluster.Name, err)
@ -177,7 +177,7 @@ func (c *Controller) createExecutionSpace(memberCluster *v1alpha1.MemberCluster)
}
_, err = c.KubeClientSet.CoreV1().Namespaces().Create(context.TODO(), memberClusterES, v1.CreateOptions{})
if err != nil {
klog.Errorf("Failed to create execution space for membercluster %v", memberCluster.Name)
klog.Errorf("Failed to create execution space for cluster %v", memberCluster.Name)
return err
}
} else {

View File

@ -17,13 +17,13 @@ import (
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
"github.com/karmada-io/karmada/pkg/apis/membercluster/v1alpha1"
"github.com/karmada-io/karmada/pkg/apis/cluster/v1alpha1"
"github.com/karmada-io/karmada/pkg/util"
)
const (
// ControllerName is the controller name that will be used when reporting events.
ControllerName = "membercluster-status-controller"
ControllerName = "cluster-status-controller"
clusterReady = "ClusterReady"
clusterHealthy = "cluster is reachable and health endpoint responded with ok"
clusterNotReady = "ClusterNotReady"
@ -32,9 +32,9 @@ const (
clusterNotReachableMsg = "cluster is not reachable"
)
// MemberClusterStatusController is to sync status of MemberCluster.
// MemberClusterStatusController is to sync status of Cluster.
type MemberClusterStatusController struct {
client.Client // used to operate MemberCluster resources.
client.Client // used to operate Cluster resources.
KubeClientSet kubernetes.Interface // used to get kubernetes resources.
EventRecorder record.EventRecorder
}
@ -45,7 +45,7 @@ type MemberClusterStatusController struct {
func (c *MemberClusterStatusController) Reconcile(req controllerruntime.Request) (controllerruntime.Result, error) {
klog.V(4).Infof("Syncing memberCluster status: %s", req.NamespacedName.String())
memberCluster := &v1alpha1.MemberCluster{}
memberCluster := &v1alpha1.Cluster{}
if err := c.Client.Get(context.TODO(), req.NamespacedName, memberCluster); err != nil {
// The resource may no longer exist, in which case we stop processing.
if errors.IsNotFound(err) {
@ -59,8 +59,8 @@ func (c *MemberClusterStatusController) Reconcile(req controllerruntime.Request)
return controllerruntime.Result{}, nil
}
// start syncing status only when the finalizer is present on the given MemberCluster to
// avoid conflict with membercluster controller.
// start syncing status only when the finalizer is present on the given Cluster to
// avoid conflict with cluster controller.
if !controllerutil.ContainsFinalizer(memberCluster, util.MemberClusterControllerFinalizer) {
klog.V(2).Infof("waiting finalizer present for member cluster: %s", memberCluster.Name)
return controllerruntime.Result{Requeue: true}, nil
@ -71,10 +71,10 @@ func (c *MemberClusterStatusController) Reconcile(req controllerruntime.Request)
// SetupWithManager creates a controller and register to controller manager.
func (c *MemberClusterStatusController) SetupWithManager(mgr controllerruntime.Manager) error {
return controllerruntime.NewControllerManagedBy(mgr).For(&v1alpha1.MemberCluster{}).Complete(c)
return controllerruntime.NewControllerManagedBy(mgr).For(&v1alpha1.Cluster{}).Complete(c)
}
func (c *MemberClusterStatusController) syncMemberClusterStatus(memberCluster *v1alpha1.MemberCluster) (controllerruntime.Result, error) {
func (c *MemberClusterStatusController) syncMemberClusterStatus(memberCluster *v1alpha1.Cluster) (controllerruntime.Result, error) {
// create a ClusterClient for the given member cluster
clusterClient, err := util.NewClusterClientSet(memberCluster, c.KubeClientSet)
if err != nil {
@ -82,7 +82,7 @@ func (c *MemberClusterStatusController) syncMemberClusterStatus(memberCluster *v
return controllerruntime.Result{Requeue: true}, err
}
var currentClusterStatus = v1alpha1.MemberClusterStatus{}
var currentClusterStatus = v1alpha1.ClusterStatus{}
// get the health status of member cluster
online, healthy := getMemberClusterHealthStatus(clusterClient)
@ -124,7 +124,7 @@ func (c *MemberClusterStatusController) syncMemberClusterStatus(memberCluster *v
}
// updateStatusIfNeeded calls updateStatus only if the status of the member cluster is not the same as the old status
func (c *MemberClusterStatusController) updateStatusIfNeeded(memberCluster *v1alpha1.MemberCluster, currentClusterStatus v1alpha1.MemberClusterStatus) (controllerruntime.Result, error) {
func (c *MemberClusterStatusController) updateStatusIfNeeded(memberCluster *v1alpha1.Cluster, currentClusterStatus v1alpha1.ClusterStatus) (controllerruntime.Result, error) {
if !equality.Semantic.DeepEqual(memberCluster.Status, currentClusterStatus) {
klog.V(4).Infof("Start to update memberCluster status: %s", memberCluster.Name)
memberCluster.Status = currentClusterStatus
@ -205,7 +205,7 @@ func generateReadyCondition(online, healthy bool) []v1.Condition {
return conditions
}
func setTransitionTime(oldClusterStatus, newClusterStatus *v1alpha1.MemberClusterStatus) {
func setTransitionTime(oldClusterStatus, newClusterStatus *v1alpha1.ClusterStatus) {
// preserve the last transition time if the status of member cluster not changed
if util.IsMemberClusterReady(oldClusterStatus) == util.IsMemberClusterReady(newClusterStatus) {
if len(oldClusterStatus.Conditions) != 0 {

View File

@ -17,7 +17,7 @@ import (
kubeclient "k8s.io/client-go/kubernetes"
"k8s.io/klog/v2"
memberclusterapi "github.com/karmada-io/karmada/pkg/apis/membercluster/v1alpha1"
memberclusterapi "github.com/karmada-io/karmada/pkg/apis/cluster/v1alpha1"
"github.com/karmada-io/karmada/pkg/apis/propagationstrategy/v1alpha1"
karmadaclientset "github.com/karmada-io/karmada/pkg/generated/clientset/versioned"
"github.com/karmada-io/karmada/pkg/karmadactl/options"
@ -51,7 +51,7 @@ var (
}
)
var resourceKind = v1alpha1.SchemeGroupVersion.WithKind("MemberCluster")
var resourceKind = v1alpha1.SchemeGroupVersion.WithKind("Cluster")
const (
// TODO(RainbowMango) token and caData key both used by command and controller.
@ -234,7 +234,7 @@ func RunJoin(cmdOut io.Writer, karmadaConfig KarmadaConfig, opts CommandJoinOpti
return nil
}
memberClusterObj := &memberclusterapi.MemberCluster{}
memberClusterObj := &memberclusterapi.Cluster{}
memberClusterObj.Name = opts.MemberClusterName
memberClusterObj.Spec.APIEndpoint = memberClusterConfig.Host
memberClusterObj.Spec.SecretRef = &memberclusterapi.LocalSecretReference{
@ -372,7 +372,7 @@ func ensureClusterRoleBindingExist(client kubeclient.Interface, clusterRoleBindi
return createdObj, nil
}
func createMemberClusterObject(controlPlaneClient *karmadaclientset.Clientset, memberClusterObj *memberclusterapi.MemberCluster, errorOnExisting bool) (*memberclusterapi.MemberCluster, error) {
func createMemberClusterObject(controlPlaneClient *karmadaclientset.Clientset, memberClusterObj *memberclusterapi.Cluster, errorOnExisting bool) (*memberclusterapi.Cluster, error) {
memberCluster, exist, err := GetMemberCluster(controlPlaneClient, memberClusterObj.Namespace, memberClusterObj.Name)
if err != nil {
klog.Errorf("failed to create member cluster object. member cluster: %s/%s, error: %v", memberClusterObj.Namespace, memberClusterObj.Name, err)
@ -398,7 +398,7 @@ func createMemberClusterObject(controlPlaneClient *karmadaclientset.Clientset, m
}
// GetMemberCluster tells if a member cluster (namespace/name) already joined to control plane.
func GetMemberCluster(client karmadaclientset.Interface, namespace string, name string) (*memberclusterapi.MemberCluster, bool, error) {
func GetMemberCluster(client karmadaclientset.Interface, namespace string, name string) (*memberclusterapi.Cluster, bool, error) {
memberCluster, err := client.MemberclusterV1alpha1().MemberClusters().Get(context.TODO(), name, metav1.GetOptions{})
if err != nil {
if apierrors.IsNotFound(err) {
@ -413,7 +413,7 @@ func GetMemberCluster(client karmadaclientset.Interface, namespace string, name
}
// CreateMemberCluster creates a new member cluster object in control plane.
func CreateMemberCluster(controlPlaneClient karmadaclientset.Interface, cluster *memberclusterapi.MemberCluster) (*memberclusterapi.MemberCluster, error) {
func CreateMemberCluster(controlPlaneClient karmadaclientset.Interface, cluster *memberclusterapi.Cluster) (*memberclusterapi.Cluster, error) {
memberCluster, err := controlPlaneClient.MemberclusterV1alpha1().MemberClusters().Create(context.TODO(), cluster, metav1.CreateOptions{})
if err != nil {
klog.Warningf("failed to create member cluster. member cluster: %s/%s, error: %v", cluster.Namespace, cluster.Name, err)

View File

@ -99,7 +99,7 @@ func (j *CommandUnjoinOption) AddFlags(flags *pflag.FlagSet) {
flags.StringVar(&j.MemberClusterKubeConfig, "member-cluster-kubeconfig", "",
"Path of the member cluster's kubeconfig.")
flags.BoolVar(&j.forceDeletion, "force", false,
"Delete membercluster and secret resources even if resources in the member cluster targeted for unjoin are not removed successfully.")
"Delete cluster and secret resources even if resources in the member cluster targeted for unjoin are not removed successfully.")
}
// RunUnjoin is the implementation of the 'unjoin' command.

View File

@ -3,44 +3,44 @@ package cache
import (
"sync"
"github.com/karmada-io/karmada/pkg/apis/membercluster/v1alpha1"
"github.com/karmada-io/karmada/pkg/apis/cluster/v1alpha1"
"github.com/karmada-io/karmada/pkg/scheduler/framework"
)
// Cache is an interface for scheduler internal cache.
type Cache interface {
AddCluster(cluster *v1alpha1.MemberCluster)
UpdateCluster(cluster *v1alpha1.MemberCluster)
DeleteCluster(cluster *v1alpha1.MemberCluster)
AddCluster(cluster *v1alpha1.Cluster)
UpdateCluster(cluster *v1alpha1.Cluster)
DeleteCluster(cluster *v1alpha1.Cluster)
// Snapshot returns a snapshot of the current clusters info
Snapshot() *Snapshot
}
type schedulerCache struct {
mutex sync.RWMutex
clusters map[string]*v1alpha1.MemberCluster
clusters map[string]*v1alpha1.Cluster
}
// NewCache instantiates a cache used only by scheduler.
func NewCache() Cache {
return &schedulerCache{
clusters: make(map[string]*v1alpha1.MemberCluster),
clusters: make(map[string]*v1alpha1.Cluster),
}
}
func (c *schedulerCache) AddCluster(cluster *v1alpha1.MemberCluster) {
func (c *schedulerCache) AddCluster(cluster *v1alpha1.Cluster) {
c.mutex.Lock()
defer c.mutex.Unlock()
c.clusters[cluster.Name] = cluster
}
func (c *schedulerCache) UpdateCluster(cluster *v1alpha1.MemberCluster) {
func (c *schedulerCache) UpdateCluster(cluster *v1alpha1.Cluster) {
c.mutex.Lock()
defer c.mutex.Unlock()
c.clusters[cluster.Name] = cluster
}
func (c *schedulerCache) DeleteCluster(cluster *v1alpha1.MemberCluster) {
func (c *schedulerCache) DeleteCluster(cluster *v1alpha1.Cluster) {
c.mutex.Lock()
defer c.mutex.Unlock()
delete(c.clusters, cluster.Name)

View File

@ -6,7 +6,7 @@ import (
"k8s.io/klog/v2"
memberclusterapi "github.com/karmada-io/karmada/pkg/apis/membercluster/v1alpha1"
memberclusterapi "github.com/karmada-io/karmada/pkg/apis/cluster/v1alpha1"
"github.com/karmada-io/karmada/pkg/apis/propagationstrategy/v1alpha1"
lister "github.com/karmada-io/karmada/pkg/generated/listers/propagationstrategy/v1alpha1"
"github.com/karmada-io/karmada/pkg/scheduler/cache"
@ -92,8 +92,8 @@ func (g *genericScheduler) findClustersThatFit(
ctx context.Context,
fwk framework.Framework,
placement *v1alpha1.Placement,
clusterInfo *cache.Snapshot) ([]*memberclusterapi.MemberCluster, error) {
var out []*memberclusterapi.MemberCluster
clusterInfo *cache.Snapshot) ([]*memberclusterapi.Cluster, error) {
var out []*memberclusterapi.Cluster
clusters := clusterInfo.GetClusters()
for _, c := range clusters {
resMap := fwk.RunFilterPlugins(ctx, placement, c.Cluster())
@ -113,7 +113,7 @@ func (g *genericScheduler) prioritizeClusters(
ctx context.Context,
fwk framework.Framework,
placement *v1alpha1.Placement,
clusters []*memberclusterapi.MemberCluster) (result framework.ClusterScoreList, err error) {
clusters []*memberclusterapi.Cluster) (result framework.ClusterScoreList, err error) {
scoresMap, err := fwk.RunScorePlugins(ctx, placement, clusters)
if err != nil {
return result, err

View File

@ -5,7 +5,7 @@ import (
"errors"
"strings"
membercluster "github.com/karmada-io/karmada/pkg/apis/membercluster/v1alpha1"
membercluster "github.com/karmada-io/karmada/pkg/apis/cluster/v1alpha1"
"github.com/karmada-io/karmada/pkg/apis/propagationstrategy/v1alpha1"
)
@ -15,10 +15,10 @@ type Framework interface {
// RunFilterPlugins runs the set of configured Filter plugins for resources on
// the given cluster.
RunFilterPlugins(ctx context.Context, placement *v1alpha1.Placement, cluster *membercluster.MemberCluster) PluginToResult
RunFilterPlugins(ctx context.Context, placement *v1alpha1.Placement, cluster *membercluster.Cluster) PluginToResult
// RunScorePlugins runs the set of configured Score plugins, it returns a map of plugin name to cores
RunScorePlugins(ctx context.Context, placement *v1alpha1.Placement, clusters []*membercluster.MemberCluster) (PluginToClusterScores, error)
RunScorePlugins(ctx context.Context, placement *v1alpha1.Placement, clusters []*membercluster.Cluster) (PluginToClusterScores, error)
}
// Plugin is the parent type for all the scheduling framework plugins.
@ -31,7 +31,7 @@ type Plugin interface {
type FilterPlugin interface {
Plugin
// Filter is called by the scheduling framework.
Filter(ctx context.Context, placement *v1alpha1.Placement, cluster *membercluster.MemberCluster) *Result
Filter(ctx context.Context, placement *v1alpha1.Placement, cluster *membercluster.Cluster) *Result
}
// Result indicates the result of running a plugin. It consists of a code, a
@ -124,7 +124,7 @@ type ScorePlugin interface {
// Score is called on each filtered cluster. It must return success and an integer
// indicating the rank of the cluster. All scoring plugins must return success or
// the resource will be rejected.
Score(ctx context.Context, placement *v1alpha1.Placement, cluster *membercluster.MemberCluster) (float64, *Result)
Score(ctx context.Context, placement *v1alpha1.Placement, cluster *membercluster.Cluster) (float64, *Result)
}
// ClusterScore represent the cluster score.

View File

@ -3,7 +3,7 @@ package clusteraffinity
import (
"context"
membercluster "github.com/karmada-io/karmada/pkg/apis/membercluster/v1alpha1"
membercluster "github.com/karmada-io/karmada/pkg/apis/cluster/v1alpha1"
"github.com/karmada-io/karmada/pkg/apis/propagationstrategy/v1alpha1"
"github.com/karmada-io/karmada/pkg/scheduler/framework"
)
@ -30,7 +30,7 @@ func (p *ClusterAffinity) Name() string {
}
// Filter checks if the cluster matched the placement cluster affinity constraint.
func (p *ClusterAffinity) Filter(ctx context.Context, placement *v1alpha1.Placement, cluster *membercluster.MemberCluster) *framework.Result {
func (p *ClusterAffinity) Filter(ctx context.Context, placement *v1alpha1.Placement, cluster *membercluster.Cluster) *framework.Result {
affinity := placement.ClusterAffinity
if affinity != nil {
for _, clusterName := range affinity.ExcludeClusters {
@ -54,6 +54,6 @@ func (p *ClusterAffinity) Filter(ctx context.Context, placement *v1alpha1.Placem
}
// Score calculates the score on the candidate cluster.
func (p *ClusterAffinity) Score(ctx context.Context, placement *v1alpha1.Placement, cluster *membercluster.MemberCluster) (float64, *framework.Result) {
func (p *ClusterAffinity) Score(ctx context.Context, placement *v1alpha1.Placement, cluster *membercluster.Cluster) (float64, *framework.Result) {
return 0, nil
}

View File

@ -7,7 +7,7 @@ import (
"k8s.io/klog/v2"
membercluster "github.com/karmada-io/karmada/pkg/apis/membercluster/v1alpha1"
membercluster "github.com/karmada-io/karmada/pkg/apis/cluster/v1alpha1"
"github.com/karmada-io/karmada/pkg/apis/propagationstrategy/v1alpha1"
"github.com/karmada-io/karmada/pkg/scheduler/framework"
plugins2 "github.com/karmada-io/karmada/pkg/scheduler/framework/plugins"
@ -52,7 +52,7 @@ func NewFramework(plugins []string) framework.Framework {
// RunFilterPlugins runs the set of configured Filter plugins for resources on the cluster.
// If any of the result is not success, the cluster is not suited for the resource.
func (frw *frameworkImpl) RunFilterPlugins(ctx context.Context, placement *v1alpha1.Placement, cluster *membercluster.MemberCluster) framework.PluginToResult {
func (frw *frameworkImpl) RunFilterPlugins(ctx context.Context, placement *v1alpha1.Placement, cluster *membercluster.Cluster) framework.PluginToResult {
result := make(framework.PluginToResult, len(frw.filterPlugins))
for _, p := range frw.filterPlugins {
pluginResult := p.Filter(ctx, placement, cluster)
@ -64,7 +64,7 @@ func (frw *frameworkImpl) RunFilterPlugins(ctx context.Context, placement *v1alp
// RunFilterPlugins runs the set of configured Filter plugins for resources on the cluster.
// If any of the result is not success, the cluster is not suited for the resource.
func (frw *frameworkImpl) RunScorePlugins(ctx context.Context, placement *v1alpha1.Placement, clusters []*membercluster.MemberCluster) (framework.PluginToClusterScores, error) {
func (frw *frameworkImpl) RunScorePlugins(ctx context.Context, placement *v1alpha1.Placement, clusters []*membercluster.Cluster) (framework.PluginToClusterScores, error) {
result := make(framework.PluginToClusterScores, len(frw.filterPlugins))
for _, p := range frw.scorePlugins {
for i, cluster := range clusters {

View File

@ -1,24 +1,24 @@
package framework
import (
"github.com/karmada-io/karmada/pkg/apis/membercluster/v1alpha1"
"github.com/karmada-io/karmada/pkg/apis/cluster/v1alpha1"
)
// ClusterInfo is cluster level aggregated information.
type ClusterInfo struct {
// Overall cluster information.
cluster *v1alpha1.MemberCluster
cluster *v1alpha1.Cluster
}
// NewClusterInfo creates a ClusterInfo object.
func NewClusterInfo(cluster *v1alpha1.MemberCluster) *ClusterInfo {
func NewClusterInfo(cluster *v1alpha1.Cluster) *ClusterInfo {
return &ClusterInfo{
cluster: cluster,
}
}
// Cluster returns overall information about this cluster.
func (n *ClusterInfo) Cluster() *v1alpha1.MemberCluster {
func (n *ClusterInfo) Cluster() *v1alpha1.Cluster {
if n == nil {
return nil
}

View File

@ -15,7 +15,7 @@ import (
"k8s.io/client-go/util/workqueue"
"k8s.io/klog/v2"
memclusterapi "github.com/karmada-io/karmada/pkg/apis/membercluster/v1alpha1"
memclusterapi "github.com/karmada-io/karmada/pkg/apis/cluster/v1alpha1"
"github.com/karmada-io/karmada/pkg/apis/propagationstrategy/v1alpha1"
karmadaclientset "github.com/karmada-io/karmada/pkg/generated/clientset/versioned"
informerfactory "github.com/karmada-io/karmada/pkg/generated/informers/externalversions"
@ -195,42 +195,42 @@ func (s *Scheduler) handleErr(err error, key interface{}) {
}
func (s *Scheduler) addCluster(obj interface{}) {
membercluster, ok := obj.(*memclusterapi.MemberCluster)
membercluster, ok := obj.(*memclusterapi.Cluster)
if !ok {
klog.Errorf("cannot convert to MemberCluster: %v", obj)
klog.Errorf("cannot convert to Cluster: %v", obj)
return
}
klog.V(3).Infof("add event for membercluster %s", membercluster.Name)
klog.V(3).Infof("add event for cluster %s", membercluster.Name)
s.schedulerCache.AddCluster(membercluster)
}
func (s *Scheduler) updateCluster(_, newObj interface{}) {
newCluster, ok := newObj.(*memclusterapi.MemberCluster)
newCluster, ok := newObj.(*memclusterapi.Cluster)
if !ok {
klog.Errorf("cannot convert newObj to MemberCluster: %v", newObj)
klog.Errorf("cannot convert newObj to Cluster: %v", newObj)
return
}
klog.V(3).Infof("update event for membercluster %s", newCluster.Name)
klog.V(3).Infof("update event for cluster %s", newCluster.Name)
s.schedulerCache.UpdateCluster(newCluster)
}
func (s *Scheduler) deleteCluster(obj interface{}) {
var cluster *memclusterapi.MemberCluster
var cluster *memclusterapi.Cluster
switch t := obj.(type) {
case *memclusterapi.MemberCluster:
case *memclusterapi.Cluster:
cluster = t
case cache.DeletedFinalStateUnknown:
var ok bool
cluster, ok = t.Obj.(*memclusterapi.MemberCluster)
cluster, ok = t.Obj.(*memclusterapi.Cluster)
if !ok {
klog.Errorf("cannot convert to memclusterapi.MemberCluster: %v", t.Obj)
klog.Errorf("cannot convert to memclusterapi.Cluster: %v", t.Obj)
return
}
default:
klog.Errorf("cannot convert to memclusterapi.MemberCluster: %v", t)
klog.Errorf("cannot convert to memclusterapi.Cluster: %v", t)
return
}
klog.V(3).Infof("delete event for membercluster %s", cluster.Name)
klog.V(3).Infof("delete event for cluster %s", cluster.Name)
s.schedulerCache.DeleteCluster(cluster)
}

View File

@ -8,11 +8,11 @@ import (
kubeclientset "k8s.io/client-go/kubernetes"
"sigs.k8s.io/controller-runtime/pkg/client"
"github.com/karmada-io/karmada/pkg/apis/membercluster/v1alpha1"
"github.com/karmada-io/karmada/pkg/apis/cluster/v1alpha1"
)
// IsMemberClusterReady tells whether the cluster status in 'Ready' condition.
func IsMemberClusterReady(clusterStatus *v1alpha1.MemberClusterStatus) bool {
func IsMemberClusterReady(clusterStatus *v1alpha1.ClusterStatus) bool {
for _, condition := range clusterStatus.Conditions {
// TODO(RainbowMango): Condition type should be defined in API, and after that update this hard code accordingly.
if condition.Type == v1alpha1.ClusterConditionReady {
@ -24,9 +24,9 @@ func IsMemberClusterReady(clusterStatus *v1alpha1.MemberClusterStatus) bool {
return false
}
// GetMemberCluster returns the given MemberCluster resource
func GetMemberCluster(hostClient client.Client, clusterName string) (*v1alpha1.MemberCluster, error) {
memberCluster := &v1alpha1.MemberCluster{}
// GetMemberCluster returns the given Cluster resource
func GetMemberCluster(hostClient client.Client, clusterName string) (*v1alpha1.Cluster, error) {
memberCluster := &v1alpha1.Cluster{}
if err := hostClient.Get(context.TODO(), types.NamespacedName{Name: clusterName}, memberCluster); err != nil {
return nil, err
}

View File

@ -28,7 +28,7 @@ const (
const (
// MemberClusterControllerFinalizer is added to MemberCluster to ensure PropagationWork as well as the
// execution space (namespace) is deleted before itself is deleted.
MemberClusterControllerFinalizer = "karmada.io/membercluster-controller"
MemberClusterControllerFinalizer = "karmada.io/cluster-controller"
// ExecutionControllerFinalizer is added to PropagationWork to ensure manifests propagated to member cluster
// is deleted before PropagationWork itself is deleted.

View File

@ -6,7 +6,7 @@ import (
"k8s.io/client-go/rest"
"sigs.k8s.io/controller-runtime/pkg/client"
memberclusterv1alpha1 "github.com/karmada-io/karmada/pkg/apis/membercluster/v1alpha1"
memberclusterv1alpha1 "github.com/karmada-io/karmada/pkg/apis/cluster/v1alpha1"
propagationv1alpha1 "github.com/karmada-io/karmada/pkg/apis/propagationstrategy/v1alpha1"
)
@ -16,7 +16,7 @@ var aggregatedScheme = runtime.NewScheme()
func init() {
var _ = scheme.AddToScheme(aggregatedScheme) // add Kubernetes schemes
var _ = propagationv1alpha1.AddToScheme(aggregatedScheme) // add propagation schemes
var _ = memberclusterv1alpha1.AddToScheme(aggregatedScheme) // add membercluster schemes
var _ = memberclusterv1alpha1.AddToScheme(aggregatedScheme) // add cluster schemes
}
// NewSchema returns a singleton schema set which aggregated Kubernetes's schemes and extended schemes.

View File

@ -10,7 +10,7 @@ import (
"k8s.io/client-go/rest"
"k8s.io/client-go/tools/clientcmd"
"github.com/karmada-io/karmada/pkg/apis/membercluster/v1alpha1"
"github.com/karmada-io/karmada/pkg/apis/cluster/v1alpha1"
)
const (
@ -35,8 +35,8 @@ type DynamicClusterClient struct {
}
// NewClusterClientSet returns a ClusterClient for the given member cluster.
func NewClusterClientSet(c *v1alpha1.MemberCluster, client kubeclientset.Interface) (*ClusterClient, error) {
clusterConfig, err := buildMemberClusterConfig(c, client)
func NewClusterClientSet(c *v1alpha1.Cluster, client kubeclientset.Interface) (*ClusterClient, error) {
clusterConfig, err := buildClusterConfig(c, client)
if err != nil {
return nil, err
}
@ -49,8 +49,8 @@ func NewClusterClientSet(c *v1alpha1.MemberCluster, client kubeclientset.Interfa
}
// NewClusterDynamicClientSet returns a dynamic client for the given member cluster.
func NewClusterDynamicClientSet(c *v1alpha1.MemberCluster, client kubeclientset.Interface) (*DynamicClusterClient, error) {
clusterConfig, err := buildMemberClusterConfig(c, client)
func NewClusterDynamicClientSet(c *v1alpha1.Cluster, client kubeclientset.Interface) (*DynamicClusterClient, error) {
clusterConfig, err := buildClusterConfig(c, client)
if err != nil {
return nil, err
}
@ -62,19 +62,19 @@ func NewClusterDynamicClientSet(c *v1alpha1.MemberCluster, client kubeclientset.
return &clusterClientSet, nil
}
func buildMemberClusterConfig(memberCluster *v1alpha1.MemberCluster, client kubeclientset.Interface) (*rest.Config, error) {
clusterName := memberCluster.Name
apiEndpoint := memberCluster.Spec.APIEndpoint
func buildClusterConfig(cluster *v1alpha1.Cluster, client kubeclientset.Interface) (*rest.Config, error) {
clusterName := cluster.Name
apiEndpoint := cluster.Spec.APIEndpoint
if apiEndpoint == "" {
return nil, fmt.Errorf("the api endpoint of cluster %s is empty", clusterName)
}
secretName := memberCluster.Spec.SecretRef.Name
secretName := cluster.Spec.SecretRef.Name
if secretName == "" {
return nil, fmt.Errorf("cluster %s does not have a secret name", clusterName)
}
secret, err := client.CoreV1().Secrets(memberCluster.Spec.SecretRef.Namespace).Get(context.TODO(), secretName, metav1.GetOptions{})
secret, err := client.CoreV1().Secrets(cluster.Spec.SecretRef.Namespace).Get(context.TODO(), secretName, metav1.GetOptions{})
if err != nil {
return nil, err
}

View File

@ -10,7 +10,7 @@ import (
"k8s.io/klog/v2"
"sigs.k8s.io/controller-runtime/pkg/client"
clusterv1alpha1 "github.com/karmada-io/karmada/pkg/apis/membercluster/v1alpha1"
clusterv1alpha1 "github.com/karmada-io/karmada/pkg/apis/cluster/v1alpha1"
propagationstrategy "github.com/karmada-io/karmada/pkg/apis/propagationstrategy/v1alpha1"
"github.com/karmada-io/karmada/pkg/util"
)
@ -38,7 +38,7 @@ func New(client client.Client) OverrideManager {
}
func (o *overrideManagerImpl) ApplyOverridePolicies(rawObj *unstructured.Unstructured, clusterName string) error {
clusterObj := &clusterv1alpha1.MemberCluster{}
clusterObj := &clusterv1alpha1.Cluster{}
if err := o.Client.Get(context.TODO(), client.ObjectKey{Name: clusterName}, clusterObj); err != nil {
klog.Errorf("Failed to get member cluster: %s, error: %v", clusterName, err)
return err
@ -62,7 +62,7 @@ func (o *overrideManagerImpl) ApplyOverridePolicies(rawObj *unstructured.Unstruc
}
// applyClusterOverrides will apply overrides according to ClusterOverridePolicy instructions.
func (o *overrideManagerImpl) applyClusterOverrides(rawObj *unstructured.Unstructured, cluster *clusterv1alpha1.MemberCluster) error {
func (o *overrideManagerImpl) applyClusterOverrides(rawObj *unstructured.Unstructured, cluster *clusterv1alpha1.Cluster) error {
// TODO(RainbowMango): implements later after ClusterOverridePolicy get on board.
@ -70,7 +70,7 @@ func (o *overrideManagerImpl) applyClusterOverrides(rawObj *unstructured.Unstruc
}
// applyNamespacedOverrides will apply overrides according to OverridePolicy instructions.
func (o *overrideManagerImpl) applyNamespacedOverrides(rawObj *unstructured.Unstructured, cluster *clusterv1alpha1.MemberCluster) error {
func (o *overrideManagerImpl) applyNamespacedOverrides(rawObj *unstructured.Unstructured, cluster *clusterv1alpha1.Cluster) error {
// get all namespace-scoped override policies
policyList := &propagationstrategy.OverridePolicyList{}
if err := o.Client.List(context.TODO(), policyList, &client.ListOptions{Namespace: rawObj.GetNamespace()}); err != nil {
@ -101,7 +101,7 @@ func (o *overrideManagerImpl) applyNamespacedOverrides(rawObj *unstructured.Unst
return nil
}
func (o *overrideManagerImpl) getMatchedOverridePolicy(policies []propagationstrategy.OverridePolicy, resource *unstructured.Unstructured, cluster *clusterv1alpha1.MemberCluster) []propagationstrategy.OverridePolicy {
func (o *overrideManagerImpl) getMatchedOverridePolicy(policies []propagationstrategy.OverridePolicy, resource *unstructured.Unstructured, cluster *clusterv1alpha1.Cluster) []propagationstrategy.OverridePolicy {
// select policy in which at least one resource selector matches target resource.
resourceMatches := make([]propagationstrategy.OverridePolicy, 0)
for _, policy := range policies {

View File

@ -5,7 +5,7 @@ import (
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"k8s.io/apimachinery/pkg/labels"
clusterv1alpha1 "github.com/karmada-io/karmada/pkg/apis/membercluster/v1alpha1"
clusterv1alpha1 "github.com/karmada-io/karmada/pkg/apis/cluster/v1alpha1"
"github.com/karmada-io/karmada/pkg/apis/propagationstrategy/v1alpha1"
)
@ -47,7 +47,7 @@ func ResourceMatches(resource *unstructured.Unstructured, rs v1alpha1.ResourceSe
// ClusterMatches tells if specific cluster matches the affinity.
// TODO(RainbowMango): Now only support ClusterAffinity.ClusterNames. More rules will be implemented later.
func ClusterMatches(cluster *clusterv1alpha1.MemberCluster, affinity v1alpha1.ClusterAffinity) bool {
func ClusterMatches(cluster *clusterv1alpha1.Cluster, affinity v1alpha1.ClusterAffinity) bool {
for _, clusterName := range affinity.ClusterNames {
if cluster.Name == clusterName {
return true

View File

@ -17,7 +17,7 @@ import (
"k8s.io/client-go/tools/clientcmd"
"k8s.io/klog/v2"
clusterapi "github.com/karmada-io/karmada/pkg/apis/membercluster/v1alpha1"
clusterapi "github.com/karmada-io/karmada/pkg/apis/cluster/v1alpha1"
karmada "github.com/karmada-io/karmada/pkg/generated/clientset/versioned"
"github.com/karmada-io/karmada/pkg/util"
"github.com/karmada-io/karmada/test/helper"
@ -43,7 +43,7 @@ var (
restConfig *rest.Config
kubeClient kubernetes.Interface
karmadaClient karmada.Interface
memberClusters []*clusterapi.MemberCluster
memberClusters []*clusterapi.Cluster
memberClusterNames []string
memberClusterClients []*util.ClusterClient
testNamespace = fmt.Sprintf("karmada-e2e-%s", rand.String(3))
@ -97,13 +97,13 @@ var _ = ginkgo.AfterSuite(func() {
}, TestSuiteTeardownTimeOut.Seconds())
// fetchMemberClusters will fetch all member clusters we have.
func fetchMemberClusters(client karmada.Interface) ([]*clusterapi.MemberCluster, error) {
func fetchMemberClusters(client karmada.Interface) ([]*clusterapi.Cluster, error) {
clusterList, err := client.MemberclusterV1alpha1().MemberClusters().List(context.TODO(), v1.ListOptions{})
if err != nil {
return nil, err
}
clusters := make([]*clusterapi.MemberCluster, 0, len(clusterList.Items))
clusters := make([]*clusterapi.Cluster, 0, len(clusterList.Items))
for _, cluster := range clusterList.Items {
pinedCluster := cluster
clusters = append(clusters, &pinedCluster)
@ -113,7 +113,7 @@ func fetchMemberClusters(client karmada.Interface) ([]*clusterapi.MemberCluster,
}
// isMemberClusterMeetRequirements checks if current environment meet the requirements of E2E.
func isMemberClusterMeetRequirements(clusters []*clusterapi.MemberCluster) (bool, error) {
func isMemberClusterMeetRequirements(clusters []*clusterapi.Cluster) (bool, error) {
// check if member cluster number meets requirements
if len(clusters) < MinimumMemberCluster {
return false, fmt.Errorf("needs at lease %d member cluster to run, but got: %d", MinimumMemberCluster, len(clusters))