retain original code style

Signed-off-by: changzhen <changzhen5@huawei.com>
This commit is contained in:
changzhen 2021-09-30 11:15:30 +08:00
parent 8600106853
commit e25e2038a4
3 changed files with 61 additions and 84 deletions

View File

@ -199,24 +199,24 @@ func setupControllers(mgr controllerruntime.Manager, opts *options.Options, stop
klog.Fatalf("Failed to setup policy controller: %v", err)
}
bindingController := binding.NewResourceBindingController(
mgr.GetClient(),
dynamicClientSet,
mgr.GetEventRecorderFor(binding.ControllerName),
mgr.GetRESTMapper(),
overrideManager,
)
bindingController := &binding.ResourceBindingController{
Client: mgr.GetClient(),
DynamicClient: dynamicClientSet,
EventRecorder: mgr.GetEventRecorderFor(binding.ControllerName),
RESTMapper: mgr.GetRESTMapper(),
OverrideManager: overrideManager,
}
if err := bindingController.SetupWithManager(mgr); err != nil {
klog.Fatalf("Failed to setup binding controller: %v", err)
}
clusterResourceBindingController := binding.NewClusterResourceBindingController(
mgr.GetClient(),
dynamicClientSet,
mgr.GetEventRecorderFor(binding.ClusterResourceBindingControllerName),
mgr.GetRESTMapper(),
overrideManager,
)
clusterResourceBindingController := &binding.ClusterResourceBindingController{
Client: mgr.GetClient(),
DynamicClient: dynamicClientSet,
EventRecorder: mgr.GetEventRecorderFor(binding.ClusterResourceBindingControllerName),
RESTMapper: mgr.GetRESTMapper(),
OverrideManager: overrideManager,
}
if err := clusterResourceBindingController.SetupWithManager(mgr); err != nil {
klog.Fatalf("Failed to setup cluster resource binding controller: %v", err)
}

View File

