Merge pull request #2748 from yanggangtony/add-ops-BaseContext
reuse context for controller-manager base-context
This commit is contained in:
commit
c669017ce3
|
@ -190,6 +190,9 @@ func run(ctx context.Context, karmadaConfig karmadactl.KarmadaConfig, opts *opti
|
||||||
LivenessEndpointName: "/healthz",
|
LivenessEndpointName: "/healthz",
|
||||||
MetricsBindAddress: opts.MetricsBindAddress,
|
MetricsBindAddress: opts.MetricsBindAddress,
|
||||||
MapperProvider: restmapper.MapperProvider,
|
MapperProvider: restmapper.MapperProvider,
|
||||||
|
BaseContext: func() context.Context {
|
||||||
|
return ctx
|
||||||
|
},
|
||||||
Controller: v1alpha1.ControllerConfigurationSpec{
|
Controller: v1alpha1.ControllerConfigurationSpec{
|
||||||
GroupKindConcurrency: map[string]int{
|
GroupKindConcurrency: map[string]int{
|
||||||
workv1alpha1.SchemeGroupVersion.WithKind("Work").GroupKind().String(): opts.ConcurrentWorkSyncs,
|
workv1alpha1.SchemeGroupVersion.WithKind("Work").GroupKind().String(): opts.ConcurrentWorkSyncs,
|
||||||
|
|
|
@ -129,6 +129,9 @@ func Run(ctx context.Context, opts *options.Options) error {
|
||||||
LivenessEndpointName: "/healthz",
|
LivenessEndpointName: "/healthz",
|
||||||
MetricsBindAddress: opts.MetricsBindAddress,
|
MetricsBindAddress: opts.MetricsBindAddress,
|
||||||
MapperProvider: restmapper.MapperProvider,
|
MapperProvider: restmapper.MapperProvider,
|
||||||
|
BaseContext: func() context.Context {
|
||||||
|
return ctx
|
||||||
|
},
|
||||||
Controller: v1alpha1.ControllerConfigurationSpec{
|
Controller: v1alpha1.ControllerConfigurationSpec{
|
||||||
GroupKindConcurrency: map[string]int{
|
GroupKindConcurrency: map[string]int{
|
||||||
workv1alpha1.SchemeGroupVersion.WithKind("Work").GroupKind().String(): opts.ConcurrentWorkSyncs,
|
workv1alpha1.SchemeGroupVersion.WithKind("Work").GroupKind().String(): opts.ConcurrentWorkSyncs,
|
||||||
|
|
|
@ -59,7 +59,7 @@ func (c *ResourceBindingController) Reconcile(ctx context.Context, req controlle
|
||||||
klog.V(4).Infof("Reconciling ResourceBinding %s.", req.NamespacedName.String())
|
klog.V(4).Infof("Reconciling ResourceBinding %s.", req.NamespacedName.String())
|
||||||
|
|
||||||
binding := &workv1alpha2.ResourceBinding{}
|
binding := &workv1alpha2.ResourceBinding{}
|
||||||
if err := c.Client.Get(context.TODO(), req.NamespacedName, binding); err != nil {
|
if err := c.Client.Get(ctx, req.NamespacedName, binding); err != nil {
|
||||||
// The resource no longer exist, in which case we stop processing.
|
// The resource no longer exist, in which case we stop processing.
|
||||||
if apierrors.IsNotFound(err) {
|
if apierrors.IsNotFound(err) {
|
||||||
return controllerruntime.Result{}, nil
|
return controllerruntime.Result{}, nil
|
||||||
|
|
|
@ -59,7 +59,7 @@ func (c *ClusterResourceBindingController) Reconcile(ctx context.Context, req co
|
||||||
klog.V(4).Infof("Reconciling ClusterResourceBinding %s.", req.NamespacedName.String())
|
klog.V(4).Infof("Reconciling ClusterResourceBinding %s.", req.NamespacedName.String())
|
||||||
|
|
||||||
clusterResourceBinding := &workv1alpha2.ClusterResourceBinding{}
|
clusterResourceBinding := &workv1alpha2.ClusterResourceBinding{}
|
||||||
if err := c.Client.Get(context.TODO(), req.NamespacedName, clusterResourceBinding); err != nil {
|
if err := c.Client.Get(ctx, req.NamespacedName, clusterResourceBinding); err != nil {
|
||||||
// The resource no longer exist, in which case we stop processing.
|
// The resource no longer exist, in which case we stop processing.
|
||||||
if apierrors.IsNotFound(err) {
|
if apierrors.IsNotFound(err) {
|
||||||
return controllerruntime.Result{}, nil
|
return controllerruntime.Result{}, nil
|
||||||
|
|
|
@ -76,7 +76,7 @@ func (c *CertRotationController) Reconcile(ctx context.Context, req controllerru
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
cluster := &clusterv1alpha1.Cluster{}
|
cluster := &clusterv1alpha1.Cluster{}
|
||||||
if err := c.Client.Get(context.TODO(), req.NamespacedName, cluster); err != nil {
|
if err := c.Client.Get(ctx, req.NamespacedName, cluster); err != nil {
|
||||||
// The resource may no longer exist, in which case we stop processing.
|
// The resource may no longer exist, in which case we stop processing.
|
||||||
if apierrors.IsNotFound(err) {
|
if apierrors.IsNotFound(err) {
|
||||||
return controllerruntime.Result{}, nil
|
return controllerruntime.Result{}, nil
|
||||||
|
@ -96,7 +96,7 @@ func (c *CertRotationController) Reconcile(ctx context.Context, req controllerru
|
||||||
return controllerruntime.Result{Requeue: true}, err
|
return controllerruntime.Result{Requeue: true}, err
|
||||||
}
|
}
|
||||||
|
|
||||||
secret, err := c.ClusterClient.KubeClient.CoreV1().Secrets(c.KarmadaKubeconfigNamespace).Get(context.TODO(), KarmadaKubeconfigName, metav1.GetOptions{})
|
secret, err := c.ClusterClient.KubeClient.CoreV1().Secrets(c.KarmadaKubeconfigNamespace).Get(ctx, KarmadaKubeconfigName, metav1.GetOptions{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
klog.Errorf("failed to get karmada kubeconfig secret: %v", err)
|
klog.Errorf("failed to get karmada kubeconfig secret: %v", err)
|
||||||
return controllerruntime.Result{Requeue: true}, err
|
return controllerruntime.Result{Requeue: true}, err
|
||||||
|
|
|
@ -158,7 +158,7 @@ func (c *Controller) Reconcile(ctx context.Context, req controllerruntime.Reques
|
||||||
klog.V(4).Infof("Reconciling cluster %s", req.NamespacedName.Name)
|
klog.V(4).Infof("Reconciling cluster %s", req.NamespacedName.Name)
|
||||||
|
|
||||||
cluster := &clusterv1alpha1.Cluster{}
|
cluster := &clusterv1alpha1.Cluster{}
|
||||||
if err := c.Client.Get(context.TODO(), req.NamespacedName, cluster); err != nil {
|
if err := c.Client.Get(ctx, req.NamespacedName, cluster); err != nil {
|
||||||
// The resource may no longer exist, in which case we stop processing.
|
// The resource may no longer exist, in which case we stop processing.
|
||||||
if apierrors.IsNotFound(err) {
|
if apierrors.IsNotFound(err) {
|
||||||
return controllerruntime.Result{}, nil
|
return controllerruntime.Result{}, nil
|
||||||
|
|
|
@ -47,7 +47,7 @@ func (tc *NoExecuteTaintManager) Reconcile(ctx context.Context, req reconcile.Re
|
||||||
klog.V(4).Infof("Reconciling cluster %s for taint manager", req.NamespacedName.Name)
|
klog.V(4).Infof("Reconciling cluster %s for taint manager", req.NamespacedName.Name)
|
||||||
|
|
||||||
cluster := &clusterv1alpha1.Cluster{}
|
cluster := &clusterv1alpha1.Cluster{}
|
||||||
if err := tc.Client.Get(context.TODO(), req.NamespacedName, cluster); err != nil {
|
if err := tc.Client.Get(ctx, req.NamespacedName, cluster); err != nil {
|
||||||
// The resource may no longer exist, in which case we stop processing.
|
// The resource may no longer exist, in which case we stop processing.
|
||||||
if apierrors.IsNotFound(err) {
|
if apierrors.IsNotFound(err) {
|
||||||
return controllerruntime.Result{}, nil
|
return controllerruntime.Result{}, nil
|
||||||
|
|
|
@ -53,7 +53,7 @@ func (c *Controller) Reconcile(ctx context.Context, req controllerruntime.Reques
|
||||||
klog.V(4).Infof("Reconciling Work %s", req.NamespacedName.String())
|
klog.V(4).Infof("Reconciling Work %s", req.NamespacedName.String())
|
||||||
|
|
||||||
work := &workv1alpha1.Work{}
|
work := &workv1alpha1.Work{}
|
||||||
if err := c.Client.Get(context.TODO(), req.NamespacedName, work); err != nil {
|
if err := c.Client.Get(ctx, req.NamespacedName, work); err != nil {
|
||||||
// The resource may no longer exist, in which case we stop processing.
|
// The resource may no longer exist, in which case we stop processing.
|
||||||
if apierrors.IsNotFound(err) {
|
if apierrors.IsNotFound(err) {
|
||||||
return controllerruntime.Result{}, nil
|
return controllerruntime.Result{}, nil
|
||||||
|
|
|
@ -49,7 +49,7 @@ func (c *StatusController) Reconcile(ctx context.Context, req controllerruntime.
|
||||||
klog.V(4).Infof("FederatedResourceQuota status controller reconciling %s", req.NamespacedName.String())
|
klog.V(4).Infof("FederatedResourceQuota status controller reconciling %s", req.NamespacedName.String())
|
||||||
|
|
||||||
quota := &policyv1alpha1.FederatedResourceQuota{}
|
quota := &policyv1alpha1.FederatedResourceQuota{}
|
||||||
if err := c.Get(context.TODO(), req.NamespacedName, quota); err != nil {
|
if err := c.Get(ctx, req.NamespacedName, quota); err != nil {
|
||||||
// The resource may no longer exist, in which case we stop processing.
|
// The resource may no longer exist, in which case we stop processing.
|
||||||
if apierrors.IsNotFound(err) {
|
if apierrors.IsNotFound(err) {
|
||||||
return controllerruntime.Result{}, nil
|
return controllerruntime.Result{}, nil
|
||||||
|
@ -62,7 +62,7 @@ func (c *StatusController) Reconcile(ctx context.Context, req controllerruntime.
|
||||||
}
|
}
|
||||||
|
|
||||||
workList := &workv1alpha1.WorkList{}
|
workList := &workv1alpha1.WorkList{}
|
||||||
if err := c.List(context.TODO(), workList, &client.ListOptions{
|
if err := c.List(ctx, workList, &client.ListOptions{
|
||||||
LabelSelector: labels.SelectorFromSet(labels.Set{
|
LabelSelector: labels.SelectorFromSet(labels.Set{
|
||||||
util.FederatedResourceQuotaNamespaceLabel: quota.Namespace,
|
util.FederatedResourceQuotaNamespaceLabel: quota.Namespace,
|
||||||
util.FederatedResourceQuotaNameLabel: quota.Name,
|
util.FederatedResourceQuotaNameLabel: quota.Name,
|
||||||
|
|
|
@ -45,7 +45,7 @@ func (c *SyncController) Reconcile(ctx context.Context, req controllerruntime.Re
|
||||||
klog.V(4).Infof("FederatedResourceQuota sync controller reconciling %s", req.NamespacedName.String())
|
klog.V(4).Infof("FederatedResourceQuota sync controller reconciling %s", req.NamespacedName.String())
|
||||||
|
|
||||||
quota := &policyv1alpha1.FederatedResourceQuota{}
|
quota := &policyv1alpha1.FederatedResourceQuota{}
|
||||||
if err := c.Client.Get(context.TODO(), req.NamespacedName, quota); err != nil {
|
if err := c.Client.Get(ctx, req.NamespacedName, quota); err != nil {
|
||||||
if apierrors.IsNotFound(err) {
|
if apierrors.IsNotFound(err) {
|
||||||
klog.V(4).Infof("Begin to cleanup works created by federatedResourceQuota(%s)", req.NamespacedName.String())
|
klog.V(4).Infof("Begin to cleanup works created by federatedResourceQuota(%s)", req.NamespacedName.String())
|
||||||
if err = c.cleanUpWorks(req.Namespace, req.Name); err != nil {
|
if err = c.cleanUpWorks(req.Namespace, req.Name); err != nil {
|
||||||
|
@ -58,7 +58,7 @@ func (c *SyncController) Reconcile(ctx context.Context, req controllerruntime.Re
|
||||||
}
|
}
|
||||||
|
|
||||||
clusterList := &clusterv1alpha1.ClusterList{}
|
clusterList := &clusterv1alpha1.ClusterList{}
|
||||||
if err := c.Client.List(context.TODO(), clusterList); err != nil {
|
if err := c.Client.List(ctx, clusterList); err != nil {
|
||||||
klog.Errorf("Failed to list clusters, error: %v", err)
|
klog.Errorf("Failed to list clusters, error: %v", err)
|
||||||
return controllerruntime.Result{Requeue: true}, err
|
return controllerruntime.Result{Requeue: true}, err
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,7 +38,7 @@ func (c *CRBGracefulEvictionController) Reconcile(ctx context.Context, req contr
|
||||||
klog.V(4).Infof("Reconciling ClusterResourceBinding %s.", req.NamespacedName.String())
|
klog.V(4).Infof("Reconciling ClusterResourceBinding %s.", req.NamespacedName.String())
|
||||||
|
|
||||||
binding := &workv1alpha2.ClusterResourceBinding{}
|
binding := &workv1alpha2.ClusterResourceBinding{}
|
||||||
if err := c.Client.Get(context.TODO(), req.NamespacedName, binding); err != nil {
|
if err := c.Client.Get(ctx, req.NamespacedName, binding); err != nil {
|
||||||
if apierrors.IsNotFound(err) {
|
if apierrors.IsNotFound(err) {
|
||||||
return controllerruntime.Result{}, nil
|
return controllerruntime.Result{}, nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,7 +38,7 @@ func (c *RBGracefulEvictionController) Reconcile(ctx context.Context, req contro
|
||||||
klog.V(4).Infof("Reconciling ResourceBinding %s.", req.NamespacedName.String())
|
klog.V(4).Infof("Reconciling ResourceBinding %s.", req.NamespacedName.String())
|
||||||
|
|
||||||
binding := &workv1alpha2.ResourceBinding{}
|
binding := &workv1alpha2.ResourceBinding{}
|
||||||
if err := c.Client.Get(context.TODO(), req.NamespacedName, binding); err != nil {
|
if err := c.Client.Get(ctx, req.NamespacedName, binding); err != nil {
|
||||||
if apierrors.IsNotFound(err) {
|
if apierrors.IsNotFound(err) {
|
||||||
return controllerruntime.Result{}, nil
|
return controllerruntime.Result{}, nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,7 +44,7 @@ func (c *HorizontalPodAutoscalerController) Reconcile(ctx context.Context, req c
|
||||||
klog.V(4).Infof("Reconciling HorizontalPodAutoscaler %s.", req.NamespacedName.String())
|
klog.V(4).Infof("Reconciling HorizontalPodAutoscaler %s.", req.NamespacedName.String())
|
||||||
|
|
||||||
hpa := &autoscalingv1.HorizontalPodAutoscaler{}
|
hpa := &autoscalingv1.HorizontalPodAutoscaler{}
|
||||||
if err := c.Client.Get(context.TODO(), req.NamespacedName, hpa); err != nil {
|
if err := c.Client.Get(ctx, req.NamespacedName, hpa); err != nil {
|
||||||
// The resource may no longer exist, in which case we delete related works.
|
// The resource may no longer exist, in which case we delete related works.
|
||||||
if apierrors.IsNotFound(err) {
|
if apierrors.IsNotFound(err) {
|
||||||
if err := c.deleteWorks(names.GenerateWorkName(util.HorizontalPodAutoscalerKind, req.Name, req.Namespace)); err != nil {
|
if err := c.deleteWorks(names.GenerateWorkName(util.HorizontalPodAutoscalerKind, req.Name, req.Namespace)); err != nil {
|
||||||
|
|
|
@ -36,7 +36,7 @@ func (c *EndpointSliceController) Reconcile(ctx context.Context, req controllerr
|
||||||
klog.V(4).Infof("Reconciling Work %s.", req.NamespacedName.String())
|
klog.V(4).Infof("Reconciling Work %s.", req.NamespacedName.String())
|
||||||
|
|
||||||
work := &workv1alpha1.Work{}
|
work := &workv1alpha1.Work{}
|
||||||
if err := c.Client.Get(context.TODO(), req.NamespacedName, work); err != nil {
|
if err := c.Client.Get(ctx, req.NamespacedName, work); err != nil {
|
||||||
if apierrors.IsNotFound(err) {
|
if apierrors.IsNotFound(err) {
|
||||||
// Cleanup derived EndpointSlices after work has been removed.
|
// Cleanup derived EndpointSlices after work has been removed.
|
||||||
err = helper.DeleteEndpointSlice(c.Client, labels.Set{
|
err = helper.DeleteEndpointSlice(c.Client, labels.Set{
|
||||||
|
|
|
@ -68,7 +68,7 @@ func (c *ServiceExportController) Reconcile(ctx context.Context, req controllerr
|
||||||
klog.V(4).Infof("Reconciling Work %s", req.NamespacedName.String())
|
klog.V(4).Infof("Reconciling Work %s", req.NamespacedName.String())
|
||||||
|
|
||||||
work := &workv1alpha1.Work{}
|
work := &workv1alpha1.Work{}
|
||||||
if err := c.Client.Get(context.TODO(), req.NamespacedName, work); err != nil {
|
if err := c.Client.Get(ctx, req.NamespacedName, work); err != nil {
|
||||||
if apierrors.IsNotFound(err) {
|
if apierrors.IsNotFound(err) {
|
||||||
return controllerruntime.Result{}, nil
|
return controllerruntime.Result{}, nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,7 +31,7 @@ func (c *ServiceImportController) Reconcile(ctx context.Context, req controllerr
|
||||||
klog.V(4).Infof("Reconciling ServiceImport %s.", req.NamespacedName.String())
|
klog.V(4).Infof("Reconciling ServiceImport %s.", req.NamespacedName.String())
|
||||||
|
|
||||||
svcImport := &mcsv1alpha1.ServiceImport{}
|
svcImport := &mcsv1alpha1.ServiceImport{}
|
||||||
if err := c.Client.Get(context.TODO(), req.NamespacedName, svcImport); err != nil {
|
if err := c.Client.Get(ctx, req.NamespacedName, svcImport); err != nil {
|
||||||
if apierrors.IsNotFound(err) {
|
if apierrors.IsNotFound(err) {
|
||||||
return c.deleteDerivedService(req.NamespacedName)
|
return c.deleteDerivedService(req.NamespacedName)
|
||||||
}
|
}
|
||||||
|
|
|
@ -108,7 +108,7 @@ func (c *ClusterStatusController) Reconcile(ctx context.Context, req controllerr
|
||||||
klog.V(4).Infof("Syncing cluster status: %s", req.NamespacedName.Name)
|
klog.V(4).Infof("Syncing cluster status: %s", req.NamespacedName.Name)
|
||||||
|
|
||||||
cluster := &clusterv1alpha1.Cluster{}
|
cluster := &clusterv1alpha1.Cluster{}
|
||||||
if err := c.Client.Get(context.TODO(), req.NamespacedName, cluster); err != nil {
|
if err := c.Client.Get(ctx, req.NamespacedName, cluster); err != nil {
|
||||||
// The resource may no longer exist, in which case we stop the informer.
|
// The resource may no longer exist, in which case we stop the informer.
|
||||||
if apierrors.IsNotFound(err) {
|
if apierrors.IsNotFound(err) {
|
||||||
c.GenericInformerManager.Stop(req.NamespacedName.Name)
|
c.GenericInformerManager.Stop(req.NamespacedName.Name)
|
||||||
|
|
|
@ -63,7 +63,7 @@ func (c *WorkStatusController) Reconcile(ctx context.Context, req controllerrunt
|
||||||
klog.V(4).Infof("Reconciling status of Work %s.", req.NamespacedName.String())
|
klog.V(4).Infof("Reconciling status of Work %s.", req.NamespacedName.String())
|
||||||
|
|
||||||
work := &workv1alpha1.Work{}
|
work := &workv1alpha1.Work{}
|
||||||
if err := c.Client.Get(context.TODO(), req.NamespacedName, work); err != nil {
|
if err := c.Client.Get(ctx, req.NamespacedName, work); err != nil {
|
||||||
// The resource may no longer exist, in which case we stop processing.
|
// The resource may no longer exist, in which case we stop processing.
|
||||||
if apierrors.IsNotFound(err) {
|
if apierrors.IsNotFound(err) {
|
||||||
return controllerruntime.Result{}, nil
|
return controllerruntime.Result{}, nil
|
||||||
|
|
|
@ -48,7 +48,7 @@ func (c *Controller) Reconcile(ctx context.Context, req controllerruntime.Reques
|
||||||
klog.V(4).Infof("Reconciling cluster %s", req.NamespacedName.String())
|
klog.V(4).Infof("Reconciling cluster %s", req.NamespacedName.String())
|
||||||
|
|
||||||
cluster := &clusterv1alpha1.Cluster{}
|
cluster := &clusterv1alpha1.Cluster{}
|
||||||
if err := c.Client.Get(context.TODO(), req.NamespacedName, cluster); err != nil {
|
if err := c.Client.Get(ctx, req.NamespacedName, cluster); err != nil {
|
||||||
// The resource may no longer exist, in which case we stop processing.
|
// The resource may no longer exist, in which case we stop processing.
|
||||||
if apierrors.IsNotFound(err) {
|
if apierrors.IsNotFound(err) {
|
||||||
return controllerruntime.Result{}, nil
|
return controllerruntime.Result{}, nil
|
||||||
|
|
Loading…
Reference in New Issue