@@ -2,7 +2,6 @@ package controllers
22
33import (
44 "context"
5- "time"
65
76 "github.com/go-logr/logr"
87 "k8s.io/apimachinery/pkg/api/errors"
@@ -27,6 +26,7 @@ type ScheduleReconciler struct {
2726
2827// +kubebuilder:rbac:groups=k8up.io,resources=schedules,verbs=get;list;watch;create;update;patch;delete
2928// +kubebuilder:rbac:groups=k8up.io,resources=schedules/status;schedules/finalizers,verbs=get;update;patch
29+ // The following permissions are just for backwards compatibility.
3030// +kubebuilder:rbac:groups=k8up.io,resources=effectiveschedules,verbs=get;list;watch;create;update;patch;delete
3131// +kubebuilder:rbac:groups=k8up.io,resources=effectiveschedules/finalizers,verbs=update
3232
@@ -44,13 +44,6 @@ func (r *ScheduleReconciler) Reconcile(ctx context.Context, req ctrl.Request) (c
4444 return reconcile.Result {}, err
4545 }
4646
47- effectiveSchedules , err := r .fetchEffectiveSchedules (ctx , schedule )
48- if err != nil {
49- requeueAfter := 60 * time .Second
50- r .Log .Info ("could not retrieve list of effective schedules" , "error" , err .Error (), "retry_after" , requeueAfter )
51- return ctrl.Result {Requeue : true , RequeueAfter : requeueAfter }, err
52- }
53-
5447 repository := cfg .Config .GetGlobalRepository ()
5548 if schedule .Spec .Backend != nil {
5649 repository = schedule .Spec .Backend .String ()
@@ -60,7 +53,7 @@ func (r *ScheduleReconciler) Reconcile(ctx context.Context, req ctrl.Request) (c
6053 }
6154 config := job .NewConfig (ctx , r .Client , log , schedule , r .Scheme , repository )
6255
63- return ctrl.Result {}, handler .NewScheduleHandler (config , schedule , effectiveSchedules ).Handle ()
56+ return ctrl.Result {}, handler .NewScheduleHandler (config , schedule ).Handle ()
6457}
6558
6659// SetupWithManager configures the reconciler.
@@ -73,31 +66,3 @@ func (r *ScheduleReconciler) SetupWithManager(mgr ctrl.Manager, l logr.Logger) e
7366 WithEventFilter (predicate.GenerationChangedPredicate {}).
7467 Complete (r )
7568}
76-
77- // fetchEffectiveSchedules retrieves a list of EffectiveSchedules and filter the one that matches the given schedule.
78- // Returns an error if the listing failed, but empty map when no matching EffectiveSchedule object was found.
79- func (r * ScheduleReconciler ) fetchEffectiveSchedules (ctx context.Context , schedule * k8upv1.Schedule ) (map [k8upv1.JobType ]k8upv1.EffectiveSchedule , error ) {
80- list := k8upv1.EffectiveScheduleList {}
81- err := r .Client .List (ctx , & list , client .InNamespace (cfg .Config .OperatorNamespace ))
82- if err != nil {
83- return map [k8upv1.JobType ]k8upv1.EffectiveSchedule {}, err
84- }
85- return filterEffectiveSchedulesForReferencesOfSchedule (list , schedule ), nil
86- }
87-
88- // filterEffectiveSchedulesForReferencesOfSchedule iterates over the given list of EffectiveSchedules and returns results that reference the given schedule in their spec.
89- // It returns an empty map if no element matches.
90- func filterEffectiveSchedulesForReferencesOfSchedule (list k8upv1.EffectiveScheduleList , schedule * k8upv1.Schedule ) map [k8upv1.JobType ]k8upv1.EffectiveSchedule {
91- filtered := map [k8upv1.JobType ]k8upv1.EffectiveSchedule {}
92- for _ , es := range list .Items {
93- if es .GetDeletionTimestamp () != nil {
94- continue
95- }
96- for _ , jobRef := range es .Spec .ScheduleRefs {
97- if schedule .IsReferencedBy (jobRef ) {
98- filtered [es .Spec .JobType ] = es
99- }
100- }
101- }
102- return filtered
103- }
0 commit comments