@ -31,6 +31,7 @@ import (
const (
// ControllerName is the controller name that will be used when reporting events.
ControllerName = "binding-controller"
eventTypeFindOrphanWorks = "FindOrphanWorks"
eventTypeFetchWorkload = "FetchWorkload"
eventTypeTransformResourceBinding = "TransformResourceBinding"
@ -39,23 +40,11 @@ const (
// ResourceBindingController is to sync ResourceBinding.
type ResourceBindingController struct {
client client.Client // used to operate ResourceBinding resources.
dynamicClient dynamic.Interface // used to fetch arbitrary resources.
recorder record.EventRecorder
restMapper meta.RESTMapper
overrideManager overridemanager.OverrideManager
}
// NewResourceBindingController creates a new ResourceBindingController.
func NewResourceBindingController(client client.Client, dynamicClient dynamic.Interface, recorder record.EventRecorder, restMapper meta.RESTMapper, overrideManager overridemanager.OverrideManager) *ResourceBindingController {
rbConroller := ResourceBindingController{
client: client,
dynamicClient: dynamicClient,
recorder: recorder,
restMapper: restMapper,
overrideManager: overrideManager,
}
return &rbConroller
client.Client // used to operate ResourceBinding resources.
DynamicClient dynamic.Interface // used to fetch arbitrary resources.
EventRecorder record.EventRecorder
RESTMapper meta.RESTMapper
OverrideManager overridemanager.OverrideManager
}
// Reconcile performs a full reconciliation for the object referred to by the Request.
@ -65,7 +54,7 @@ func (c *ResourceBindingController) Reconcile(ctx context.Context, req controlle
klog.V(4).Infof("Reconciling ResourceBinding %s.", req.NamespacedName.String())
binding := &workv1alpha2.ResourceBinding{}
if err := c.client.Get(context.TODO(), req.NamespacedName, binding); err != nil {
if err := c.Client.Get(context.TODO(), req.NamespacedName, binding); err != nil {
// The resource no longer exist, in which case we stop processing.
if apierrors.IsNotFound(err) {
return controllerruntime.Result{}, nil
@ -75,7 +64,7 @@ func (c *ResourceBindingController) Reconcile(ctx context.Context, req controlle
}
if !binding.DeletionTimestamp.IsZero() {
if err := helper.DeleteWorks(c.client, labels.Set{
if err := helper.DeleteWorks(c.Client, labels.Set{
workv1alpha2.ResourceBindingNamespaceLabel: req.Namespace,
workv1alpha2.ResourceBindingNameLabel: req.Name,
}); err != nil {
@ -89,7 +78,7 @@ func (c *ResourceBindingController) Reconcile(ctx context.Context, req controlle
if !isReady {
msg := fmt.Sprintf("ResourceBinding %s is not ready.", req.NamespacedName.String())
klog.Infof(msg)
c.recorder.Event(binding, corev1.EventTypeWarning, "ResourceBindingNotReady", msg)
c.EventRecorder.Event(binding, corev1.EventTypeWarning, "ResourceBindingNotReady", msg)
return controllerruntime.Result{}, nil
}
@ -104,7 +93,7 @@ func (c *ResourceBindingController) removeFinalizer(rb *workv1alpha2.ResourceBin
}
controllerutil.RemoveFinalizer(rb, util.BindingControllerFinalizer)
err := c.client.Update(context.TODO(), rb)
err := c.Client.Update(context.TODO(), rb)
if err != nil {
return controllerruntime.Result{Requeue: true}, err
}
@ -114,47 +103,47 @@ func (c *ResourceBindingController) removeFinalizer(rb *workv1alpha2.ResourceBin
// syncBinding will sync resourceBinding to Works.
func (c *ResourceBindingController) syncBinding(binding *workv1alpha2.ResourceBinding) (controllerruntime.Result, error) {
clusterNames := helper.GetBindingClusterNames(binding.Spec.Clusters)
works, err := helper.FindOrphanWorks(c.client, binding.Namespace, binding.Name, clusterNames, apiextensionsv1.NamespaceScoped)
works, err := helper.FindOrphanWorks(c.Client, binding.Namespace, binding.Name, clusterNames, apiextensionsv1.NamespaceScoped)
if err != nil {
klog.Errorf("Failed to find orphan works by resourceBinding(%s/%s). Error: %v.",
binding.GetNamespace(), binding.GetName(), err)
c.recorder.Event(binding, corev1.EventTypeWarning, fmt.Sprintf("Failed %s", eventTypeFindOrphanWorks), err.Error())
c.EventRecorder.Event(binding, corev1.EventTypeWarning, fmt.Sprintf("Failed %s", eventTypeFindOrphanWorks), err.Error())
return controllerruntime.Result{Requeue: true}, err
}
err = helper.RemoveOrphanWorks(c.client, works)
err = helper.RemoveOrphanWorks(c.Client, works)
if err != nil {
klog.Errorf("Failed to remove orphan works by resourceBinding(%s/%s). Error: %v.",
binding.GetNamespace(), binding.GetName(), err)
c.recorder.Event(binding, corev1.EventTypeWarning, fmt.Sprintf("Failed %s", eventTypeFindOrphanWorks), err.Error())
c.EventRecorder.Event(binding, corev1.EventTypeWarning, fmt.Sprintf("Failed %s", eventTypeFindOrphanWorks), err.Error())
return controllerruntime.Result{Requeue: true}, err
}
workload, err := helper.FetchWorkload(c.dynamicClient, c.restMapper, binding.Spec.Resource)
workload, err := helper.FetchWorkload(c.DynamicClient, c.RESTMapper, binding.Spec.Resource)
if err != nil {
klog.Errorf("Failed to fetch workload for resourceBinding(%s/%s). Error: %v.",
binding.GetNamespace(), binding.GetName(), err)
c.recorder.Event(binding, corev1.EventTypeWarning, fmt.Sprintf("Failed %s", eventTypeFetchWorkload), err.Error())
c.EventRecorder.Event(binding, corev1.EventTypeWarning, fmt.Sprintf("Failed %s", eventTypeFetchWorkload), err.Error())
return controllerruntime.Result{Requeue: true}, err
}
err = ensureWork(c.client, workload, c.overrideManager, binding, apiextensionsv1.NamespaceScoped)
err = ensureWork(c.Client, workload, c.OverrideManager, binding, apiextensionsv1.NamespaceScoped)
if err != nil {
klog.Errorf("Failed to transform resourceBinding(%s/%s) to works. Error: %v.",
binding.GetNamespace(), binding.GetName(), err)
c.recorder.Event(binding, corev1.EventTypeWarning, fmt.Sprintf("Failed %s", eventTypeTransformResourceBinding), err.Error())
c.EventRecorder.Event(binding, corev1.EventTypeWarning, fmt.Sprintf("Failed %s", eventTypeTransformResourceBinding), err.Error())
return controllerruntime.Result{Requeue: true}, err
}
err = helper.AggregateResourceBindingWorkStatus(c.client, binding, workload)
err = helper.AggregateResourceBindingWorkStatus(c.Client, binding, workload)
if err != nil {
klog.Errorf("Failed to aggregate workStatuses to resourceBinding(%s/%s). Error: %v.",
binding.GetNamespace(), binding.GetName(), err)
c.recorder.Event(binding, corev1.EventTypeWarning, fmt.Sprintf("Failed %s", eventTypeAggregateWorkStatuses), err.Error())
c.EventRecorder.Event(binding, corev1.EventTypeWarning, fmt.Sprintf("Failed %s", eventTypeAggregateWorkStatuses), err.Error())
return controllerruntime.Result{Requeue: true}, err
}
klog.V(4).Infof("Update resourceBinding(%s/%s) with AggregatedStatus successfully.", binding.Namespace, binding.Name)
c.recorder.Event(binding, corev1.EventTypeNormal, "SyncResourceBinding", "ResourceBinding synced successfully")
c.EventRecorder.Event(binding, corev1.EventTypeNormal, "SyncResourceBinding", "ResourceBinding synced successfully")
return controllerruntime.Result{}, nil
}
@ -201,14 +190,14 @@ func (c *ResourceBindingController) newOverridePolicyFunc() handler.MapFunc {
}
bindingList := &workv1alpha2.ResourceBindingList{}
if err := c.client.List(context.TODO(), bindingList); err != nil {
if err := c.Client.List(context.TODO(), bindingList); err != nil {
klog.Errorf("Failed to list resourceBindings, error: %v", err)
return nil
}
var requests []reconcile.Request
for _, binding := range bindingList.Items {
workload, err := helper.FetchWorkload(c.dynamicClient, c.restMapper, binding.Spec.Resource)
workload, err := helper.FetchWorkload(c.DynamicClient, c.RESTMapper, binding.Spec.Resource)
if err != nil {
klog.Errorf("Failed to fetch workload for resourceBinding(%s/%s). Error: %v.", binding.Namespace, binding.Name, err)
return nil
@ -230,14 +219,14 @@ func (c *ResourceBindingController) newReplicaSchedulingPolicyFunc() handler.Map
return func(a client.Object) []reconcile.Request {
rspResourceSelectors := a.(*policyv1alpha1.ReplicaSchedulingPolicy).Spec.ResourceSelectors
bindingList := &workv1alpha2.ResourceBindingList{}
if err := c.client.List(context.TODO(), bindingList); err != nil {
if err := c.Client.List(context.TODO(), bindingList); err != nil {
klog.Errorf("Failed to list resourceBindings, error: %v", err)
return nil
}
var requests []reconcile.Request
for _, binding := range bindingList.Items {
workload, err := helper.FetchWorkload(c.dynamicClient, c.restMapper, binding.Spec.Resource)
workload, err := helper.FetchWorkload(c.DynamicClient, c.RESTMapper, binding.Spec.Resource)
if err != nil {
klog.Errorf("Failed to fetch workload for resourceBinding(%s/%s). Error: %v.", binding.Namespace, binding.Name, err)
return nil

View File

@ -33,23 +33,11 @@ const ClusterResourceBindingControllerName = "cluster-resource-binding-controlle
// ClusterResourceBindingController is to sync ClusterResourceBinding.
type ClusterResourceBindingController struct {
client client.Client // used to operate ClusterResourceBinding resources.
dynamicClient dynamic.Interface // used to fetch arbitrary resources.
recorder record.EventRecorder
restMapper meta.RESTMapper
overrideManager overridemanager.OverrideManager
}
// NewClusterResourceBindingController creates a new ClusterResourceBindingController.
func NewClusterResourceBindingController(client client.Client, dynamicClient dynamic.Interface, recorder record.EventRecorder, restMapper meta.RESTMapper, overrideManager overridemanager.OverrideManager) *ClusterResourceBindingController {
crbConroller := ClusterResourceBindingController{
client: client,
dynamicClient: dynamicClient,
recorder: recorder,
restMapper: restMapper,
overrideManager: overrideManager,
}
return &crbConroller
client.Client // used to operate ClusterResourceBinding resources.
DynamicClient dynamic.Interface // used to fetch arbitrary resources.
EventRecorder record.EventRecorder
RESTMapper meta.RESTMapper
OverrideManager overridemanager.OverrideManager
}
// Reconcile performs a full reconciliation for the object referred to by the Request.
@ -59,7 +47,7 @@ func (c *ClusterResourceBindingController) Reconcile(ctx context.Context, req co
klog.V(4).Infof("Reconciling ClusterResourceBinding %s.", req.NamespacedName.String())
clusterResourceBinding := &workv1alpha2.ClusterResourceBinding{}
if err := c.client.Get(context.TODO(), req.NamespacedName, clusterResourceBinding); err != nil {
if err := c.Client.Get(context.TODO(), req.NamespacedName, clusterResourceBinding); err != nil {
// The resource no longer exist, in which case we stop processing.
if apierrors.IsNotFound(err) {
return controllerruntime.Result{}, nil
@ -69,7 +57,7 @@ func (c *ClusterResourceBindingController) Reconcile(ctx context.Context, req co
}
if !clusterResourceBinding.DeletionTimestamp.IsZero() {
if err := helper.DeleteWorks(c.client, labels.Set{
if err := helper.DeleteWorks(c.Client, labels.Set{
workv1alpha2.ClusterResourceBindingLabel: req.Name,
}); err != nil {
klog.Errorf("Failed to delete works related to %s: %v", clusterResourceBinding.GetName(), err)
@ -82,7 +70,7 @@ func (c *ClusterResourceBindingController) Reconcile(ctx context.Context, req co
if !isReady {
msg := fmt.Sprintf("ClusterResourceBinding %s is not ready to sync.", clusterResourceBinding.GetName())
klog.Infof(msg)
c.recorder.Event(clusterResourceBinding, corev1.EventTypeWarning, "ResourceBindingNotReady", msg)
c.EventRecorder.Event(clusterResourceBinding, corev1.EventTypeWarning, "ResourceBindingNotReady", msg)
return controllerruntime.Result{}, nil
}
@ -97,7 +85,7 @@ func (c *ClusterResourceBindingController) removeFinalizer(crb *workv1alpha2.Clu
}
controllerutil.RemoveFinalizer(crb, util.ClusterResourceBindingControllerFinalizer)
err := c.client.Update(context.TODO(), crb)
err := c.Client.Update(context.TODO(), crb)
if err != nil {
return controllerruntime.Result{Requeue: true}, err
}
@ -107,37 +95,37 @@ func (c *ClusterResourceBindingController) removeFinalizer(crb *workv1alpha2.Clu
// syncBinding will sync clusterResourceBinding to Works.
func (c *ClusterResourceBindingController) syncBinding(binding *workv1alpha2.ClusterResourceBinding) (controllerruntime.Result, error) {
clusterNames := helper.GetBindingClusterNames(binding.Spec.Clusters)
works, err := helper.FindOrphanWorks(c.client, "", binding.Name, clusterNames, apiextensionsv1.ClusterScoped)
works, err := helper.FindOrphanWorks(c.Client, "", binding.Name, clusterNames, apiextensionsv1.ClusterScoped)
if err != nil {
klog.Errorf("Failed to find orphan works by ClusterResourceBinding(%s). Error: %v.", binding.GetName(), err)
c.recorder.Event(binding, corev1.EventTypeWarning, fmt.Sprintf("Failed %s", eventTypeFindOrphanWorks), err.Error())
c.EventRecorder.Event(binding, corev1.EventTypeWarning, fmt.Sprintf("Failed %s", eventTypeFindOrphanWorks), err.Error())
return controllerruntime.Result{Requeue: true}, err
}
err = helper.RemoveOrphanWorks(c.client, works)
err = helper.RemoveOrphanWorks(c.Client, works)
if err != nil {
klog.Errorf("Failed to remove orphan works by clusterResourceBinding(%s). Error: %v.", binding.GetName(), err)
c.recorder.Event(binding, corev1.EventTypeWarning, fmt.Sprintf("Failed %s", eventTypeFindOrphanWorks), err.Error())
c.EventRecorder.Event(binding, corev1.EventTypeWarning, fmt.Sprintf("Failed %s", eventTypeFindOrphanWorks), err.Error())
return controllerruntime.Result{Requeue: true}, err
}
workload, err := helper.FetchWorkload(c.dynamicClient, c.restMapper, binding.Spec.Resource)
workload, err := helper.FetchWorkload(c.DynamicClient, c.RESTMapper, binding.Spec.Resource)
if err != nil {
klog.Errorf("Failed to fetch workload for clusterResourceBinding(%s). Error: %v.", binding.GetName(), err)
c.recorder.Event(binding, corev1.EventTypeWarning, fmt.Sprintf("Failed %s", eventTypeFetchWorkload), err.Error())
c.EventRecorder.Event(binding, corev1.EventTypeWarning, fmt.Sprintf("Failed %s", eventTypeFetchWorkload), err.Error())
return controllerruntime.Result{Requeue: true}, err
}
err = ensureWork(c.client, workload, c.overrideManager, binding, apiextensionsv1.ClusterScoped)
err = ensureWork(c.Client, workload, c.OverrideManager, binding, apiextensionsv1.ClusterScoped)
if err != nil {
klog.Errorf("Failed to transform clusterResourceBinding(%s) to works. Error: %v.", binding.GetName(), err)
return controllerruntime.Result{Requeue: true}, err
}
err = helper.AggregateClusterResourceBindingWorkStatus(c.client, binding, workload)
err = helper.AggregateClusterResourceBindingWorkStatus(c.Client, binding, workload)
if err != nil {
klog.Errorf("Failed to aggregate workStatuses to clusterResourceBinding(%s). Error: %v.", binding.GetName(), err)
c.recorder.Event(binding, corev1.EventTypeWarning, fmt.Sprintf("Failed %s", eventTypeTransformResourceBinding), err.Error())
c.EventRecorder.Event(binding, corev1.EventTypeWarning, fmt.Sprintf("Failed %s", eventTypeTransformResourceBinding), err.Error())
return controllerruntime.Result{Requeue: true}, err
}
klog.V(4).Infof("Update clusterResourceBinding(%s) with AggregatedStatus successfully.", binding.Name)
@ -185,14 +173,14 @@ func (c *ClusterResourceBindingController) newOverridePolicyFunc() handler.MapFu
}
bindingList := &workv1alpha2.ClusterResourceBindingList{}
if err := c.client.List(context.TODO(), bindingList); err != nil {
if err := c.Client.List(context.TODO(), bindingList); err != nil {
klog.Errorf("Failed to list clusterResourceBindings, error: %v", err)
return nil
}
var requests []reconcile.Request
for _, binding := range bindingList.Items {
workload, err := helper.FetchWorkload(c.dynamicClient, c.restMapper, binding.Spec.Resource)
workload, err := helper.FetchWorkload(c.DynamicClient, c.RESTMapper, binding.Spec.Resource)
if err != nil {
klog.Errorf("Failed to fetch workload for clusterResourceBinding(%s). Error: %v.", binding.Name, err)
return nil
@ -214,14 +202,14 @@ func (c *ClusterResourceBindingController) newReplicaSchedulingPolicyFunc() hand
return func(a client.Object) []reconcile.Request {
rspResourceSelectors := a.(*policyv1alpha1.ReplicaSchedulingPolicy).Spec.ResourceSelectors
bindingList := &workv1alpha2.ClusterResourceBindingList{}
if err := c.client.List(context.TODO(), bindingList); err != nil {
if err := c.Client.List(context.TODO(), bindingList); err != nil {
klog.Errorf("Failed to list clusterResourceBindings, error: %v", err)
return nil
}
var requests []reconcile.Request
for _, binding := range bindingList.Items {
workload, err := helper.FetchWorkload(c.dynamicClient, c.restMapper, binding.Spec.Resource)
workload, err := helper.FetchWorkload(c.DynamicClient, c.RESTMapper, binding.Spec.Resource)
if err != nil {
klog.Errorf("Failed to fetch workload for clusterResourceBinding(%s). Error: %v.", binding.Name, err)
return nil