get membercluster resource from cache
This commit is contained in:
parent
1c760c6b1f
commit
e568db711e
|
@ -134,7 +134,6 @@ func setupControllers(mgr controllerruntime.Manager) {
|
|||
executionController := &execution.Controller{
|
||||
Client: mgr.GetClient(),
|
||||
KubeClientSet: kubeClientSet,
|
||||
KarmadaClient: karmadaClient,
|
||||
EventRecorder: mgr.GetEventRecorderFor(execution.ControllerName),
|
||||
RESTMapper: mgr.GetRESTMapper(),
|
||||
}
|
||||
|
|
|
@ -18,7 +18,6 @@ import (
|
|||
|
||||
"github.com/karmada-io/karmada/pkg/apis/membercluster/v1alpha1"
|
||||
propagationstrategy "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/util"
|
||||
"github.com/karmada-io/karmada/pkg/util/names"
|
||||
"github.com/karmada-io/karmada/pkg/util/restmapper"
|
||||
|
@ -32,9 +31,8 @@ const (
|
|||
|
||||
// Controller is to sync PropagationWork.
|
||||
type Controller struct {
|
||||
client.Client // used to operate PropagationWork resources.
|
||||
KubeClientSet kubernetes.Interface // used to get kubernetes resources.
|
||||
KarmadaClient karmadaclientset.Interface // used to get MemberCluster resources.
|
||||
client.Client // used to operate PropagationWork resources.
|
||||
KubeClientSet kubernetes.Interface // used to get kubernetes resources.
|
||||
EventRecorder record.EventRecorder
|
||||
RESTMapper meta.RESTMapper
|
||||
}
|
||||
|
@ -115,8 +113,7 @@ func (c *Controller) tryDeleteWorkload(propagationWork *propagationstrategy.Prop
|
|||
return err
|
||||
}
|
||||
|
||||
// TODO(RainbowMango): retrieve member cluster from the local cache instead of a real request to API server.
|
||||
memberCluster, err := c.KarmadaClient.MemberclusterV1alpha1().MemberClusters().Get(context.TODO(), memberClusterName, v1.GetOptions{})
|
||||
memberCluster, err := util.GetMemberCluster(c.Client, memberClusterName)
|
||||
if err != nil {
|
||||
klog.Errorf("Failed to get the given member cluster %s", memberClusterName)
|
||||
return err
|
||||
|
@ -158,8 +155,7 @@ func (c *Controller) dispatchPropagationWork(propagationWork *propagationstrateg
|
|||
return err
|
||||
}
|
||||
|
||||
// TODO(RainbowMango): retrieve member cluster from the local cache instead of a real request to API server.
|
||||
memberCluster, err := c.KarmadaClient.MemberclusterV1alpha1().MemberClusters().Get(context.TODO(), memberClusterName, v1.GetOptions{})
|
||||
memberCluster, err := util.GetMemberCluster(c.Client, memberClusterName)
|
||||
if err != nil {
|
||||
klog.Errorf("Failed to the get given member cluster %s", memberClusterName)
|
||||
return err
|
||||
|
|
|
@ -1,8 +1,13 @@
|
|||
package util
|
||||
|
||||
import (
|
||||
"github.com/karmada-io/karmada/pkg/apis/membercluster/v1alpha1"
|
||||
"context"
|
||||
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
"sigs.k8s.io/controller-runtime/pkg/client"
|
||||
|
||||
"github.com/karmada-io/karmada/pkg/apis/membercluster/v1alpha1"
|
||||
)
|
||||
|
||||
// IsMemberClusterReady tells whether the cluster status in 'Ready' condition.
|
||||
|
@ -17,3 +22,12 @@ 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{}
|
||||
if err := hostClient.Get(context.TODO(), types.NamespacedName{Name: clusterName}, memberCluster); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return memberCluster, nil
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue