From 261b5f285c4483afcb925af775ba7d38dfc3ad33 Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Sun, 26 May 2024 01:33:21 +0200 Subject: [PATCH 01/47] create dummy cronjobs from sleepcycle --- api/v1alpha1/sleepcycle_types.go | 13 +- api/v1alpha1/zz_generated.deepcopy.go | 26 +- .../bases/core.rekuberate.io_sleepcycles.yaml | 25 - .../core_v1alpha1_sleepcycle_app_1.yaml | 4 +- .../core_v1alpha1_sleepcycle_app_2.yaml | 4 +- controllers/sleepcycle_controller.go | 164 ++---- controllers/sleepcycle_cronjobs.go | 186 +++++++ controllers/sleepcycle_reconcilers.go | 446 ++++++++--------- controllers/sleepcycle_utils.go | 470 +++++++++--------- go.mod | 7 +- go.sum | 4 +- 11 files changed, 676 insertions(+), 673 deletions(-) create mode 100644 controllers/sleepcycle_cronjobs.go diff --git a/api/v1alpha1/sleepcycle_types.go b/api/v1alpha1/sleepcycle_types.go index f7eabc2..13828ee 100644 --- a/api/v1alpha1/sleepcycle_types.go +++ b/api/v1alpha1/sleepcycle_types.go @@ -35,7 +35,7 @@ type SleepCycleSpec struct { // +kubebuilder:validation:Pattern:=`(^((\*\/)?([0-5]?[0-9])((\,|\-|\/)([0-5]?[0-9]))*|\*)\s+((\*\/)?((2[0-3]|1[0-9]|[0-9]|00))((\,|\-|\/)(2[0-3]|1[0-9]|[0-9]|00))*|\*)\s+((\*\/)?([1-9]|[12][0-9]|3[01])((\,|\-|\/)([1-9]|[12][0-9]|3[01]))*|\*)\s+((\*\/)?([1-9]|1[0-2])((\,|\-|\/)([1-9]|1[0-2]))*|\*|(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|des))\s+((\*\/)?[0-6]((\,|\-|\/)[0-6])*|\*|00|(sun|mon|tue|wed|thu|fri|sat))\s*$)|@(annually|yearly|monthly|weekly|daily|hourly|reboot)` // +kubebuilder:validation:Type=string - WakeUp string `json:"wakeup,omitempty"` + WakeUp *string `json:"wakeup,omitempty"` // +kubebuilder:validation:Optional // +kubebuilder:default:="UTC" @@ -48,14 +48,7 @@ type SleepCycleSpec struct { // SleepCycleStatus defines the observed state of SleepCycle type SleepCycleStatus struct { - UsedBy map[string]int `json:"usedBy,omitempty"` - Enabled bool `json:"enabled,omitempty"` - NextScheduledShutdownTime *metav1.Time `json:"nextScheduledShutdown,omitempty"` - NextScheduledWakeupTime *metav1.Time `json:"nextScheduledWakeUp,omitempty"` - NextScheduledOp string `json:"nextScheduledOp,omitempty"` - LastRunTime *metav1.Time `json:"lastRunTime,omitempty"` - LastRunOperation string `json:"lastRunOperation,omitempty"` - LastRunWasSuccessful bool `json:"lastRunWasSuccessful,omitempty"` + Enabled bool `json:"enabled,omitempty"` } //+kubebuilder:object:root=true @@ -67,8 +60,6 @@ type SleepCycleStatus struct { // +kubebuilder:printcolumn:name="Wakeup Schedule",type=string,JSONPath=`.spec.wakeup` // +kubebuilder:printcolumn:name="Wakeup Timezone",type=string,JSONPath=`.spec.wakeupTimeZone` // +kubebuilder:printcolumn:name="Enabled",type=boolean,JSONPath=`.spec.enabled` -// +kubebuilder:printcolumn:name="Success",type=boolean,JSONPath=`.status.lastRunWasSuccessful` -// +kubebuilder:printcolumn:name="Last Op",type=string,JSONPath=`.status.lastRunOperation` type SleepCycle struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/api/v1alpha1/zz_generated.deepcopy.go b/api/v1alpha1/zz_generated.deepcopy.go index d5d48a9..21a25b4 100644 --- a/api/v1alpha1/zz_generated.deepcopy.go +++ b/api/v1alpha1/zz_generated.deepcopy.go @@ -31,7 +31,7 @@ func (in *SleepCycle) DeepCopyInto(out *SleepCycle) { out.TypeMeta = in.TypeMeta in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) + out.Status = in.Status } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SleepCycle. @@ -92,6 +92,11 @@ func (in *SleepCycleSpec) DeepCopyInto(out *SleepCycleSpec) { *out = new(string) **out = **in } + if in.WakeUp != nil { + in, out := &in.WakeUp, &out.WakeUp + *out = new(string) + **out = **in + } if in.WakeupTimeZone != nil { in, out := &in.WakeupTimeZone, &out.WakeupTimeZone *out = new(string) @@ -112,25 +117,6 @@ func (in *SleepCycleSpec) DeepCopy() *SleepCycleSpec { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *SleepCycleStatus) DeepCopyInto(out *SleepCycleStatus) { *out = *in - if in.UsedBy != nil { - in, out := &in.UsedBy, &out.UsedBy - *out = make(map[string]int, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - if in.NextScheduledShutdownTime != nil { - in, out := &in.NextScheduledShutdownTime, &out.NextScheduledShutdownTime - *out = (*in).DeepCopy() - } - if in.NextScheduledWakeupTime != nil { - in, out := &in.NextScheduledWakeupTime, &out.NextScheduledWakeupTime - *out = (*in).DeepCopy() - } - if in.LastRunTime != nil { - in, out := &in.LastRunTime, &out.LastRunTime - *out = (*in).DeepCopy() - } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SleepCycleStatus. diff --git a/config/crd/bases/core.rekuberate.io_sleepcycles.yaml b/config/crd/bases/core.rekuberate.io_sleepcycles.yaml index 4179450..e3b3749 100644 --- a/config/crd/bases/core.rekuberate.io_sleepcycles.yaml +++ b/config/crd/bases/core.rekuberate.io_sleepcycles.yaml @@ -31,12 +31,6 @@ spec: - jsonPath: .spec.enabled name: Enabled type: boolean - - jsonPath: .status.lastRunWasSuccessful - name: Success - type: boolean - - jsonPath: .status.lastRunOperation - name: Last Op - type: string name: v1alpha1 schema: openAPIV3Schema: @@ -80,25 +74,6 @@ spec: properties: enabled: type: boolean - lastRunOperation: - type: string - lastRunTime: - format: date-time - type: string - lastRunWasSuccessful: - type: boolean - nextScheduledOp: - type: string - nextScheduledShutdown: - format: date-time - type: string - nextScheduledWakeUp: - format: date-time - type: string - usedBy: - additionalProperties: - type: integer - type: object type: object type: object served: true diff --git a/config/samples/core_v1alpha1_sleepcycle_app_1.yaml b/config/samples/core_v1alpha1_sleepcycle_app_1.yaml index 982d504..63b0187 100644 --- a/config/samples/core_v1alpha1_sleepcycle_app_1.yaml +++ b/config/samples/core_v1alpha1_sleepcycle_app_1.yaml @@ -4,8 +4,8 @@ metadata: name: sleepcycle-app-1 namespace: app-1 spec: - shutdown: "*/1 * * * *" + shutdown: "*/2 * * * *" shutdownTimeZone: "Europe/Athens" - wakeup: "*/2 * * * *" + wakeup: "*/5 * * * *" wakeupTimeZone: "Europe/Dublin" enabled: true \ No newline at end of file diff --git a/config/samples/core_v1alpha1_sleepcycle_app_2.yaml b/config/samples/core_v1alpha1_sleepcycle_app_2.yaml index c883430..26f7209 100644 --- a/config/samples/core_v1alpha1_sleepcycle_app_2.yaml +++ b/config/samples/core_v1alpha1_sleepcycle_app_2.yaml @@ -4,8 +4,8 @@ metadata: name: sleepcycle-app-2 namespace: app-2 spec: - shutdown: "*/1 * * * *" + shutdown: "*/2 * * * *" shutdownTimeZone: "Europe/Athens" - wakeup: "*/2 * * * *" + wakeup: "*/5 * * * *" wakeupTimeZone: "Europe/Dublin" enabled: true \ No newline at end of file diff --git a/controllers/sleepcycle_controller.go b/controllers/sleepcycle_controller.go index ec6ce85..6961549 100644 --- a/controllers/sleepcycle_controller.go +++ b/controllers/sleepcycle_controller.go @@ -20,32 +20,32 @@ import ( "context" "fmt" "github.com/go-logr/logr" - "k8s.io/client-go/tools/record" - "sigs.k8s.io/controller-runtime/pkg/builder" - "sigs.k8s.io/controller-runtime/pkg/event" - "sigs.k8s.io/controller-runtime/pkg/predicate" - "strings" - "time" - + "github.com/hashicorp/go-multierror" corev1alpha1 "github.com/rekuberate-io/sleepcycles/api/v1alpha1" appsv1 "k8s.io/api/apps/v1" autoscalingv1 "k8s.io/api/autoscaling/v1" batchv1 "k8s.io/api/batch/v1" corev1 "k8s.io/api/core/v1" apierrors "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/client-go/tools/record" ctrl "sigs.k8s.io/controller-runtime" + "sigs.k8s.io/controller-runtime/pkg/builder" "sigs.k8s.io/controller-runtime/pkg/client" + "sigs.k8s.io/controller-runtime/pkg/event" "sigs.k8s.io/controller-runtime/pkg/log" + "sigs.k8s.io/controller-runtime/pkg/predicate" + "strings" + "time" ) const ( - SleepCycleLabel = "rekuberate.io/sleepcycle" - SleepCycleFinalizer = "sleepcycle.core.rekuberate.io/finalizer" - TimeWindowToleranceInSeconds int = 30 - SleepCycleStatusUpdateFailure string = "failed to update SleepCycle Status" - SleepCycleFinalizerFailure string = "finalizer failed" + SleepCycleLabel = "rekuberate.io/sleepcycle" + SleepCycleFinalizer = "sleepcycle.core.rekuberate.io/finalizer" + TimeWindowToleranceInSeconds int = 30 + requeueAfter time.Duration = 60 * time.Second + SleepCycleStatusUpdateFailure string = "failed to update status" + SleepCycleFinalizerFailure string = "finalizer failed" ) // SleepCycleReconciler reconciles a SleepCycle object @@ -59,10 +59,8 @@ type SleepCycleReconciler struct { type runtimeObjectReconciler func( ctx context.Context, req ctrl.Request, - original *corev1alpha1.SleepCycle, - desired *corev1alpha1.SleepCycle, - op SleepCycleOperation, -) (ctrl.Result, error) + sleepcycle *corev1alpha1.SleepCycle, +) error type runtimeObjectFinalizer func( ctx context.Context, @@ -117,121 +115,41 @@ func (r *SleepCycleReconciler) Reconcile(ctx context.Context, req ctrl.Request) return ctrl.Result{}, nil } - r.logger.Error(err, "🛑 unable to fetch SleepCycle") + r.logger.Error(err, "unable to fetch sleepcycle") return ctrl.Result{}, err } - sleepCycleFullName := fmt.Sprintf("%v/%v", original.Namespace, original.Name) - - //TODO: Bug finalizer creates a deadlock when removing or upgrading - - //if original.ObjectMeta.DeletionTimestamp.IsZero() { - // // The object is not being deleted, so if it does not have our finalizer, - // // then lets add the finalizer and update the object. - // if !containsString(original.ObjectMeta.Finalizers, SleepCycleFinalizer) { - // original.ObjectMeta.Finalizers = append(original.ObjectMeta.Finalizers, SleepCycleFinalizer) - // if err := r.Update(ctx, &original); err != nil { - // r.logger.Error(err, fmt.Sprintf("🛑️ %s", SleepCycleStatusUpdateFailure), "sleepcycle", sleepCycleFullName) - // r.Recorder.Event(&original, corev1.EventTypeWarning, "SleepCycleStatus", strings.ToLower(SleepCycleStatusUpdateFailure)) - // return ctrl.Result{}, err - // } - // } - //} else { - // // The object is being deleted - // if containsString(original.ObjectMeta.Finalizers, SleepCycleFinalizer) { - // // our finalizer is present, so lets handle our external dependency - // finalizers := []runtimeObjectFinalizer{r.FinalizeDeployments, r.FinalizeCronJobs, r.FinalizeStatefulSets, r.FinalizeHorizontalPodAutoscalers} - // for _, finalizer := range finalizers { - // result, err := finalizer(ctx, req, &original) - // if err != nil { - // r.logger.Error(err, fmt.Sprintf("🛑️ %s", SleepCycleFinalizerFailure), "sleepcycle", sleepCycleFullName) - // r.Recorder.Event(&original, corev1.EventTypeWarning, "SleepCycleFinalizerFailure", fmt.Sprintf( - // "%s: %s", - // SleepCycleFinalizerFailure, - // err.Error(), - // )) - // - // return result, err - // } - // } - // - // // remove our finalizer from the list and update it. - // original.ObjectMeta.Finalizers = removeString(original.ObjectMeta.Finalizers, SleepCycleFinalizer) - // if err := r.Update(ctx, &original); err != nil { - // r.logger.Error(err, fmt.Sprintf("🛑️ %s", SleepCycleStatusUpdateFailure), "sleepcycle", sleepCycleFullName) - // r.Recorder.Event(&original, corev1.EventTypeWarning, "SleepCycleStatus", strings.ToLower(SleepCycleStatusUpdateFailure)) - // return ctrl.Result{}, err - // } - // } - // - // // Our finalizer has finished, so the reconciler can do nothing. - // return reconcile.Result{}, nil - //} - - if !original.Spec.Enabled { - return ctrl.Result{}, nil - } + reconcilers := []runtimeObjectReconciler{r.ReconcileDeployments} + var errors error - currentOperation := r.getCurrentScheduledOperation(original) - - desired := *original.DeepCopy() - desired.Status.LastRunOperation = currentOperation.String() - if desired.Status.UsedBy == nil { - usedBy := make(map[string]int) - desired.Status.UsedBy = usedBy - } - - r.logger = r.logger.WithValues("op", currentOperation.String()) - - if currentOperation != Watch { - reconcilers := []runtimeObjectReconciler{r.ReconcileDeployments, r.ReconcileCronJobs, r.ReconcileStatefulSets, r.ReconcileHorizontalPodAutoscalers} - - for _, reconciler := range reconcilers { - result, err := reconciler(ctx, req, &original, &desired, currentOperation) - if err != nil { - if currentOperation != Watch { - desired.Status.LastRunTime = &metav1.Time{Time: time.Now()} - desired.Status.LastRunWasSuccessful = false - } - - if err := r.Status().Update(ctx, &desired); err != nil { - r.logger.Error(err, fmt.Sprintf("🛑️ %s", SleepCycleStatusUpdateFailure), "sleepcycle", sleepCycleFullName) - r.Recorder.Event(&original, corev1.EventTypeWarning, "SleepCycleStatus", strings.ToLower(SleepCycleStatusUpdateFailure)) - return ctrl.Result{}, err - } - - return result, err - } + for _, reconciler := range reconcilers { + err := reconciler(ctx, req, &original) + if err != nil { + //r.logger.Error(err, "reconciliation failure") + errors = multierror.Append(errors, err) } - - desired.Status.LastRunTime = &metav1.Time{Time: time.Now()} - desired.Status.LastRunWasSuccessful = true } - nextScheduledShutdown, nextScheduledWakeup := r.getSchedulesTime(original, false) - if nextScheduledWakeup != nil { - tz := r.getTimeZone(original.Spec.WakeupTimeZone) - t := nextScheduledWakeup.In(tz) - desired.Status.NextScheduledWakeupTime = &metav1.Time{Time: t} - } else { - desired.Status.NextScheduledWakeupTime = nil - } - tz := r.getTimeZone(original.Spec.ShutdownTimeZone) - t := nextScheduledShutdown.In(tz) - desired.Status.NextScheduledShutdownTime = &metav1.Time{Time: t} - - if err := r.Status().Update(ctx, &desired); err != nil { - r.logger.Error(err, fmt.Sprintf("🛑️ %s", SleepCycleStatusUpdateFailure), "sleepcycle", sleepCycleFullName) - r.Recorder.Event(&original, corev1.EventTypeWarning, "SleepCycleStatus", strings.ToLower(SleepCycleStatusUpdateFailure)) - return ctrl.Result{}, err - } - - nextOperation, requeueAfter := r.getNextScheduledOperation(original, ¤tOperation) - - r.logger.Info("Requeue", "next-op", nextOperation.String(), "after", requeueAfter) - return ctrl.Result{RequeueAfter: requeueAfter}, nil + return ctrl.Result{RequeueAfter: requeueAfter}, errors } +//if !original.Spec.Enabled { +// return ctrl.Result{}, nil +//} +//desired := *original.DeepCopy() +//reconcilers := []runtimeObjectReconciler{r.ReconcileDeployments, r.ReconcileCronJobs, r.ReconcileStatefulSets, r.ReconcileHorizontalPodAutoscalers} + +//r.logger = r.logger.WithValues("op", currentOperation.String()) +//tz := r.getTimeZone(original.Spec.ShutdownTimeZone) +//t := nextScheduledShutdown.In(tz) +//desired.Status.NextScheduledShutdownTime = &metav1.Time{Time: t} + +//if err := r.Status().Update(ctx, &desired); err != nil { +// r.logger.Error(err, fmt.Sprintf("🛑️ %s", SleepCycleStatusUpdateFailure), "sleepcycle", sleepCycleFullName) +// r.Recorder.Event(&original, corev1.EventTypeWarning, "SleepCycleStatus", strings.ToLower(SleepCycleStatusUpdateFailure)) +// return ctrl.Result{}, err +//} + func (r *SleepCycleReconciler) ScaleDeployment(ctx context.Context, deployment appsv1.Deployment, replicas int32) error { deepCopy := *deployment.DeepCopy() *deepCopy.Spec.Replicas = replicas diff --git a/controllers/sleepcycle_cronjobs.go b/controllers/sleepcycle_cronjobs.go new file mode 100644 index 0000000..76e9084 --- /dev/null +++ b/controllers/sleepcycle_cronjobs.go @@ -0,0 +1,186 @@ +package controllers + +import ( + "context" + "fmt" + "github.com/go-logr/logr" + corev1alpha1 "github.com/rekuberate-io/sleepcycles/api/v1alpha1" + batchv1 "k8s.io/api/batch/v1" + v1 "k8s.io/api/core/v1" + apierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + ctrl "sigs.k8s.io/controller-runtime" + "sigs.k8s.io/controller-runtime/pkg/client" +) + +var ( + startingDeadlineSeconds int64 = 15 +) + +func (r *SleepCycleReconciler) getCronJob(ctx context.Context, objKey client.ObjectKey) (*batchv1.CronJob, error) { + var job batchv1.CronJob + if err := r.Get(ctx, objKey, &job); err != nil { + if apierrors.IsNotFound(err) { + return nil, nil + } + + return nil, err + } + + return &job, nil +} + +func (r *SleepCycleReconciler) createCronJob( + ctx context.Context, + logger logr.Logger, + sleepcycle *corev1alpha1.SleepCycle, + objKey client.ObjectKey, + isShutdownOp bool, +) (*batchv1.CronJob, error) { + + backOffLimit := int32(0) + schedule := sleepcycle.Spec.Shutdown + tz := sleepcycle.Spec.ShutdownTimeZone + suspend := !sleepcycle.Spec.Enabled + + if !isShutdownOp { + schedule = *sleepcycle.Spec.WakeUp + tz = sleepcycle.Spec.WakeupTimeZone + } + + job := &batchv1.CronJob{ + ObjectMeta: metav1.ObjectMeta{ + Name: objKey.Name, + Namespace: objKey.Namespace, + }, + Spec: batchv1.CronJobSpec{ + Schedule: schedule, + TimeZone: tz, + StartingDeadlineSeconds: &startingDeadlineSeconds, + ConcurrencyPolicy: batchv1.ForbidConcurrent, + Suspend: &suspend, + JobTemplate: batchv1.JobTemplateSpec{ + Spec: batchv1.JobSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: objKey.Name, + Image: "ubuntu:latest", + Command: []string{"ls", "-aRil"}, + }, + }, + RestartPolicy: v1.RestartPolicyOnFailure, + }, + }, + BackoffLimit: &backOffLimit, + }, + }, + }, + } + + err := ctrl.SetControllerReference(sleepcycle, job, r.Scheme) + if err != nil { + logger.Error(err, "unable to set controller reference", "cronjob", objKey.Name) + return nil, err + } + + err = r.Create(ctx, job) + if err != nil { + logger.Error(err, "unable to create internal cronjob", "cronjob", objKey.Name) + return nil, err + } + + return job, nil +} + +func (r *SleepCycleReconciler) updateCronJob(ctx context.Context, cronJob *batchv1.CronJob, schedule string, timezone string, suspend bool) error { + deepCopy := cronJob.DeepCopy() + deepCopy.Spec.Schedule = schedule + *deepCopy.Spec.TimeZone = timezone + *deepCopy.Spec.Suspend = suspend + + if err := r.Update(ctx, deepCopy); err != nil { + return err + } + + return nil +} + +func (r *SleepCycleReconciler) deleteCronJob(ctx context.Context, cronJob *batchv1.CronJob) error { + if err := r.Delete(ctx, cronJob); err != nil { + return err + } + + return nil +} + +func (r *SleepCycleReconciler) reconcileCronJob(ctx context.Context, logger logr.Logger, sleepcycle *corev1alpha1.SleepCycle, objectMetadata ctrl.ObjectMeta, isShutdownOp bool) error { + suffix := "shutdown" + if !isShutdownOp { + suffix = "wakeup" + } + + objectKey := client.ObjectKey{ + Name: fmt.Sprintf("%s-%s-%s", sleepcycle.Name, objectMetadata.Name, suffix), + Namespace: sleepcycle.Namespace, + } + cronjob, err := r.getCronJob(ctx, objectKey) + if err != nil { + logger.Error(err, "unable to fetch internal cronjob", "cronjob", objectKey.Name) + return err + } + + if cronjob == nil { + _, err := r.createCronJob(ctx, logger, sleepcycle, objectKey, isShutdownOp) + if err != nil { + return err + } + } + + if cronjob != nil { + if !isShutdownOp && sleepcycle.Spec.WakeUp == nil { + err := r.deleteCronJob(ctx, cronjob) + if err != nil { + return err + } + } + + schedule := sleepcycle.Spec.Shutdown + tz := sleepcycle.Spec.ShutdownTimeZone + suspend := !sleepcycle.Spec.Enabled + if !isShutdownOp { + schedule = *sleepcycle.Spec.WakeUp + tz = sleepcycle.Spec.WakeupTimeZone + } + + if cronjob.Spec.Suspend != &suspend || cronjob.Spec.Schedule != schedule || cronjob.Spec.TimeZone != tz { + err := r.updateCronJob(ctx, cronjob, schedule, *tz, suspend) + if err != nil { + logger.Error(err, "failed to update internal cronjob", "name", objectKey.Name) + return err + } + } + } + + return nil +} + +func (r *SleepCycleReconciler) reconcile(ctx context.Context, logger logr.Logger, sleepcycle *corev1alpha1.SleepCycle, objectMetadata ctrl.ObjectMeta) error { + hasSleepCycle := r.hasLabel(&objectMetadata, sleepcycle.Name) + if hasSleepCycle { + err := r.reconcileCronJob(ctx, logger, sleepcycle, objectMetadata, true) + if err != nil { + return err + } + + if sleepcycle.Spec.WakeUp != nil { + err := r.reconcileCronJob(ctx, logger, sleepcycle, objectMetadata, false) + if err != nil { + return err + } + } + } + + return nil +} diff --git a/controllers/sleepcycle_reconcilers.go b/controllers/sleepcycle_reconcilers.go index 33403bf..5a9a7d7 100644 --- a/controllers/sleepcycle_reconcilers.go +++ b/controllers/sleepcycle_reconcilers.go @@ -2,11 +2,9 @@ package controllers import ( "context" - "fmt" + "github.com/hashicorp/go-multierror" corev1alpha1 "github.com/rekuberate-io/sleepcycles/api/v1alpha1" appsv1 "k8s.io/api/apps/v1" - autoscalingv1 "k8s.io/api/autoscaling/v1" - batchv1 "k8s.io/api/batch/v1" ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/client" ) @@ -15,260 +13,216 @@ const ( UsedByLabelKey = "(%v) %v/%v" ) -func (r *SleepCycleReconciler) ReconcileDeployments( - ctx context.Context, - req ctrl.Request, - original *corev1alpha1.SleepCycle, - desired *corev1alpha1.SleepCycle, - op SleepCycleOperation, -) (ctrl.Result, error) { +func (r *SleepCycleReconciler) ReconcileDeployments(ctx context.Context, req ctrl.Request, sleepcycle *corev1alpha1.SleepCycle) error { deploymentList := appsv1.DeploymentList{} if err := r.List(ctx, &deploymentList, &client.ListOptions{Namespace: req.NamespacedName.Namespace}); err != nil { - return ctrl.Result{}, err + return err } if len(deploymentList.Items) == 0 { - r.refreshLabelsDeployments(original, desired, deploymentList) - return ctrl.Result{}, nil + return nil } - r.logger.Info("📚 Processing Deployments") - + var errors error for _, deployment := range deploymentList.Items { - hasSleepCycle := r.hasLabel(&deployment.ObjectMeta, original.Name) - - if hasSleepCycle { - deploymentFullName := fmt.Sprintf(UsedByLabelKey, deployment.Kind, deployment.Namespace, deployment.Name) - desired.Status.Enabled = original.Spec.Enabled - - currentReplicas := int(deployment.Status.Replicas) - val, ok := desired.Status.UsedBy[deploymentFullName] - if !ok || (val != currentReplicas && currentReplicas > 0) { - desired.Status.UsedBy[deploymentFullName] = currentReplicas - } - - switch op { - case Watch: - case Shutdown: - if deployment.Status.Replicas != 0 { - err := r.ScaleDeployment(ctx, deployment, 0) - if err != nil { - r.logger.Error(err, "🛑️ Scaling Deployment failed", "deployment", deploymentFullName) - r.RecordEvent(*original, true, deploymentFullName, op, []string{err.Error()}...) - return ctrl.Result{}, err - } - - r.RecordEvent(*original, false, deploymentFullName, op, []string{fmt.Sprintf("Scaled from %d to %d replicas", currentReplicas, 0)}...) - r.logger.Info("🌙 Scaled Down Deployment", "deployment", deploymentFullName, "targetReplicas", 0) - } - case WakeUp: - targetReplicas := int32(desired.Status.UsedBy[deploymentFullName]) - - if deployment.Status.Replicas != targetReplicas { - err := r.ScaleDeployment(ctx, deployment, targetReplicas) - if err != nil { - r.logger.Error(err, "🛑️ Scaling Deployment failed", "deployment", deploymentFullName) - r.RecordEvent(*original, true, deploymentFullName, op, []string{err.Error()}...) - return ctrl.Result{}, err - } - - r.RecordEvent(*original, false, deploymentFullName, op, []string{fmt.Sprintf("Scaled from %d to %d replicas", currentReplicas, targetReplicas)}...) - r.logger.Info("☀️ Scaled Up Deployment", "deployment", deploymentFullName, "targetReplicas", targetReplicas) - } - } - } - } - - r.refreshLabelsDeployments(original, desired, deploymentList) - return ctrl.Result{}, nil -} - -func (r *SleepCycleReconciler) ReconcileCronJobs(ctx context.Context, - req ctrl.Request, - original *corev1alpha1.SleepCycle, - desired *corev1alpha1.SleepCycle, - op SleepCycleOperation, -) (ctrl.Result, error) { - cronJobList := batchv1.CronJobList{} - if err := r.List(ctx, &cronJobList, &client.ListOptions{Namespace: req.NamespacedName.Namespace}); err != nil { - return ctrl.Result{}, err - } + logger := r.logger.WithValues("deployment", deployment.Name) - if len(cronJobList.Items) == 0 { - return ctrl.Result{}, nil - } - - r.logger.Info("🕑 Processing CronJobs") - - for _, cronJob := range cronJobList.Items { - hasSleepCycle := r.hasLabel(&cronJob.ObjectMeta, original.Name) - - if hasSleepCycle { - cronJobFullName := fmt.Sprintf(UsedByLabelKey, cronJob.Kind, cronJob.Namespace, cronJob.Name) - - switch op { - case Watch: - case Shutdown: - if !*cronJob.Spec.Suspend { - err := r.SuspendCronJob(ctx, cronJob, true) - if err != nil { - r.logger.Error(err, "🛑️️ Suspending CronJob failed", "cronJob", cronJobFullName) - r.RecordEvent(*original, true, cronJobFullName, op, []string{err.Error()}...) - return ctrl.Result{}, err - } - - r.logger.Info("🌙 Suspended CronJob", "cronJob", cronJobFullName) - } - case WakeUp: - if *cronJob.Spec.Suspend { - err := r.SuspendCronJob(ctx, cronJob, false) - if err != nil { - r.logger.Error(err, "🛑️️ Suspending CronJob failed", "cronJob", cronJobFullName) - r.RecordEvent(*original, true, cronJobFullName, op, []string{err.Error()}...) - return ctrl.Result{}, err - } - - r.logger.Info("☀️ Enabled Cronjob", "cronJob", cronJobFullName) - } - } + err := r.reconcile(ctx, logger, sleepcycle, deployment.ObjectMeta) + if err != nil { + errors = multierror.Append(errors, err) } } - return ctrl.Result{}, nil + return errors } -func (r *SleepCycleReconciler) ReconcileStatefulSets( - ctx context.Context, - req ctrl.Request, - original *corev1alpha1.SleepCycle, - desired *corev1alpha1.SleepCycle, - op SleepCycleOperation, -) (ctrl.Result, error) { - statefulSetList := appsv1.StatefulSetList{} - if err := r.List(ctx, &statefulSetList, &client.ListOptions{Namespace: req.NamespacedName.Namespace}); err != nil { - return ctrl.Result{}, err - } - - if len(statefulSetList.Items) == 0 { - r.refreshLabelsStatefulSets(original, desired, statefulSetList) - return ctrl.Result{}, nil - } - - r.logger.Info("📦 Processing StatefulSets") - - for _, statefulSet := range statefulSetList.Items { - hasSleepCycle := r.hasLabel(&statefulSet.ObjectMeta, original.Name) - - if hasSleepCycle { - statefulSetFullName := fmt.Sprintf(UsedByLabelKey, statefulSet.Kind, statefulSet.Namespace, statefulSet.Name) - desired.Status.Enabled = original.Spec.Enabled - - currentReplicas := int(statefulSet.Status.Replicas) - val, ok := desired.Status.UsedBy[statefulSetFullName] - if !ok || (val != currentReplicas && currentReplicas > 0) { - desired.Status.UsedBy[statefulSetFullName] = currentReplicas - } - - switch op { - case Watch: - case Shutdown: - if statefulSet.Status.Replicas != 0 { - err := r.ScaleStatefulSet(ctx, statefulSet, 0) - if err != nil { - r.logger.Error(err, "🛑️ Scaling StatefulSet failed", "statefulSet", statefulSetFullName) - r.RecordEvent(*original, true, statefulSetFullName, op, []string{err.Error()}...) - return ctrl.Result{}, err - } - - r.RecordEvent(*original, false, statefulSetFullName, op, []string{fmt.Sprintf("Scaled from %d to %d replicas", currentReplicas, 0)}...) - r.logger.Info("🌙 Scaled Down StatefulSet", "statefulSet", statefulSetFullName, "targetReplicas", 0) - } - case WakeUp: - targetReplicas := int32(desired.Status.UsedBy[statefulSetFullName]) - - if statefulSet.Status.Replicas != targetReplicas { - err := r.ScaleStatefulSet(ctx, statefulSet, targetReplicas) - if err != nil { - r.logger.Error(err, "🛑️ Scaling StatefulSet failed", "statefulSet", statefulSetFullName) - r.RecordEvent(*original, true, statefulSetFullName, op, []string{err.Error()}...) - return ctrl.Result{}, err - } - - r.RecordEvent(*original, false, statefulSetFullName, op, []string{fmt.Sprintf("Scaled from %d to %d replicas", currentReplicas, targetReplicas)}...) - r.logger.Info("☀️ Scaled Up StatefulSet", "statefulSet", statefulSetFullName, "targetReplicas", targetReplicas) - } - } - } - } - - r.refreshLabelsStatefulSets(original, desired, statefulSetList) - return ctrl.Result{}, nil -} - -func (r *SleepCycleReconciler) ReconcileHorizontalPodAutoscalers( - ctx context.Context, - req ctrl.Request, - original *corev1alpha1.SleepCycle, - desired *corev1alpha1.SleepCycle, - op SleepCycleOperation, -) (ctrl.Result, error) { - hpaList := autoscalingv1.HorizontalPodAutoscalerList{} - if err := r.List(ctx, &hpaList, &client.ListOptions{Namespace: req.NamespacedName.Namespace}); err != nil { - return ctrl.Result{}, err - } - - if len(hpaList.Items) == 0 { - r.refreshLabelsHorizontalPodAutoscalers(original, desired, hpaList) - return ctrl.Result{}, nil - } - - r.logger.Info("📈 Processing HorizontalPodAutoscalers") - - for _, hpa := range hpaList.Items { - hasSleepCycle := r.hasLabel(&hpa.ObjectMeta, original.Name) - - if hasSleepCycle { - hpaFullName := fmt.Sprintf(UsedByLabelKey, hpa.Kind, hpa.Namespace, hpa.Name) - desired.Status.Enabled = original.Spec.Enabled - - maxReplicas := int(hpa.Spec.MaxReplicas) - val, ok := desired.Status.UsedBy[hpaFullName] - if !ok || (val != maxReplicas && maxReplicas > 0) { - desired.Status.UsedBy[hpaFullName] = maxReplicas - } - - switch op { - case Watch: - case Shutdown: - if hpa.Spec.MaxReplicas != 1 { - err := r.ScaleHorizontalPodAutoscaler(ctx, hpa, 1) - if err != nil { - r.logger.Error(err, "🛑️ Scaling HorizontalPodAutoscaler failed", "hpa", hpaFullName) - r.RecordEvent(*original, true, hpaFullName, op, []string{err.Error()}...) - return ctrl.Result{}, err - } - - r.RecordEvent(*original, false, hpaFullName, op, []string{fmt.Sprintf("Scaled from %d to %d max replicas", maxReplicas, 1)}...) - r.logger.Info("🌙 Scaled Down HorizontalPodAutoscaler", "hpa", hpaFullName, "maxReplicas", 1) - } - case WakeUp: - targetReplicas := int32(desired.Status.UsedBy[hpaFullName]) - - if hpa.Spec.MaxReplicas != targetReplicas { - err := r.ScaleHorizontalPodAutoscaler(ctx, hpa, targetReplicas) - if err != nil { - r.logger.Error(err, "🛑️ Scaling HorizontalPodAutoscaler failed", "hpa", hpaFullName) - r.RecordEvent(*original, true, hpaFullName, op, []string{err.Error()}...) - return ctrl.Result{}, err - } - - r.RecordEvent(*original, false, hpaFullName, op, []string{fmt.Sprintf("Scaled from %d to %d max replicas", maxReplicas, targetReplicas)}...) - r.logger.Info("☀️ Scaled Up HorizontalPodAutoscaler", "hpa", hpaFullName, "maxReplicas", targetReplicas) - } - } - } - } - - r.refreshLabelsHorizontalPodAutoscalers(original, desired, hpaList) - return ctrl.Result{}, nil -} +// +//func (r *SleepCycleReconciler) ReconcileCronJobs(ctx context.Context, +// req ctrl.Request, +// original *corev1alpha1.SleepCycle, +// desired *corev1alpha1.SleepCycle, +// op SleepCycleOperation, +//) (ctrl.Result, error) { +// cronJobList := batchv1.CronJobList{} +// if err := r.List(ctx, &cronJobList, &client.ListOptions{Namespace: req.NamespacedName.Namespace}); err != nil { +// return ctrl.Result{}, err +// } +// +// if len(cronJobList.Items) == 0 { +// return ctrl.Result{}, nil +// } +// +// r.logger.Info("🕑 Processing CronJobs") +// +// for _, cronJob := range cronJobList.Items { +// hasSleepCycle := r.hasLabel(&cronJob.ObjectMeta, original.Name) +// +// if hasSleepCycle { +// cronJobFullName := fmt.Sprintf(UsedByLabelKey, cronJob.Kind, cronJob.Namespace, cronJob.Name) +// +// switch op { +// case Watch: +// case Shutdown: +// if !*cronJob.Spec.Suspend { +// err := r.SuspendCronJob(ctx, cronJob, true) +// if err != nil { +// r.logger.Error(err, "🛑️️ Suspending CronJob failed", "cronJob", cronJobFullName) +// r.RecordEvent(*original, true, cronJobFullName, op, []string{err.Error()}...) +// return ctrl.Result{}, err +// } +// +// r.logger.Info("🌙 Suspended CronJob", "cronJob", cronJobFullName) +// } +// case WakeUp: +// if *cronJob.Spec.Suspend { +// err := r.SuspendCronJob(ctx, cronJob, false) +// if err != nil { +// r.logger.Error(err, "🛑️️ Suspending CronJob failed", "cronJob", cronJobFullName) +// r.RecordEvent(*original, true, cronJobFullName, op, []string{err.Error()}...) +// return ctrl.Result{}, err +// } +// +// r.logger.Info("☀️ Enabled Cronjob", "cronJob", cronJobFullName) +// } +// } +// } +// } +// +// return ctrl.Result{}, nil +//} +// +//func (r *SleepCycleReconciler) ReconcileStatefulSets( +// ctx context.Context, +// req ctrl.Request, +// original *corev1alpha1.SleepCycle, +// desired *corev1alpha1.SleepCycle, +// op SleepCycleOperation, +//) (ctrl.Result, error) { +// statefulSetList := appsv1.StatefulSetList{} +// if err := r.List(ctx, &statefulSetList, &client.ListOptions{Namespace: req.NamespacedName.Namespace}); err != nil { +// return ctrl.Result{}, err +// } +// +// if len(statefulSetList.Items) == 0 { +// r.refreshLabelsStatefulSets(original, desired, statefulSetList) +// return ctrl.Result{}, nil +// } +// +// r.logger.Info("📦 Processing StatefulSets") +// +// for _, statefulSet := range statefulSetList.Items { +// hasSleepCycle := r.hasLabel(&statefulSet.ObjectMeta, original.Name) +// +// if hasSleepCycle { +// statefulSetFullName := fmt.Sprintf(UsedByLabelKey, statefulSet.Kind, statefulSet.Namespace, statefulSet.Name) +// desired.Status.Enabled = original.Spec.Enabled +// +// currentReplicas := int(statefulSet.Status.Replicas) +// val, ok := desired.Status.UsedBy[statefulSetFullName] +// if !ok || (val != currentReplicas && currentReplicas > 0) { +// desired.Status.UsedBy[statefulSetFullName] = currentReplicas +// } +// +// switch op { +// case Watch: +// case Shutdown: +// if statefulSet.Status.Replicas != 0 { +// err := r.ScaleStatefulSet(ctx, statefulSet, 0) +// if err != nil { +// r.logger.Error(err, "🛑️ Scaling StatefulSet failed", "statefulSet", statefulSetFullName) +// r.RecordEvent(*original, true, statefulSetFullName, op, []string{err.Error()}...) +// return ctrl.Result{}, err +// } +// +// r.RecordEvent(*original, false, statefulSetFullName, op, []string{fmt.Sprintf("Scaled from %d to %d replicas", currentReplicas, 0)}...) +// r.logger.Info("🌙 Scaled Down StatefulSet", "statefulSet", statefulSetFullName, "targetReplicas", 0) +// } +// case WakeUp: +// targetReplicas := int32(desired.Status.UsedBy[statefulSetFullName]) +// +// if statefulSet.Status.Replicas != targetReplicas { +// err := r.ScaleStatefulSet(ctx, statefulSet, targetReplicas) +// if err != nil { +// r.logger.Error(err, "🛑️ Scaling StatefulSet failed", "statefulSet", statefulSetFullName) +// r.RecordEvent(*original, true, statefulSetFullName, op, []string{err.Error()}...) +// return ctrl.Result{}, err +// } +// +// r.RecordEvent(*original, false, statefulSetFullName, op, []string{fmt.Sprintf("Scaled from %d to %d replicas", currentReplicas, targetReplicas)}...) +// r.logger.Info("☀️ Scaled Up StatefulSet", "statefulSet", statefulSetFullName, "targetReplicas", targetReplicas) +// } +// } +// } +// } +// +// r.refreshLabelsStatefulSets(original, desired, statefulSetList) +// return ctrl.Result{}, nil +//} +// +//func (r *SleepCycleReconciler) ReconcileHorizontalPodAutoscalers( +// ctx context.Context, +// req ctrl.Request, +// original *corev1alpha1.SleepCycle, +// desired *corev1alpha1.SleepCycle, +// op SleepCycleOperation, +//) (ctrl.Result, error) { +// hpaList := autoscalingv1.HorizontalPodAutoscalerList{} +// if err := r.List(ctx, &hpaList, &client.ListOptions{Namespace: req.NamespacedName.Namespace}); err != nil { +// return ctrl.Result{}, err +// } +// +// if len(hpaList.Items) == 0 { +// r.refreshLabelsHorizontalPodAutoscalers(original, desired, hpaList) +// return ctrl.Result{}, nil +// } +// +// r.logger.Info("📈 Processing HorizontalPodAutoscalers") +// +// for _, hpa := range hpaList.Items { +// hasSleepCycle := r.hasLabel(&hpa.ObjectMeta, original.Name) +// +// if hasSleepCycle { +// hpaFullName := fmt.Sprintf(UsedByLabelKey, hpa.Kind, hpa.Namespace, hpa.Name) +// desired.Status.Enabled = original.Spec.Enabled +// +// maxReplicas := int(hpa.Spec.MaxReplicas) +// val, ok := desired.Status.UsedBy[hpaFullName] +// if !ok || (val != maxReplicas && maxReplicas > 0) { +// desired.Status.UsedBy[hpaFullName] = maxReplicas +// } +// +// switch op { +// case Watch: +// case Shutdown: +// if hpa.Spec.MaxReplicas != 1 { +// err := r.ScaleHorizontalPodAutoscaler(ctx, hpa, 1) +// if err != nil { +// r.logger.Error(err, "🛑️ Scaling HorizontalPodAutoscaler failed", "hpa", hpaFullName) +// r.RecordEvent(*original, true, hpaFullName, op, []string{err.Error()}...) +// return ctrl.Result{}, err +// } +// +// r.RecordEvent(*original, false, hpaFullName, op, []string{fmt.Sprintf("Scaled from %d to %d max replicas", maxReplicas, 1)}...) +// r.logger.Info("🌙 Scaled Down HorizontalPodAutoscaler", "hpa", hpaFullName, "maxReplicas", 1) +// } +// case WakeUp: +// targetReplicas := int32(desired.Status.UsedBy[hpaFullName]) +// +// if hpa.Spec.MaxReplicas != targetReplicas { +// err := r.ScaleHorizontalPodAutoscaler(ctx, hpa, targetReplicas) +// if err != nil { +// r.logger.Error(err, "🛑️ Scaling HorizontalPodAutoscaler failed", "hpa", hpaFullName) +// r.RecordEvent(*original, true, hpaFullName, op, []string{err.Error()}...) +// return ctrl.Result{}, err +// } +// +// r.RecordEvent(*original, false, hpaFullName, op, []string{fmt.Sprintf("Scaled from %d to %d max replicas", maxReplicas, targetReplicas)}...) +// r.logger.Info("☀️ Scaled Up HorizontalPodAutoscaler", "hpa", hpaFullName, "maxReplicas", targetReplicas) +// } +// } +// } +// } +// +// r.refreshLabelsHorizontalPodAutoscalers(original, desired, hpaList) +// return ctrl.Result{}, nil +//} diff --git a/controllers/sleepcycle_utils.go b/controllers/sleepcycle_utils.go index 668b854..1a068cb 100644 --- a/controllers/sleepcycle_utils.go +++ b/controllers/sleepcycle_utils.go @@ -1,153 +1,6 @@ package controllers -import ( - "fmt" - "github.com/gorhill/cronexpr" - corev1alpha1 "github.com/rekuberate-io/sleepcycles/api/v1alpha1" - appsv1 "k8s.io/api/apps/v1" - autoscalingv1 "k8s.io/api/autoscaling/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "strings" - "time" -) - -func (r *SleepCycleReconciler) getCurrentScheduledOperation(sleepCycle corev1alpha1.SleepCycle) SleepCycleOperation { - nextScheduledShutdown, nextScheduledWakeup := r.getSchedulesTime(sleepCycle, true) - nextScheduledShutdownTimeWindow := r.getScheduleTimeWindow(nextScheduledShutdown) - nextScheduledWakeupTimeWindow := r.getScheduleTimeWindow(nextScheduledWakeup) - - var isWithinScheduleForShutdown, isWithinScheduleForWakeup = false, false - isWithinScheduleForShutdown = nextScheduledShutdownTimeWindow.IsScheduleWithinWindow(time.Now()) - - if nextScheduledWakeup == nil { - if !isWithinScheduleForShutdown { - return Watch - } - - return Shutdown - } - - isWithinScheduleForWakeup = nextScheduledWakeupTimeWindow.IsScheduleWithinWindow(time.Now()) - - if nextScheduledShutdown.Before(*nextScheduledWakeup) && isWithinScheduleForShutdown { - return Shutdown - } - - if nextScheduledWakeup.Before(*nextScheduledShutdown) && isWithinScheduleForWakeup { - return WakeUp - } - - if isWithinScheduleForShutdown && isWithinScheduleForWakeup { - return WakeUp - } - - return Watch -} - -func (r *SleepCycleReconciler) getNextScheduledOperation(sleepCycle corev1alpha1.SleepCycle, currentOperation *SleepCycleOperation) (SleepCycleOperation, time.Duration) { - var requeueAfter time.Duration - - if currentOperation == nil { - *currentOperation = r.getCurrentScheduledOperation(sleepCycle) - } - - nextScheduledShutdown, nextScheduledWakeup := r.getSchedulesTime(sleepCycle, false) - var nextOperation SleepCycleOperation - - switch *currentOperation { - case Watch: - if nextScheduledWakeup == nil { - nextOperation = Shutdown - requeueAfter = time.Until(*nextScheduledShutdown) - } else { - if nextScheduledShutdown.Before(*nextScheduledWakeup) { - nextOperation = Shutdown - requeueAfter = time.Until(*nextScheduledShutdown) - } else { - nextOperation = WakeUp - requeueAfter = time.Until(*nextScheduledWakeup) - } - } - case Shutdown: - if nextScheduledWakeup == nil { - nextOperation = Shutdown - requeueAfter = time.Until(*nextScheduledShutdown) - } else { - nextOperation = WakeUp - requeueAfter = time.Until(*nextScheduledWakeup) - } - case WakeUp: - nextOperation = Shutdown - requeueAfter = time.Until(*nextScheduledShutdown) - } - - return nextOperation, requeueAfter -} - -func (r *SleepCycleReconciler) getScheduleTimeWindow(timestamp *time.Time) *TimeWindow { - if timestamp != nil { - return NewTimeWindow(*timestamp) - } - - return nil -} - -func (r *SleepCycleReconciler) getSchedulesTime(sleepCycle corev1alpha1.SleepCycle, useStatus bool) (shutdown *time.Time, wakeup *time.Time) { - shutdown = nil - wakeup = nil - - if !useStatus { - shutdown = r.getTimeFromCronExpression(sleepCycle.Spec.Shutdown, sleepCycle.Spec.ShutdownTimeZone) - wakeup = r.getTimeFromCronExpression(sleepCycle.Spec.WakeUp, sleepCycle.Spec.WakeupTimeZone) - } else { - if sleepCycle.Status.NextScheduledWakeupTime != nil { - wakeupTimeWindow := NewTimeWindow(sleepCycle.Status.NextScheduledWakeupTime.Time) - - if wakeupTimeWindow.Right.Before(time.Now()) { - wakeup = r.getTimeFromCronExpression(sleepCycle.Spec.WakeUp, sleepCycle.Spec.WakeupTimeZone) - } else { - wakeup = &sleepCycle.Status.NextScheduledWakeupTime.Time - } - } else { - wakeup = r.getTimeFromCronExpression(sleepCycle.Spec.WakeUp, sleepCycle.Spec.WakeupTimeZone) - } - - if sleepCycle.Status.NextScheduledShutdownTime != nil { - shutdownTimeWindow := NewTimeWindow(sleepCycle.Status.NextScheduledShutdownTime.Time) - - if shutdownTimeWindow.Right.Before(time.Now()) { - shutdown = r.getTimeFromCronExpression(sleepCycle.Spec.Shutdown, sleepCycle.Spec.ShutdownTimeZone) - } else { - shutdown = &sleepCycle.Status.NextScheduledShutdownTime.Time - } - } else { - shutdown = r.getTimeFromCronExpression(sleepCycle.Spec.Shutdown, sleepCycle.Spec.ShutdownTimeZone) - } - } - - return shutdown, wakeup -} - -func (r *SleepCycleReconciler) getTimeFromCronExpression(cronexp string, timezone *string) *time.Time { - tz := r.getTimeZone(timezone) - - cronExpression, err := cronexpr.Parse(cronexp) - if err == nil { - t := cronExpression.Next(time.Now().In(tz)) - return &t - } - return nil -} - -func (r *SleepCycleReconciler) getTimeZone(timezone *string) *time.Location { - tz, err := time.LoadLocation(*timezone) - if err != nil { - r.logger.Info(fmt.Sprintf("no valid timezone, reverting to UTC: %s", err.Error())) - tz, _ = time.LoadLocation("UTC") - } - - return tz -} +import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" func (r *SleepCycleReconciler) hasLabel(obj *metav1.ObjectMeta, tag string) bool { val, ok := obj.GetLabels()[SleepCycleLabel] @@ -159,94 +12,233 @@ func (r *SleepCycleReconciler) hasLabel(obj *metav1.ObjectMeta, tag string) bool return false } -func (r *SleepCycleReconciler) removeLabel(obj *metav1.ObjectMeta, tag string) bool { - val, ok := obj.GetLabels()[SleepCycleLabel] - - if ok && val == tag { - return true - } - - return false -} - -func (r *SleepCycleReconciler) refreshLabelsHorizontalPodAutoscalers(original *corev1alpha1.SleepCycle, desired *corev1alpha1.SleepCycle, hpas autoscalingv1.HorizontalPodAutoscalerList) { - usedBy := original.Status.UsedBy - if usedBy != nil { - for od, _ := range usedBy { - contains := false - if strings.HasPrefix(od, "(HorizontalPodAutoscaler)") { - for _, ed := range hpas.Items { - if od == fmt.Sprintf(UsedByLabelKey, ed.Kind, ed.Namespace, ed.Name) { - contains = true - break - } - } - - if !contains { - delete(desired.Status.UsedBy, od) - } - } - } - } -} - -func (r *SleepCycleReconciler) refreshLabelsStatefulSets(original *corev1alpha1.SleepCycle, desired *corev1alpha1.SleepCycle, statefulSets appsv1.StatefulSetList) { - usedBy := original.Status.UsedBy - if usedBy != nil { - for od, _ := range usedBy { - contains := false - if strings.HasPrefix(od, "(StatefulSet)") { - for _, ed := range statefulSets.Items { - if od == fmt.Sprintf(UsedByLabelKey, ed.Kind, ed.Namespace, ed.Name) { - contains = true - break - } - } - - if !contains { - delete(desired.Status.UsedBy, od) - } - } - } - } -} - -func (r *SleepCycleReconciler) refreshLabelsDeployments(original *corev1alpha1.SleepCycle, desired *corev1alpha1.SleepCycle, deployments appsv1.DeploymentList) { - usedBy := original.Status.UsedBy - if usedBy != nil { - for od, _ := range usedBy { - contains := false - if strings.HasPrefix(od, "(Deployment)") { - for _, ed := range deployments.Items { - if od == fmt.Sprintf(UsedByLabelKey, ed.Kind, ed.Namespace, ed.Name) { - contains = true - break - } - } - - if !contains { - delete(desired.Status.UsedBy, od) - } - } - } - } -} - -func containsString(slice []string, s string) bool { - for _, item := range slice { - if item == s { - return true - } - } - return false -} - -func removeString(slice []string, s string) (result []string) { - for _, item := range slice { - if item == s { - continue - } - result = append(result, item) - } - return -} +// func (r *SleepCycleReconciler) getCurrentScheduledOperation(sleepCycle corev1alpha1.SleepCycle) SleepCycleOperation { +// nextScheduledShutdown, nextScheduledWakeup := r.getSchedulesTime(sleepCycle, true) +// nextScheduledShutdownTimeWindow := r.getScheduleTimeWindow(nextScheduledShutdown) +// nextScheduledWakeupTimeWindow := r.getScheduleTimeWindow(nextScheduledWakeup) +// +// var isWithinScheduleForShutdown, isWithinScheduleForWakeup = false, false +// isWithinScheduleForShutdown = nextScheduledShutdownTimeWindow.IsScheduleWithinWindow(time.Now()) +// +// if nextScheduledWakeup == nil { +// if !isWithinScheduleForShutdown { +// return Watch +// } +// +// return Shutdown +// } +// +// isWithinScheduleForWakeup = nextScheduledWakeupTimeWindow.IsScheduleWithinWindow(time.Now()) +// +// if nextScheduledShutdown.Before(*nextScheduledWakeup) && isWithinScheduleForShutdown { +// return Shutdown +// } +// +// if nextScheduledWakeup.Before(*nextScheduledShutdown) && isWithinScheduleForWakeup { +// return WakeUp +// } +// +// if isWithinScheduleForShutdown && isWithinScheduleForWakeup { +// return WakeUp +// } +// +// return Watch +// } +// +// func (r *SleepCycleReconciler) getNextScheduledOperation(sleepCycle corev1alpha1.SleepCycle, currentOperation *SleepCycleOperation) (SleepCycleOperation, time.Duration) { +// var requeueAfter time.Duration +// +// if currentOperation == nil { +// *currentOperation = r.getCurrentScheduledOperation(sleepCycle) +// } +// +// nextScheduledShutdown, nextScheduledWakeup := r.getSchedulesTime(sleepCycle, false) +// var nextOperation SleepCycleOperation +// +// switch *currentOperation { +// case Watch: +// if nextScheduledWakeup == nil { +// nextOperation = Shutdown +// requeueAfter = time.Until(*nextScheduledShutdown) +// } else { +// if nextScheduledShutdown.Before(*nextScheduledWakeup) { +// nextOperation = Shutdown +// requeueAfter = time.Until(*nextScheduledShutdown) +// } else { +// nextOperation = WakeUp +// requeueAfter = time.Until(*nextScheduledWakeup) +// } +// } +// case Shutdown: +// if nextScheduledWakeup == nil { +// nextOperation = Shutdown +// requeueAfter = time.Until(*nextScheduledShutdown) +// } else { +// nextOperation = WakeUp +// requeueAfter = time.Until(*nextScheduledWakeup) +// } +// case WakeUp: +// nextOperation = Shutdown +// requeueAfter = time.Until(*nextScheduledShutdown) +// } +// +// return nextOperation, requeueAfter +// } +// +// func (r *SleepCycleReconciler) getScheduleTimeWindow(timestamp *time.Time) *TimeWindow { +// if timestamp != nil { +// return NewTimeWindow(*timestamp) +// } +// +// return nil +// } +// +// func (r *SleepCycleReconciler) getSchedulesTime(sleepCycle corev1alpha1.SleepCycle, useStatus bool) (shutdown *time.Time, wakeup *time.Time) { +// shutdown = nil +// wakeup = nil +// +// if !useStatus { +// shutdown = r.getTimeFromCronExpression(sleepCycle.Spec.Shutdown, sleepCycle.Spec.ShutdownTimeZone) +// wakeup = r.getTimeFromCronExpression(sleepCycle.Spec.WakeUp, sleepCycle.Spec.WakeupTimeZone) +// } else { +// if sleepCycle.Status.NextScheduledWakeupTime != nil { +// wakeupTimeWindow := NewTimeWindow(sleepCycle.Status.NextScheduledWakeupTime.Time) +// +// if wakeupTimeWindow.Right.Before(time.Now()) { +// wakeup = r.getTimeFromCronExpression(sleepCycle.Spec.WakeUp, sleepCycle.Spec.WakeupTimeZone) +// } else { +// wakeup = &sleepCycle.Status.NextScheduledWakeupTime.Time +// } +// } else { +// wakeup = r.getTimeFromCronExpression(sleepCycle.Spec.WakeUp, sleepCycle.Spec.WakeupTimeZone) +// } +// +// if sleepCycle.Status.NextScheduledShutdownTime != nil { +// shutdownTimeWindow := NewTimeWindow(sleepCycle.Status.NextScheduledShutdownTime.Time) +// +// if shutdownTimeWindow.Right.Before(time.Now()) { +// shutdown = r.getTimeFromCronExpression(sleepCycle.Spec.Shutdown, sleepCycle.Spec.ShutdownTimeZone) +// } else { +// shutdown = &sleepCycle.Status.NextScheduledShutdownTime.Time +// } +// } else { +// shutdown = r.getTimeFromCronExpression(sleepCycle.Spec.Shutdown, sleepCycle.Spec.ShutdownTimeZone) +// } +// } +// +// return shutdown, wakeup +// } +// +// func (r *SleepCycleReconciler) getTimeFromCronExpression(cronexp string, timezone *string) *time.Time { +// tz := r.getTimeZone(timezone) +// +// cronExpression, err := cronexpr.Parse(cronexp) +// if err == nil { +// t := cronExpression.Next(time.Now().In(tz)) +// return &t +// } +// return nil +// } +// +// func (r *SleepCycleReconciler) getTimeZone(timezone *string) *time.Location { +// tz, err := time.LoadLocation(*timezone) +// if err != nil { +// r.logger.Info(fmt.Sprintf("no valid timezone, reverting to UTC: %s", err.Error())) +// tz, _ = time.LoadLocation("UTC") +// } +// +// return tz +// } + +// +//func (r *SleepCycleReconciler) removeLabel(obj *metav1.ObjectMeta, tag string) bool { +// val, ok := obj.GetLabels()[SleepCycleLabel] +// +// if ok && val == tag { +// return true +// } +// +// return false +//} +// +//func (r *SleepCycleReconciler) refreshLabelsHorizontalPodAutoscalers(original *corev1alpha1.SleepCycle, desired *corev1alpha1.SleepCycle, hpas autoscalingv1.HorizontalPodAutoscalerList) { +// usedBy := original.Status.UsedBy +// if usedBy != nil { +// for od, _ := range usedBy { +// contains := false +// if strings.HasPrefix(od, "(HorizontalPodAutoscaler)") { +// for _, ed := range hpas.Items { +// if od == fmt.Sprintf(UsedByLabelKey, ed.Kind, ed.Namespace, ed.Name) { +// contains = true +// break +// } +// } +// +// if !contains { +// delete(desired.Status.UsedBy, od) +// } +// } +// } +// } +//} +// +//func (r *SleepCycleReconciler) refreshLabelsStatefulSets(original *corev1alpha1.SleepCycle, desired *corev1alpha1.SleepCycle, statefulSets appsv1.StatefulSetList) { +// usedBy := original.Status.UsedBy +// if usedBy != nil { +// for od, _ := range usedBy { +// contains := false +// if strings.HasPrefix(od, "(StatefulSet)") { +// for _, ed := range statefulSets.Items { +// if od == fmt.Sprintf(UsedByLabelKey, ed.Kind, ed.Namespace, ed.Name) { +// contains = true +// break +// } +// } +// +// if !contains { +// delete(desired.Status.UsedBy, od) +// } +// } +// } +// } +//} +// +//func (r *SleepCycleReconciler) refreshLabelsDeployments(original *corev1alpha1.SleepCycle, desired *corev1alpha1.SleepCycle, deployments appsv1.DeploymentList) { +// usedBy := original.Status.UsedBy +// if usedBy != nil { +// for od, _ := range usedBy { +// contains := false +// if strings.HasPrefix(od, "(Deployment)") { +// for _, ed := range deployments.Items { +// if od == fmt.Sprintf(UsedByLabelKey, ed.Kind, ed.Namespace, ed.Name) { +// contains = true +// break +// } +// } +// +// if !contains { +// delete(desired.Status.UsedBy, od) +// } +// } +// } +// } +//} +// +//func containsString(slice []string, s string) bool { +// for _, item := range slice { +// if item == s { +// return true +// } +// } +// return false +//} +// +//func removeString(slice []string, s string) (result []string) { +// for _, item := range slice { +// if item == s { +// continue +// } +// result = append(result, item) +// } +// return +//} diff --git a/go.mod b/go.mod index 70565aa..1302384 100644 --- a/go.mod +++ b/go.mod @@ -3,9 +3,11 @@ module github.com/rekuberate-io/sleepcycles go 1.18 require ( - github.com/gorhill/cronexpr v0.0.0-20180427100037-88b0669f7d75 + github.com/go-logr/logr v1.2.0 + github.com/hashicorp/go-multierror v1.0.0 github.com/onsi/ginkgo v1.16.5 github.com/onsi/gomega v1.18.1 + go.uber.org/zap v1.19.1 k8s.io/api v0.24.2 k8s.io/apimachinery v0.24.2 k8s.io/client-go v0.24.2 @@ -29,7 +31,6 @@ require ( github.com/evanphx/json-patch v4.12.0+incompatible // indirect github.com/form3tech-oss/jwt-go v3.2.3+incompatible // indirect github.com/fsnotify/fsnotify v1.5.1 // indirect - github.com/go-logr/logr v1.2.0 // indirect github.com/go-logr/zapr v1.2.0 // indirect github.com/go-openapi/jsonpointer v0.19.5 // indirect github.com/go-openapi/jsonreference v0.19.5 // indirect @@ -41,6 +42,7 @@ require ( github.com/google/go-cmp v0.5.5 // indirect github.com/google/gofuzz v1.1.0 // indirect github.com/google/uuid v1.1.2 // indirect + github.com/hashicorp/errwrap v1.0.0 // indirect github.com/imdario/mergo v0.3.12 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect @@ -58,7 +60,6 @@ require ( github.com/spf13/pflag v1.0.5 // indirect go.uber.org/atomic v1.7.0 // indirect go.uber.org/multierr v1.6.0 // indirect - go.uber.org/zap v1.19.1 // indirect golang.org/x/crypto v0.0.0-20220214200702-86341886e292 // indirect golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd // indirect golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8 // indirect diff --git a/go.sum b/go.sum index 85c5531..c0f4c5e 100644 --- a/go.sum +++ b/go.sum @@ -256,8 +256,6 @@ github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorhill/cronexpr v0.0.0-20180427100037-88b0669f7d75 h1:f0n1xnMSmBLzVfsMMvriDyA75NB/oBgILX2GcHXIQzY= -github.com/gorhill/cronexpr v0.0.0-20180427100037-88b0669f7d75/go.mod h1:g2644b03hfBX9Ov0ZBDgXXens4rxSxmqFBbhvKv2yVA= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= @@ -268,10 +266,12 @@ github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= +github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= +github.com/hashicorp/go-multierror v1.0.0 h1:iVjPR7a6H0tWELX5NxNe7bYopibicUzc7uPribsnS6o= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= From 0dc1bd29ac44d2b3e82ce2e0d512e1b1dc6cacac Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Sun, 26 May 2024 10:22:28 +0200 Subject: [PATCH 02/47] added state and targets status in sleepcycles --- api/v1alpha1/sleepcycle_types.go | 10 +++++- .../bases/core.rekuberate.io_sleepcycles.yaml | 23 +++++++++++-- controllers/sleepcycle_controller.go | 33 +++++++++++++++++-- controllers/sleepcycle_reconcilers.go | 19 ++++++++--- 4 files changed, 74 insertions(+), 11 deletions(-) diff --git a/api/v1alpha1/sleepcycle_types.go b/api/v1alpha1/sleepcycle_types.go index 13828ee..6ab4a3c 100644 --- a/api/v1alpha1/sleepcycle_types.go +++ b/api/v1alpha1/sleepcycle_types.go @@ -49,17 +49,25 @@ type SleepCycleSpec struct { // SleepCycleStatus defines the observed state of SleepCycle type SleepCycleStatus struct { Enabled bool `json:"enabled,omitempty"` + + // +kubebuilder:validation:Enum=NotReady;Warning;Ready + // +kubebuilder:default:="NotReady" + State string `json:"state"` + + Targets string `json:"targets,omitempty"` } //+kubebuilder:object:root=true //+kubebuilder:subresource:status // SleepCycle is the Schema for the sleepcycles API +// +kubebuilder:printcolumn:name="Enabled",type=boolean,JSONPath=`.spec.enabled` +// +kubebuilder:printcolumn:name="State",type=string,JSONPath=`.status.state` +// +kubebuilder:printcolumn:name="Targets",type=string,JSONPath=`.status.targets` // +kubebuilder:printcolumn:name="Shutdown Schedule",type=string,JSONPath=`.spec.shutdown` // +kubebuilder:printcolumn:name="Shutdown Timezone",type=string,JSONPath=`.spec.shutdownTimeZone` // +kubebuilder:printcolumn:name="Wakeup Schedule",type=string,JSONPath=`.spec.wakeup` // +kubebuilder:printcolumn:name="Wakeup Timezone",type=string,JSONPath=`.spec.wakeupTimeZone` -// +kubebuilder:printcolumn:name="Enabled",type=boolean,JSONPath=`.spec.enabled` type SleepCycle struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/config/crd/bases/core.rekuberate.io_sleepcycles.yaml b/config/crd/bases/core.rekuberate.io_sleepcycles.yaml index e3b3749..67949b0 100644 --- a/config/crd/bases/core.rekuberate.io_sleepcycles.yaml +++ b/config/crd/bases/core.rekuberate.io_sleepcycles.yaml @@ -16,6 +16,15 @@ spec: scope: Namespaced versions: - additionalPrinterColumns: + - jsonPath: .spec.enabled + name: Enabled + type: boolean + - jsonPath: .status.state + name: State + type: string + - jsonPath: .status.targets + name: Targets + type: string - jsonPath: .spec.shutdown name: Shutdown Schedule type: string @@ -28,9 +37,6 @@ spec: - jsonPath: .spec.wakeupTimeZone name: Wakeup Timezone type: string - - jsonPath: .spec.enabled - name: Enabled - type: boolean name: v1alpha1 schema: openAPIV3Schema: @@ -74,6 +80,17 @@ spec: properties: enabled: type: boolean + state: + default: NotReady + enum: + - NotReady + - Warning + - Ready + type: string + targets: + type: string + required: + - state type: object type: object served: true diff --git a/controllers/sleepcycle_controller.go b/controllers/sleepcycle_controller.go index 6961549..6b36b73 100644 --- a/controllers/sleepcycle_controller.go +++ b/controllers/sleepcycle_controller.go @@ -60,7 +60,7 @@ type runtimeObjectReconciler func( ctx context.Context, req ctrl.Request, sleepcycle *corev1alpha1.SleepCycle, -) error +) (int, int, error) type runtimeObjectFinalizer func( ctx context.Context, @@ -108,6 +108,9 @@ var ( func (r *SleepCycleReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { r.logger = log.Log.WithValues("namespace", req.Namespace, "sleepcycle", req.Name) + provisioned := 0 + total := 0 + var original corev1alpha1.SleepCycle if err := r.Get(ctx, req.NamespacedName, &original); err != nil { if apierrors.IsNotFound(err) { @@ -123,11 +126,35 @@ func (r *SleepCycleReconciler) Reconcile(ctx context.Context, req ctrl.Request) var errors error for _, reconciler := range reconcilers { - err := reconciler(ctx, req, &original) + p, t, err := reconciler(ctx, req, &original) if err != nil { - //r.logger.Error(err, "reconciliation failure") errors = multierror.Append(errors, err) } + + provisioned += p + total += t + } + + if errors != nil { + if merr, ok := errors.(*multierror.Error); ok { + for _, rerr := range merr.Errors { + r.logger.Error(rerr, "failed to reconcile") + } + } + } + + state := "NotReady" + if provisioned != 0 && provisioned < total { + state = "Warning" + } else { + state = "Ready" + } + + original.Status.State = state + original.Status.Targets = fmt.Sprintf("%d/%d", provisioned, total) + err := r.Status().Update(ctx, &original) + if err != nil { + return ctrl.Result{}, err } return ctrl.Result{RequeueAfter: requeueAfter}, errors diff --git a/controllers/sleepcycle_reconcilers.go b/controllers/sleepcycle_reconcilers.go index 5a9a7d7..058ea2a 100644 --- a/controllers/sleepcycle_reconcilers.go +++ b/controllers/sleepcycle_reconcilers.go @@ -13,27 +13,38 @@ const ( UsedByLabelKey = "(%v) %v/%v" ) -func (r *SleepCycleReconciler) ReconcileDeployments(ctx context.Context, req ctrl.Request, sleepcycle *corev1alpha1.SleepCycle) error { +func (r *SleepCycleReconciler) ReconcileDeployments( + ctx context.Context, + req ctrl.Request, + sleepcycle *corev1alpha1.SleepCycle, +) (int, int, error) { + provisioned := 0 + total := 0 + deploymentList := appsv1.DeploymentList{} if err := r.List(ctx, &deploymentList, &client.ListOptions{Namespace: req.NamespacedName.Namespace}); err != nil { - return err + return 0, 0, err } if len(deploymentList.Items) == 0 { - return nil + return 0, 0, nil } var errors error + total = len(deploymentList.Items) + provisioned = total + for _, deployment := range deploymentList.Items { logger := r.logger.WithValues("deployment", deployment.Name) err := r.reconcile(ctx, logger, sleepcycle, deployment.ObjectMeta) if err != nil { + provisioned -= 1 errors = multierror.Append(errors, err) } } - return errors + return provisioned, total, errors } // From 173ad3212d8b36e7433b977f3fe234a7c2635650 Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Sun, 26 May 2024 10:47:22 +0200 Subject: [PATCH 03/47] added labels to cronjbos --- controllers/sleepcycle_controller.go | 1 - controllers/sleepcycle_cronjobs.go | 58 ++++++++++++++++++++-------- 2 files changed, 41 insertions(+), 18 deletions(-) diff --git a/controllers/sleepcycle_controller.go b/controllers/sleepcycle_controller.go index 6b36b73..11e5552 100644 --- a/controllers/sleepcycle_controller.go +++ b/controllers/sleepcycle_controller.go @@ -114,7 +114,6 @@ func (r *SleepCycleReconciler) Reconcile(ctx context.Context, req ctrl.Request) var original corev1alpha1.SleepCycle if err := r.Get(ctx, req.NamespacedName, &original); err != nil { if apierrors.IsNotFound(err) { - //r.logger.Error(err, "🛑️ unable to find SleepCycle") return ctrl.Result{}, nil } diff --git a/controllers/sleepcycle_cronjobs.go b/controllers/sleepcycle_cronjobs.go index 76e9084..c407b07 100644 --- a/controllers/sleepcycle_cronjobs.go +++ b/controllers/sleepcycle_cronjobs.go @@ -17,6 +17,12 @@ var ( startingDeadlineSeconds int64 = 15 ) +const ( + OwnedBy = "rekuberate.io/owned-by" + Target = "rekuberate.io/target" + TargetType = "rekuberate.io/target-type" +) + func (r *SleepCycleReconciler) getCronJob(ctx context.Context, objKey client.ObjectKey) (*batchv1.CronJob, error) { var job batchv1.CronJob if err := r.Get(ctx, objKey, &job); err != nil { @@ -34,7 +40,8 @@ func (r *SleepCycleReconciler) createCronJob( ctx context.Context, logger logr.Logger, sleepcycle *corev1alpha1.SleepCycle, - objKey client.ObjectKey, + cronObjectKey client.ObjectKey, + targetMetadata ctrl.ObjectMeta, isShutdownOp bool, ) (*batchv1.CronJob, error) { @@ -48,10 +55,16 @@ func (r *SleepCycleReconciler) createCronJob( tz = sleepcycle.Spec.WakeupTimeZone } + labels := make(map[string]string) + labels[OwnedBy] = fmt.Sprintf("%s", sleepcycle.Name) + labels[Target] = fmt.Sprintf("%s", targetMetadata.Name) + labels[TargetType] = "Deployment" + job := &batchv1.CronJob{ ObjectMeta: metav1.ObjectMeta{ - Name: objKey.Name, - Namespace: objKey.Namespace, + Name: cronObjectKey.Name, + Namespace: cronObjectKey.Namespace, + Labels: labels, }, Spec: batchv1.CronJobSpec{ Schedule: schedule, @@ -65,7 +78,7 @@ func (r *SleepCycleReconciler) createCronJob( Spec: v1.PodSpec{ Containers: []v1.Container{ { - Name: objKey.Name, + Name: cronObjectKey.Name, Image: "ubuntu:latest", Command: []string{"ls", "-aRil"}, }, @@ -81,13 +94,13 @@ func (r *SleepCycleReconciler) createCronJob( err := ctrl.SetControllerReference(sleepcycle, job, r.Scheme) if err != nil { - logger.Error(err, "unable to set controller reference", "cronjob", objKey.Name) + logger.Error(err, "unable to set controller reference", "cronjob", cronObjectKey.Name) return nil, err } err = r.Create(ctx, job) if err != nil { - logger.Error(err, "unable to create internal cronjob", "cronjob", objKey.Name) + logger.Error(err, "unable to create internal cronjob", "cronjob", cronObjectKey.Name) return nil, err } @@ -115,24 +128,30 @@ func (r *SleepCycleReconciler) deleteCronJob(ctx context.Context, cronJob *batch return nil } -func (r *SleepCycleReconciler) reconcileCronJob(ctx context.Context, logger logr.Logger, sleepcycle *corev1alpha1.SleepCycle, objectMetadata ctrl.ObjectMeta, isShutdownOp bool) error { +func (r *SleepCycleReconciler) reconcileCronJob( + ctx context.Context, + logger logr.Logger, + sleepcycle *corev1alpha1.SleepCycle, + targetMetadata ctrl.ObjectMeta, + isShutdownOp bool, +) error { suffix := "shutdown" if !isShutdownOp { suffix = "wakeup" } - objectKey := client.ObjectKey{ - Name: fmt.Sprintf("%s-%s-%s", sleepcycle.Name, objectMetadata.Name, suffix), + cronObjectKey := client.ObjectKey{ + Name: fmt.Sprintf("%s-%s-%s", sleepcycle.Name, targetMetadata.Name, suffix), Namespace: sleepcycle.Namespace, } - cronjob, err := r.getCronJob(ctx, objectKey) + cronjob, err := r.getCronJob(ctx, cronObjectKey) if err != nil { - logger.Error(err, "unable to fetch internal cronjob", "cronjob", objectKey.Name) + logger.Error(err, "unable to fetch internal cronjob", "cronjob", cronObjectKey.Name) return err } if cronjob == nil { - _, err := r.createCronJob(ctx, logger, sleepcycle, objectKey, isShutdownOp) + _, err := r.createCronJob(ctx, logger, sleepcycle, cronObjectKey, targetMetadata, isShutdownOp) if err != nil { return err } @@ -157,7 +176,7 @@ func (r *SleepCycleReconciler) reconcileCronJob(ctx context.Context, logger logr if cronjob.Spec.Suspend != &suspend || cronjob.Spec.Schedule != schedule || cronjob.Spec.TimeZone != tz { err := r.updateCronJob(ctx, cronjob, schedule, *tz, suspend) if err != nil { - logger.Error(err, "failed to update internal cronjob", "name", objectKey.Name) + logger.Error(err, "failed to update internal cronjob", "name", cronObjectKey.Name) return err } } @@ -166,16 +185,21 @@ func (r *SleepCycleReconciler) reconcileCronJob(ctx context.Context, logger logr return nil } -func (r *SleepCycleReconciler) reconcile(ctx context.Context, logger logr.Logger, sleepcycle *corev1alpha1.SleepCycle, objectMetadata ctrl.ObjectMeta) error { - hasSleepCycle := r.hasLabel(&objectMetadata, sleepcycle.Name) +func (r *SleepCycleReconciler) reconcile( + ctx context.Context, + logger logr.Logger, + sleepcycle *corev1alpha1.SleepCycle, + targetMetadata ctrl.ObjectMeta, +) error { + hasSleepCycle := r.hasLabel(&targetMetadata, sleepcycle.Name) if hasSleepCycle { - err := r.reconcileCronJob(ctx, logger, sleepcycle, objectMetadata, true) + err := r.reconcileCronJob(ctx, logger, sleepcycle, targetMetadata, true) if err != nil { return err } if sleepcycle.Spec.WakeUp != nil { - err := r.reconcileCronJob(ctx, logger, sleepcycle, objectMetadata, false) + err := r.reconcileCronJob(ctx, logger, sleepcycle, targetMetadata, false) if err != nil { return err } From c2563080c082b6f87094f212c0cd9a4986262dc3 Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Sun, 26 May 2024 11:09:14 +0200 Subject: [PATCH 04/47] added labels and annotations to cronjbos --- controllers/sleepcycle_controller.go | 19 ---------------- controllers/sleepcycle_cronjobs.go | 34 +++++++++++++++++++--------- controllers/sleepcycle_operation.go | 16 ------------- controllers/timewindow.go | 28 ----------------------- 4 files changed, 23 insertions(+), 74 deletions(-) delete mode 100644 controllers/sleepcycle_operation.go delete mode 100644 controllers/timewindow.go diff --git a/controllers/sleepcycle_controller.go b/controllers/sleepcycle_controller.go index 11e5552..ac72656 100644 --- a/controllers/sleepcycle_controller.go +++ b/controllers/sleepcycle_controller.go @@ -25,7 +25,6 @@ import ( appsv1 "k8s.io/api/apps/v1" autoscalingv1 "k8s.io/api/autoscaling/v1" batchv1 "k8s.io/api/batch/v1" - corev1 "k8s.io/api/core/v1" apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/runtime" "k8s.io/client-go/tools/record" @@ -246,21 +245,3 @@ func (r *SleepCycleReconciler) SetupWithManager(mgr ctrl.Manager) error { For(&corev1alpha1.SleepCycle{}, eventFilters). Complete(r) } - -func (r *SleepCycleReconciler) RecordEvent(sleepCycle corev1alpha1.SleepCycle, isError bool, namespacedName string, operation SleepCycleOperation, extra ...string) { - eventType := corev1.EventTypeNormal - reason := "SleepCycleOpSuccess" - message := fmt.Sprintf("%s on %s succeeded", operation.String(), namespacedName) - - if isError { - eventType = corev1.EventTypeWarning - reason = "SleepCycleOpFailure" - message = fmt.Sprintf("%s on %s failed", operation.String(), namespacedName) - } - - for _, s := range extra { - message = message + ". " + s - } - - r.Recorder.Event(&sleepCycle, eventType, reason, strings.ToLower(message)) -} diff --git a/controllers/sleepcycle_cronjobs.go b/controllers/sleepcycle_cronjobs.go index c407b07..92c8acd 100644 --- a/controllers/sleepcycle_cronjobs.go +++ b/controllers/sleepcycle_cronjobs.go @@ -18,9 +18,11 @@ var ( ) const ( - OwnedBy = "rekuberate.io/owned-by" - Target = "rekuberate.io/target" - TargetType = "rekuberate.io/target-type" + OwnedBy = "rekuberate.io/owned-by" + Target = "rekuberate.io/target" + TargetType = "rekuberate.io/target-type" + TargetTimezone = "rekuberate.io/target-tz" + Replicas = "rekuberate.io/replicas" ) func (r *SleepCycleReconciler) getCronJob(ctx context.Context, objKey client.ObjectKey) (*batchv1.CronJob, error) { @@ -45,7 +47,10 @@ func (r *SleepCycleReconciler) createCronJob( isShutdownOp bool, ) (*batchv1.CronJob, error) { + historyLimit := int32(1) backOffLimit := int32(0) + maxReplicas := "5" + schedule := sleepcycle.Spec.Shutdown tz := sleepcycle.Spec.ShutdownTimeZone suspend := !sleepcycle.Spec.Enabled @@ -60,18 +65,25 @@ func (r *SleepCycleReconciler) createCronJob( labels[Target] = fmt.Sprintf("%s", targetMetadata.Name) labels[TargetType] = "Deployment" + annotations := make(map[string]string) + annotations[Replicas] = maxReplicas + annotations[TargetTimezone] = *tz + job := &batchv1.CronJob{ ObjectMeta: metav1.ObjectMeta{ - Name: cronObjectKey.Name, - Namespace: cronObjectKey.Namespace, - Labels: labels, + Name: cronObjectKey.Name, + Namespace: cronObjectKey.Namespace, + Labels: labels, + Annotations: annotations, }, Spec: batchv1.CronJobSpec{ - Schedule: schedule, - TimeZone: tz, - StartingDeadlineSeconds: &startingDeadlineSeconds, - ConcurrencyPolicy: batchv1.ForbidConcurrent, - Suspend: &suspend, + SuccessfulJobsHistoryLimit: &historyLimit, + FailedJobsHistoryLimit: &historyLimit, + Schedule: schedule, + TimeZone: tz, + StartingDeadlineSeconds: &startingDeadlineSeconds, + ConcurrencyPolicy: batchv1.ForbidConcurrent, + Suspend: &suspend, JobTemplate: batchv1.JobTemplateSpec{ Spec: batchv1.JobSpec{ Template: v1.PodTemplateSpec{ diff --git a/controllers/sleepcycle_operation.go b/controllers/sleepcycle_operation.go deleted file mode 100644 index a13a7a3..0000000 --- a/controllers/sleepcycle_operation.go +++ /dev/null @@ -1,16 +0,0 @@ -package controllers - -type SleepCycleOperation int - -const ( - Watch SleepCycleOperation = iota - Shutdown - WakeUp -) - -func (sco SleepCycleOperation) String() string { - var values []string = []string{"Watch", "Shutdown", "Wakeup"} - name := values[sco] - - return name -} diff --git a/controllers/timewindow.go b/controllers/timewindow.go deleted file mode 100644 index 3523b7a..0000000 --- a/controllers/timewindow.go +++ /dev/null @@ -1,28 +0,0 @@ -package controllers - -import ( - "time" -) - -func NewTimeWindow(schedule time.Time) (timeWindow *TimeWindow) { - left := schedule.Add(-(time.Duration(TimeWindowToleranceInSeconds) * time.Second)) - right := schedule.Add(time.Duration(TimeWindowToleranceInSeconds) * time.Second) - - return &TimeWindow{ - Left: left, - Right: right, - } -} - -type TimeWindow struct { - Left time.Time - Right time.Time -} - -func (tw TimeWindow) IsScheduleWithinWindow(schedule time.Time) bool { - if schedule.After(tw.Left) && schedule.Before(tw.Right) { - return true - } - - return false -} From 7e6a7a2843fbee14deafa83bed7ed865406d7470 Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Sun, 26 May 2024 12:05:50 +0200 Subject: [PATCH 05/47] added replicas to runners cronjobs annotations --- controllers/sleepcycle_reconcilers.go | 6 ++- ...jobs.go => sleepcycle_runners_cronjobs.go} | 42 ++++++++++++------- 2 files changed, 33 insertions(+), 15 deletions(-) rename controllers/{sleepcycle_cronjobs.go => sleepcycle_runners_cronjobs.go} (84%) diff --git a/controllers/sleepcycle_reconcilers.go b/controllers/sleepcycle_reconcilers.go index 058ea2a..107253f 100644 --- a/controllers/sleepcycle_reconcilers.go +++ b/controllers/sleepcycle_reconcilers.go @@ -37,7 +37,11 @@ func (r *SleepCycleReconciler) ReconcileDeployments( for _, deployment := range deploymentList.Items { logger := r.logger.WithValues("deployment", deployment.Name) - err := r.reconcile(ctx, logger, sleepcycle, deployment.ObjectMeta) + kind := deployment.TypeMeta.Kind + meta := deployment.ObjectMeta + replicas := *deployment.Spec.Replicas + + err := r.reconcile(ctx, logger, sleepcycle, kind, meta, replicas) if err != nil { provisioned -= 1 errors = multierror.Append(errors, err) diff --git a/controllers/sleepcycle_cronjobs.go b/controllers/sleepcycle_runners_cronjobs.go similarity index 84% rename from controllers/sleepcycle_cronjobs.go rename to controllers/sleepcycle_runners_cronjobs.go index 92c8acd..26be37a 100644 --- a/controllers/sleepcycle_cronjobs.go +++ b/controllers/sleepcycle_runners_cronjobs.go @@ -20,7 +20,7 @@ var ( const ( OwnedBy = "rekuberate.io/owned-by" Target = "rekuberate.io/target" - TargetType = "rekuberate.io/target-type" + TargetKind = "rekuberate.io/target-kind" TargetTimezone = "rekuberate.io/target-tz" Replicas = "rekuberate.io/replicas" ) @@ -43,13 +43,14 @@ func (r *SleepCycleReconciler) createCronJob( logger logr.Logger, sleepcycle *corev1alpha1.SleepCycle, cronObjectKey client.ObjectKey, - targetMetadata ctrl.ObjectMeta, + targetKind string, + targetMeta metav1.ObjectMeta, + targetReplicas int32, isShutdownOp bool, ) (*batchv1.CronJob, error) { historyLimit := int32(1) backOffLimit := int32(0) - maxReplicas := "5" schedule := sleepcycle.Spec.Shutdown tz := sleepcycle.Spec.ShutdownTimeZone @@ -62,13 +63,16 @@ func (r *SleepCycleReconciler) createCronJob( labels := make(map[string]string) labels[OwnedBy] = fmt.Sprintf("%s", sleepcycle.Name) - labels[Target] = fmt.Sprintf("%s", targetMetadata.Name) - labels[TargetType] = "Deployment" + labels[Target] = fmt.Sprintf("%s", targetMeta.Name) + labels[TargetKind] = targetKind annotations := make(map[string]string) - annotations[Replicas] = maxReplicas annotations[TargetTimezone] = *tz + if targetReplicas != 0 { + annotations[Replicas] = string(targetReplicas) + } + job := &batchv1.CronJob{ ObjectMeta: metav1.ObjectMeta{ Name: cronObjectKey.Name, @@ -119,7 +123,13 @@ func (r *SleepCycleReconciler) createCronJob( return job, nil } -func (r *SleepCycleReconciler) updateCronJob(ctx context.Context, cronJob *batchv1.CronJob, schedule string, timezone string, suspend bool) error { +func (r *SleepCycleReconciler) updateCronJob( + ctx context.Context, + cronJob *batchv1.CronJob, + schedule string, + timezone string, + suspend bool, +) error { deepCopy := cronJob.DeepCopy() deepCopy.Spec.Schedule = schedule *deepCopy.Spec.TimeZone = timezone @@ -144,7 +154,9 @@ func (r *SleepCycleReconciler) reconcileCronJob( ctx context.Context, logger logr.Logger, sleepcycle *corev1alpha1.SleepCycle, - targetMetadata ctrl.ObjectMeta, + targetKind string, + targetMeta metav1.ObjectMeta, + targetReplicas int32, isShutdownOp bool, ) error { suffix := "shutdown" @@ -153,7 +165,7 @@ func (r *SleepCycleReconciler) reconcileCronJob( } cronObjectKey := client.ObjectKey{ - Name: fmt.Sprintf("%s-%s-%s", sleepcycle.Name, targetMetadata.Name, suffix), + Name: fmt.Sprintf("%s-%s-%s", sleepcycle.Name, targetMeta.Name, suffix), Namespace: sleepcycle.Namespace, } cronjob, err := r.getCronJob(ctx, cronObjectKey) @@ -163,7 +175,7 @@ func (r *SleepCycleReconciler) reconcileCronJob( } if cronjob == nil { - _, err := r.createCronJob(ctx, logger, sleepcycle, cronObjectKey, targetMetadata, isShutdownOp) + _, err := r.createCronJob(ctx, logger, sleepcycle, cronObjectKey, targetKind, targetMeta, targetReplicas, isShutdownOp) if err != nil { return err } @@ -201,17 +213,19 @@ func (r *SleepCycleReconciler) reconcile( ctx context.Context, logger logr.Logger, sleepcycle *corev1alpha1.SleepCycle, - targetMetadata ctrl.ObjectMeta, + targetKind string, + targetMeta metav1.ObjectMeta, + targetReplicas int32, ) error { - hasSleepCycle := r.hasLabel(&targetMetadata, sleepcycle.Name) + hasSleepCycle := r.hasLabel(&targetMeta, sleepcycle.Name) if hasSleepCycle { - err := r.reconcileCronJob(ctx, logger, sleepcycle, targetMetadata, true) + err := r.reconcileCronJob(ctx, logger, sleepcycle, targetKind, targetMeta, targetReplicas, true) if err != nil { return err } if sleepcycle.Spec.WakeUp != nil { - err := r.reconcileCronJob(ctx, logger, sleepcycle, targetMetadata, false) + err := r.reconcileCronJob(ctx, logger, sleepcycle, targetKind, targetMeta, targetReplicas, false) if err != nil { return err } From 881b73270e2bb23c77b7cc85e9746e345eac8290 Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Sun, 26 May 2024 22:44:18 +0200 Subject: [PATCH 06/47] added draft runner --- config/rbac/role.yaml | 12 ++++ controllers/sleepcycle_controller.go | 15 ++++- controllers/sleepcycle_runners_cronjobs.go | 26 ++++++-- runners/runner.go | 69 ++++++++++++++++++++++ 4 files changed, 114 insertions(+), 8 deletions(-) create mode 100644 runners/runner.go diff --git a/config/rbac/role.yaml b/config/rbac/role.yaml index ec56128..cce0d36 100644 --- a/config/rbac/role.yaml +++ b/config/rbac/role.yaml @@ -84,6 +84,18 @@ rules: - patch - update - watch +- apiGroups: + - "" + resources: + - serviceaccounts + verbs: + - create + - delete + - get + - list + - patch + - update + - watch - apiGroups: - core.rekuberate.io resources: diff --git a/controllers/sleepcycle_controller.go b/controllers/sleepcycle_controller.go index ac72656..393ade2 100644 --- a/controllers/sleepcycle_controller.go +++ b/controllers/sleepcycle_controller.go @@ -94,6 +94,7 @@ var ( //+kubebuilder:rbac:groups=apps,resources=statefulsets,verbs=get;list;watch;create;update;patch;delete //+kubebuilder:rbac:groups=autoscaling,resources=horizontalpodautoscalers,verbs=get;list;watch;create;update;patch;delete //+kubebuilder:rbac:groups="",resources=events,verbs=create;patch +//+kubebuilder:rbac:groups=core,resources=serviceaccounts,verbs=get;list;watch;create;update;patch;delete // Reconcile is part of the main kubernetes reconciliation loop which aims to // move the current state of the cluster closer to the desired state. @@ -120,6 +121,14 @@ func (r *SleepCycleReconciler) Reconcile(ctx context.Context, req ctrl.Request) return ctrl.Result{}, err } + if err := r.Get(ctx, req.NamespacedName, &original); err != nil { + if apierrors.IsNotFound(err) { + return ctrl.Result{}, nil + } + + r.logger.Error(err, "unable to fetch sleepcycle") + return ctrl.Result{}, err + } reconcilers := []runtimeObjectReconciler{r.ReconcileDeployments} var errors error @@ -141,11 +150,11 @@ func (r *SleepCycleReconciler) Reconcile(ctx context.Context, req ctrl.Request) } } - state := "NotReady" + state := "Ready" if provisioned != 0 && provisioned < total { state = "Warning" - } else { - state = "Ready" + } else if provisioned == 0 { + state = "NotReady" } original.Status.State = state diff --git a/controllers/sleepcycle_runners_cronjobs.go b/controllers/sleepcycle_runners_cronjobs.go index 26be37a..eeaafd8 100644 --- a/controllers/sleepcycle_runners_cronjobs.go +++ b/controllers/sleepcycle_runners_cronjobs.go @@ -70,7 +70,7 @@ func (r *SleepCycleReconciler) createCronJob( annotations[TargetTimezone] = *tz if targetReplicas != 0 { - annotations[Replicas] = string(targetReplicas) + annotations[Replicas] = fmt.Sprint(targetReplicas) } job := &batchv1.CronJob{ @@ -94,12 +94,28 @@ func (r *SleepCycleReconciler) createCronJob( Spec: v1.PodSpec{ Containers: []v1.Container{ { - Name: cronObjectKey.Name, - Image: "ubuntu:latest", - Command: []string{"ls", "-aRil"}, + Name: cronObjectKey.Name, + Image: "akyriako78/runners-18bcb3a8af7a857e6adc18687b98ef0e", + Env: []v1.EnvVar{ + { + Name: "MY_POD_NAME", + ValueFrom: &v1.EnvVarSource{ + FieldRef: &v1.ObjectFieldSelector{ + FieldPath: "metadata.name", + }}, + }, + { + Name: "MY_POD_NAMESPACE", + ValueFrom: &v1.EnvVarSource{ + FieldRef: &v1.ObjectFieldSelector{ + FieldPath: "metadata.namespace", + }}, + }, + }, }, }, - RestartPolicy: v1.RestartPolicyOnFailure, + RestartPolicy: v1.RestartPolicyOnFailure, + ServiceAccountName: "cronjob-controller", }, }, BackoffLimit: &backOffLimit, diff --git a/runners/runner.go b/runners/runner.go new file mode 100644 index 0000000..4ae2540 --- /dev/null +++ b/runners/runner.go @@ -0,0 +1,69 @@ +package main + +import ( + "context" + "flag" + "fmt" + "github.com/go-logr/logr" + "go.uber.org/zap/zapcore" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/client-go/kubernetes" + "k8s.io/client-go/rest" + "os" + ctrl "sigs.k8s.io/controller-runtime" + "sigs.k8s.io/controller-runtime/pkg/log/zap" +) + +var ( + logger logr.Logger + config *rest.Config + ctx context.Context + + envVarErr = "environment variable %s not found" + podEnvVar = "MY_POD_NAME" + namespaceEnvVar = "MY_POD_NAMESPACE" +) + +func init() { + opts := zap.Options{ + Development: true, + TimeEncoder: zapcore.ISO8601TimeEncoder, + StacktraceLevel: zapcore.DPanicLevel, + } + opts.BindFlags(flag.CommandLine) + + logger = zap.New(zap.UseFlagOptions(&opts)) + config = ctrl.GetConfigOrDie() + ctx = context.Background() +} + +func main() { + pod, ok := os.LookupEnv(podEnvVar) + if !ok { + logger.Error(fmt.Errorf(envVarErr, podEnvVar), "failed to load environment variable") + os.Exit(78) + } + + namespace, ok := os.LookupEnv(namespaceEnvVar) + if !ok { + logger.Error(fmt.Errorf(envVarErr, namespaceEnvVar), "failed to load environment variable") + os.Exit(78) + } + + logger.Info("starting runner", "namespace", namespace, "pod", pod) + + config.Impersonate = rest.ImpersonationConfig{ + UserName: fmt.Sprintf("system:serviceaccount:%s:%s", "kube-system", "cronjob-controller"), + } + clientSet, err := kubernetes.NewForConfig(config) + if err != nil { + logger.Error(err, "failed to create clientset") + os.Exit(1) + } + + _, err = clientSet.BatchV1().CronJobs(namespace).Get(ctx, pod, metav1.GetOptions{}) + if err != nil { + logger.Error(err, "failed to get runner cronjob") + os.Exit(1) + } +} From 83d471bd0d4e093a2f68ca0734d8b4d5fc353343 Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Mon, 27 May 2024 00:43:43 +0200 Subject: [PATCH 07/47] added runner - scale deployment draft --- controllers/sleepcycle_controller.go | 9 +- controllers/sleepcycle_runners_cronjobs.go | 13 ++- controllers/sleepcycle_utils.go | 18 ++- controllers/sleepcycles_rbac.go | 121 +++++++++++++++++++++ runners/runner.go | 84 ++++++++++++-- 5 files changed, 228 insertions(+), 17 deletions(-) create mode 100644 controllers/sleepcycles_rbac.go diff --git a/controllers/sleepcycle_controller.go b/controllers/sleepcycle_controller.go index 393ade2..c2d902d 100644 --- a/controllers/sleepcycle_controller.go +++ b/controllers/sleepcycle_controller.go @@ -108,6 +108,8 @@ var ( func (r *SleepCycleReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { r.logger = log.Log.WithValues("namespace", req.Namespace, "sleepcycle", req.Name) + r.logger.Info("reconciling sleepcycle") + provisioned := 0 total := 0 @@ -121,6 +123,11 @@ func (r *SleepCycleReconciler) Reconcile(ctx context.Context, req ctrl.Request) return ctrl.Result{}, err } + err := r.reconcileRbac(ctx, &original) + if err != nil { + return ctrl.Result{}, err + } + if err := r.Get(ctx, req.NamespacedName, &original); err != nil { if apierrors.IsNotFound(err) { return ctrl.Result{}, nil @@ -159,7 +166,7 @@ func (r *SleepCycleReconciler) Reconcile(ctx context.Context, req ctrl.Request) original.Status.State = state original.Status.Targets = fmt.Sprintf("%d/%d", provisioned, total) - err := r.Status().Update(ctx, &original) + err = r.Status().Update(ctx, &original) if err != nil { return ctrl.Result{}, err } diff --git a/controllers/sleepcycle_runners_cronjobs.go b/controllers/sleepcycle_runners_cronjobs.go index eeaafd8..af64dc0 100644 --- a/controllers/sleepcycle_runners_cronjobs.go +++ b/controllers/sleepcycle_runners_cronjobs.go @@ -49,7 +49,8 @@ func (r *SleepCycleReconciler) createCronJob( isShutdownOp bool, ) (*batchv1.CronJob, error) { - historyLimit := int32(1) + successHistoryLimit := int32(0) + failureHistoryLimit := int32(3) backOffLimit := int32(0) schedule := sleepcycle.Spec.Shutdown @@ -81,8 +82,8 @@ func (r *SleepCycleReconciler) createCronJob( Annotations: annotations, }, Spec: batchv1.CronJobSpec{ - SuccessfulJobsHistoryLimit: &historyLimit, - FailedJobsHistoryLimit: &historyLimit, + SuccessfulJobsHistoryLimit: &successHistoryLimit, + FailedJobsHistoryLimit: &failureHistoryLimit, Schedule: schedule, TimeZone: tz, StartingDeadlineSeconds: &startingDeadlineSeconds, @@ -111,11 +112,15 @@ func (r *SleepCycleReconciler) createCronJob( FieldPath: "metadata.namespace", }}, }, + { + Name: "MY_CRONJOB_NAME", + Value: cronObjectKey.Name, + }, }, }, }, RestartPolicy: v1.RestartPolicyOnFailure, - ServiceAccountName: "cronjob-controller", + ServiceAccountName: "rekuberate-runner", }, }, BackoffLimit: &backOffLimit, diff --git a/controllers/sleepcycle_utils.go b/controllers/sleepcycle_utils.go index 1a068cb..17a5318 100644 --- a/controllers/sleepcycle_utils.go +++ b/controllers/sleepcycle_utils.go @@ -1,6 +1,10 @@ package controllers -import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +import ( + "encoding/base64" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "math/rand" +) func (r *SleepCycleReconciler) hasLabel(obj *metav1.ObjectMeta, tag string) bool { val, ok := obj.GetLabels()[SleepCycleLabel] @@ -12,6 +16,18 @@ func (r *SleepCycleReconciler) hasLabel(obj *metav1.ObjectMeta, tag string) bool return false } +func (r *SleepCycleReconciler) generateToken() (string, error) { + token := make([]byte, 256) + _, err := rand.Read(token) + if err != nil { + r.logger.Error(err, "error while generating the secret token") + return "", err + } + + base64EncodedToken := base64.StdEncoding.EncodeToString(token) + return base64EncodedToken, nil +} + // func (r *SleepCycleReconciler) getCurrentScheduledOperation(sleepCycle corev1alpha1.SleepCycle) SleepCycleOperation { // nextScheduledShutdown, nextScheduledWakeup := r.getSchedulesTime(sleepCycle, true) // nextScheduledShutdownTimeWindow := r.getScheduleTimeWindow(nextScheduledShutdown) diff --git a/controllers/sleepcycles_rbac.go b/controllers/sleepcycles_rbac.go new file mode 100644 index 0000000..d805e7a --- /dev/null +++ b/controllers/sleepcycles_rbac.go @@ -0,0 +1,121 @@ +package controllers + +import ( + "context" + "fmt" + corev1alpha1 "github.com/rekuberate-io/sleepcycles/api/v1alpha1" + v1 "k8s.io/api/core/v1" + rbacv1 "k8s.io/api/rbac/v1" + apierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "sigs.k8s.io/controller-runtime/pkg/client" +) + +const ( + serviceAccountName = "rekuberate-runner" +) + +func (r *SleepCycleReconciler) reconcileRbac(ctx context.Context, sleepcycle *corev1alpha1.SleepCycle) error { + createServiceAccount := false + serviceAccountObjectKey := client.ObjectKey{ + Namespace: sleepcycle.Namespace, + Name: serviceAccountName, + } + var serviceAccount v1.ServiceAccount + if err := r.Get(ctx, serviceAccountObjectKey, &serviceAccount); err != nil { + if apierrors.IsNotFound(err) { + createServiceAccount = true + } else { + r.logger.Error(err, "unable to fetch service account") + return err + } + } + + if !createServiceAccount { + return nil + } + + r.logger.Info("creating service account", "account", serviceAccountName) + newServiceAccount := &v1.ServiceAccount{ + ObjectMeta: metav1.ObjectMeta{ + Name: serviceAccountObjectKey.Name, + Namespace: serviceAccountObjectKey.Namespace, + }, + } + err := r.Create(ctx, newServiceAccount) + if err != nil { + return err + } + + token, err := r.generateToken() + if err != nil { + return err + } + + r.logger.Info("creating secret", "secret", fmt.Sprintf("%s-secret", serviceAccountName)) + secret := &v1.Secret{ + ObjectMeta: metav1.ObjectMeta{ + Name: fmt.Sprintf("%s-secret", serviceAccountName), + Namespace: sleepcycle.Namespace, + Annotations: map[string]string{ + "kubernetes.io/service-account.name": serviceAccountName, + }, + }, + Type: v1.SecretTypeServiceAccountToken, + Data: map[string][]byte{ + "token": []byte(token), + }, + } + + err = r.Create(ctx, secret) + if err != nil { + return err + } + + r.logger.Info("creating cluster role", "role", fmt.Sprintf("%s-role", serviceAccountName)) + role := &rbacv1.Role{ + ObjectMeta: metav1.ObjectMeta{ + Name: fmt.Sprintf("%s-role", serviceAccountName), + Namespace: sleepcycle.Namespace, + }, + Rules: []rbacv1.PolicyRule{ + { + APIGroups: []string{"", "apps", "batch", "core", "autoscaling"}, + Resources: []string{"*"}, + Verbs: []string{"create", "get", "update", "delete", "list", "post"}, + }, + }, + } + + err = r.Create(ctx, role) + if err != nil { + return err + } + + r.logger.Info("creating cluster role binding", "role", fmt.Sprintf("%s-rolebinding", serviceAccountName)) + roleBinding := &rbacv1.RoleBinding{ + ObjectMeta: metav1.ObjectMeta{ + Name: fmt.Sprintf("%s-rolebinding", serviceAccountName), + Namespace: sleepcycle.Namespace, + }, + RoleRef: rbacv1.RoleRef{ + APIGroup: rbacv1.GroupName, + Kind: "Role", + Name: fmt.Sprintf("%s-role", serviceAccountName), + }, + Subjects: []rbacv1.Subject{ + { + Kind: "ServiceAccount", + Name: serviceAccountName, + Namespace: sleepcycle.Namespace, + }, + }, + } + + err = r.Create(ctx, roleBinding) + if err != nil { + return err + } + + return nil +} diff --git a/runners/runner.go b/runners/runner.go index 4ae2540..12aad40 100644 --- a/runners/runner.go +++ b/runners/runner.go @@ -12,16 +12,20 @@ import ( "os" ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/log/zap" + "strconv" + "strings" ) var ( - logger logr.Logger - config *rest.Config - ctx context.Context + logger logr.Logger + config *rest.Config + clientSet *kubernetes.Clientset + ctx context.Context envVarErr = "environment variable %s not found" podEnvVar = "MY_POD_NAME" namespaceEnvVar = "MY_POD_NAMESPACE" + cronjobEnvVar = "MY_CRONJOB_NAME" ) func init() { @@ -38,32 +42,90 @@ func init() { } func main() { - pod, ok := os.LookupEnv(podEnvVar) + pd, ok := os.LookupEnv(podEnvVar) if !ok { logger.Error(fmt.Errorf(envVarErr, podEnvVar), "failed to load environment variable") os.Exit(78) } - namespace, ok := os.LookupEnv(namespaceEnvVar) + ns, ok := os.LookupEnv(namespaceEnvVar) if !ok { logger.Error(fmt.Errorf(envVarErr, namespaceEnvVar), "failed to load environment variable") os.Exit(78) } - logger.Info("starting runner", "namespace", namespace, "pod", pod) - - config.Impersonate = rest.ImpersonationConfig{ - UserName: fmt.Sprintf("system:serviceaccount:%s:%s", "kube-system", "cronjob-controller"), + cj, ok := os.LookupEnv(cronjobEnvVar) + if !ok { + logger.Error(fmt.Errorf(envVarErr, cronjobEnvVar), "failed to load environment variable") + os.Exit(78) } - clientSet, err := kubernetes.NewForConfig(config) + + logger.Info("starting runner", "namespace", ns, "pod", pd, "cronjob", cj) + cs, err := kubernetes.NewForConfig(config) if err != nil { logger.Error(err, "failed to create clientset") os.Exit(1) } + clientSet = cs - _, err = clientSet.BatchV1().CronJobs(namespace).Get(ctx, pod, metav1.GetOptions{}) + cronjob, err := clientSet.BatchV1().CronJobs(ns).Get(ctx, cj, metav1.GetOptions{}) if err != nil { logger.Error(err, "failed to get runner cronjob") os.Exit(1) } + + isShutdownOp := true + if !strings.HasSuffix(cronjob.Name, "shutdown") { + isShutdownOp = false + } + + replicas, err := strconv.ParseInt(cronjob.Annotations["rekuberate.io/replicas"], 10, 32) + if err != nil { + logger.Error(err, "failed to get rekuberate.io/replicas value") + os.Exit(1) + } + + target := cronjob.Labels["rekuberate.io/target"] + kind := cronjob.Labels["rekuberate.io/target-kind"] + switch kind { + case "Deployment": + if isShutdownOp { + replicas = 0 + } + err := scaleDeployment(ctx, ns, target, int32(replicas)) + if err != nil { + logger.Error(err, "scaling failed", "kind", kind, "target", target) + os.Exit(1) + } + case "StatefulSet": + if isShutdownOp { + replicas = 0 + } + case "CronJob": + if isShutdownOp { + replicas = 0 + } + case "HorizontalPodAutoscaler": + if isShutdownOp { + replicas = 1 + } + default: + logger.Error(err, "not supported kind", "kind", kind) + os.Exit(1) + } +} + +func scaleDeployment(ctx context.Context, namespace string, target string, replicas int32) error { + deployment, err := clientSet.AppsV1().Deployments(namespace).Get(ctx, target, metav1.GetOptions{}) + if err != nil { + return err + } + + deployment.Spec.Replicas = &replicas + _, err = clientSet.AppsV1().Deployments(namespace).Update(ctx, deployment, metav1.UpdateOptions{}) + if err != nil { + return err + } + + return nil } From fc3274017aeab11e7fc275fd608458809a23d1a3 Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Mon, 27 May 2024 01:05:57 +0200 Subject: [PATCH 08/47] added runner - scale deployment draft --- config/samples/core_v1alpha1_sleepcycle_app_1.yaml | 2 +- controllers/sleepcycle_runners_cronjobs.go | 2 +- runners/runner.go | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/config/samples/core_v1alpha1_sleepcycle_app_1.yaml b/config/samples/core_v1alpha1_sleepcycle_app_1.yaml index 63b0187..ef4f915 100644 --- a/config/samples/core_v1alpha1_sleepcycle_app_1.yaml +++ b/config/samples/core_v1alpha1_sleepcycle_app_1.yaml @@ -6,6 +6,6 @@ metadata: spec: shutdown: "*/2 * * * *" shutdownTimeZone: "Europe/Athens" - wakeup: "*/5 * * * *" + wakeup: "*/1 * * * *" wakeupTimeZone: "Europe/Dublin" enabled: true \ No newline at end of file diff --git a/controllers/sleepcycle_runners_cronjobs.go b/controllers/sleepcycle_runners_cronjobs.go index af64dc0..b35a92f 100644 --- a/controllers/sleepcycle_runners_cronjobs.go +++ b/controllers/sleepcycle_runners_cronjobs.go @@ -49,7 +49,7 @@ func (r *SleepCycleReconciler) createCronJob( isShutdownOp bool, ) (*batchv1.CronJob, error) { - successHistoryLimit := int32(0) + successHistoryLimit := int32(3) failureHistoryLimit := int32(3) backOffLimit := int32(0) diff --git a/runners/runner.go b/runners/runner.go index 12aad40..321891d 100644 --- a/runners/runner.go +++ b/runners/runner.go @@ -127,5 +127,6 @@ func scaleDeployment(ctx context.Context, namespace string, target string, repli return err } + logger.Info("scaled deployment", "namespace", namespace, "deployment", target, "replicas", replicas) return nil } From ec7e626190c536e923514e2e2172dc5031d1ce7a Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Mon, 27 May 2024 10:03:33 +0200 Subject: [PATCH 09/47] configure runner job history limit from crd --- api/v1alpha1/sleepcycle_types.go | 18 ++++++++++++++++++ .../bases/core.rekuberate.io_sleepcycles.yaml | 12 ++++++++++++ controllers/sleepcycle_runners_cronjobs.go | 7 ++----- 3 files changed, 32 insertions(+), 5 deletions(-) diff --git a/api/v1alpha1/sleepcycle_types.go b/api/v1alpha1/sleepcycle_types.go index 6ab4a3c..4b748a1 100644 --- a/api/v1alpha1/sleepcycle_types.go +++ b/api/v1alpha1/sleepcycle_types.go @@ -44,6 +44,24 @@ type SleepCycleSpec struct { // +kubebuilder:validation:default:=true // +kubebuilder:validation:Type=boolean Enabled bool `json:"enabled"` + + // +optional + // +kubebuilder:default=1 + // +kubebuilder:validation:Type=integer + // +kubebuilder:validation:Minimum=1 + // +kubebuilder:validation:Maximum=3 + // +kubebuilder:validation:ExclusiveMinimum=false + // +kubebuilder:validation:ExclusiveMaximum=false + SuccessfulJobsHistoryLimit int32 `json:"successfulJobsHistoryLimit,omitempty"` + + // +optional + // +kubebuilder:default=1 + // +kubebuilder:validation:Type=integer + // +kubebuilder:validation:Minimum=1 + // +kubebuilder:validation:Maximum=3 + // +kubebuilder:validation:ExclusiveMinimum=false + // +kubebuilder:validation:ExclusiveMaximum=false + FailedJobsHistoryLimit int32 `json:"failedJobsHistoryLimit,omitempty"` } // SleepCycleStatus defines the observed state of SleepCycle diff --git a/config/crd/bases/core.rekuberate.io_sleepcycles.yaml b/config/crd/bases/core.rekuberate.io_sleepcycles.yaml index 67949b0..ed0b4d0 100644 --- a/config/crd/bases/core.rekuberate.io_sleepcycles.yaml +++ b/config/crd/bases/core.rekuberate.io_sleepcycles.yaml @@ -59,12 +59,24 @@ spec: properties: enabled: type: boolean + failedJobsHistoryLimit: + default: 1 + format: int32 + maximum: 3 + minimum: 1 + type: integer shutdown: pattern: (^((\*\/)?([0-5]?[0-9])((\,|\-|\/)([0-5]?[0-9]))*|\*)\s+((\*\/)?((2[0-3]|1[0-9]|[0-9]|00))((\,|\-|\/)(2[0-3]|1[0-9]|[0-9]|00))*|\*)\s+((\*\/)?([1-9]|[12][0-9]|3[01])((\,|\-|\/)([1-9]|[12][0-9]|3[01]))*|\*)\s+((\*\/)?([1-9]|1[0-2])((\,|\-|\/)([1-9]|1[0-2]))*|\*|(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|des))\s+((\*\/)?[0-6]((\,|\-|\/)[0-6])*|\*|00|(sun|mon|tue|wed|thu|fri|sat))\s*$)|@(annually|yearly|monthly|weekly|daily|hourly|reboot) type: string shutdownTimeZone: default: UTC type: string + successfulJobsHistoryLimit: + default: 1 + format: int32 + maximum: 3 + minimum: 1 + type: integer wakeup: pattern: (^((\*\/)?([0-5]?[0-9])((\,|\-|\/)([0-5]?[0-9]))*|\*)\s+((\*\/)?((2[0-3]|1[0-9]|[0-9]|00))((\,|\-|\/)(2[0-3]|1[0-9]|[0-9]|00))*|\*)\s+((\*\/)?([1-9]|[12][0-9]|3[01])((\,|\-|\/)([1-9]|[12][0-9]|3[01]))*|\*)\s+((\*\/)?([1-9]|1[0-2])((\,|\-|\/)([1-9]|1[0-2]))*|\*|(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|des))\s+((\*\/)?[0-6]((\,|\-|\/)[0-6])*|\*|00|(sun|mon|tue|wed|thu|fri|sat))\s*$)|@(annually|yearly|monthly|weekly|daily|hourly|reboot) type: string diff --git a/controllers/sleepcycle_runners_cronjobs.go b/controllers/sleepcycle_runners_cronjobs.go index b35a92f..b6f0bcd 100644 --- a/controllers/sleepcycle_runners_cronjobs.go +++ b/controllers/sleepcycle_runners_cronjobs.go @@ -48,9 +48,6 @@ func (r *SleepCycleReconciler) createCronJob( targetReplicas int32, isShutdownOp bool, ) (*batchv1.CronJob, error) { - - successHistoryLimit := int32(3) - failureHistoryLimit := int32(3) backOffLimit := int32(0) schedule := sleepcycle.Spec.Shutdown @@ -82,8 +79,8 @@ func (r *SleepCycleReconciler) createCronJob( Annotations: annotations, }, Spec: batchv1.CronJobSpec{ - SuccessfulJobsHistoryLimit: &successHistoryLimit, - FailedJobsHistoryLimit: &failureHistoryLimit, + SuccessfulJobsHistoryLimit: &sleepcycle.Spec.SuccessfulJobsHistoryLimit, + FailedJobsHistoryLimit: &sleepcycle.Spec.FailedJobsHistoryLimit, Schedule: schedule, TimeZone: tz, StartingDeadlineSeconds: &startingDeadlineSeconds, From f83badc125d33c7fca1281dcdd2a531166a71cfd Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Mon, 27 May 2024 10:50:17 +0200 Subject: [PATCH 10/47] added ko runner target in make, runner img as param --- Makefile | 14 +++++++++++++- api/v1alpha1/sleepcycle_types.go | 4 ++++ .../crd/bases/core.rekuberate.io_sleepcycles.yaml | 3 +++ controllers/sleepcycle_runners_cronjobs.go | 2 +- runners/runner.go | 2 +- 5 files changed, 22 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 4ec7ad4..09bf1b0 100644 --- a/Makefile +++ b/Makefile @@ -5,6 +5,8 @@ IMG_TAG ?= 0.1.2 IMG_NAME ?= rekuberate-io-sleepcycles DOCKER_HUB_NAME ?= $(shell docker info | sed '/Username:/!d;s/.* //') IMG ?= $(DOCKER_HUB_NAME)/$(IMG_NAME):$(IMG_TAG) +RUNNERS_IMG_NAME ?= rekuberate-io-sleepcycles-runners +KO_DOCKER_REPO = $(DOCKER_HUB_NAME)/$(RUNNERS_IMG_NAME) # ENVTEST_K8S_VERSION refers to the version of kubebuilder assets to be downloaded by envtest binary. ENVTEST_K8S_VERSION = 1.24.2 @@ -144,4 +146,14 @@ $(HELMIFY): $(LOCALBIN) test -s $(LOCALBIN)/helmify || GOBIN=$(LOCALBIN) go install github.com/arttor/helmify/cmd/helmify@latest helm: manifests kustomize helmify - $(KUSTOMIZE) build config/default | $(HELMIFY) config/helm \ No newline at end of file + $(KUSTOMIZE) build config/default | $(HELMIFY) config/helm + +KO ?= $(LOCALBIN)/ko + +.PHONY: ko +ko: $(KO) ## Download ko locally if necessary. +$(KO): $(LOCALBIN) + test -s $(LOCALBIN)/ko || GOBIN=$(LOCALBIN) go install github.com/google/ko@latest + +ko-build-runner: ko + cd runners && ko build --bare . \ No newline at end of file diff --git a/api/v1alpha1/sleepcycle_types.go b/api/v1alpha1/sleepcycle_types.go index 4b748a1..e5eec72 100644 --- a/api/v1alpha1/sleepcycle_types.go +++ b/api/v1alpha1/sleepcycle_types.go @@ -62,6 +62,10 @@ type SleepCycleSpec struct { // +kubebuilder:validation:ExclusiveMinimum=false // +kubebuilder:validation:ExclusiveMaximum=false FailedJobsHistoryLimit int32 `json:"failedJobsHistoryLimit,omitempty"` + + // +kubebuilder:validation:Optional + // +kubebuilder:default:="akyriako78/rekuberate-io-sleepcycles-runners" + RunnerImage string `json:"runnerImage,omitempty"` } // SleepCycleStatus defines the observed state of SleepCycle diff --git a/config/crd/bases/core.rekuberate.io_sleepcycles.yaml b/config/crd/bases/core.rekuberate.io_sleepcycles.yaml index ed0b4d0..0453297 100644 --- a/config/crd/bases/core.rekuberate.io_sleepcycles.yaml +++ b/config/crd/bases/core.rekuberate.io_sleepcycles.yaml @@ -65,6 +65,9 @@ spec: maximum: 3 minimum: 1 type: integer + runnerImage: + default: akyriako78/rekuberate-io-sleepcycles-runners + type: string shutdown: pattern: (^((\*\/)?([0-5]?[0-9])((\,|\-|\/)([0-5]?[0-9]))*|\*)\s+((\*\/)?((2[0-3]|1[0-9]|[0-9]|00))((\,|\-|\/)(2[0-3]|1[0-9]|[0-9]|00))*|\*)\s+((\*\/)?([1-9]|[12][0-9]|3[01])((\,|\-|\/)([1-9]|[12][0-9]|3[01]))*|\*)\s+((\*\/)?([1-9]|1[0-2])((\,|\-|\/)([1-9]|1[0-2]))*|\*|(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|des))\s+((\*\/)?[0-6]((\,|\-|\/)[0-6])*|\*|00|(sun|mon|tue|wed|thu|fri|sat))\s*$)|@(annually|yearly|monthly|weekly|daily|hourly|reboot) type: string diff --git a/controllers/sleepcycle_runners_cronjobs.go b/controllers/sleepcycle_runners_cronjobs.go index b6f0bcd..525b233 100644 --- a/controllers/sleepcycle_runners_cronjobs.go +++ b/controllers/sleepcycle_runners_cronjobs.go @@ -93,7 +93,7 @@ func (r *SleepCycleReconciler) createCronJob( Containers: []v1.Container{ { Name: cronObjectKey.Name, - Image: "akyriako78/runners-18bcb3a8af7a857e6adc18687b98ef0e", + Image: sleepcycle.Spec.RunnerImage, Env: []v1.EnvVar{ { Name: "MY_POD_NAME", diff --git a/runners/runner.go b/runners/runner.go index 321891d..36024e8 100644 --- a/runners/runner.go +++ b/runners/runner.go @@ -60,7 +60,7 @@ func main() { os.Exit(78) } - logger.Info("starting runner", "namespace", ns, "pod", pd, "cronjob", cj) + logger.Info("starting runner", "namespace", ns, "cronjob", cj, "pod", pd) cs, err := kubernetes.NewForConfig(config) if err != nil { logger.Error(err, "failed to create clientset") From dab8c04b61b1ffce2bf031c13922924a2795796c Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Mon, 27 May 2024 12:36:25 +0200 Subject: [PATCH 11/47] patch update for sleecycles, fixed runners to exit gracefully on failure --- api/v1alpha1/sleepcycle_types.go | 8 +--- .../bases/core.rekuberate.io_sleepcycles.yaml | 7 ---- controllers/sleepcycle_controller.go | 24 +++++++++-- controllers/sleepcycle_runners_cronjobs.go | 16 +++++--- runners/runner.go | 41 +++++++++++++------ 5 files changed, 61 insertions(+), 35 deletions(-) diff --git a/api/v1alpha1/sleepcycle_types.go b/api/v1alpha1/sleepcycle_types.go index e5eec72..0418a76 100644 --- a/api/v1alpha1/sleepcycle_types.go +++ b/api/v1alpha1/sleepcycle_types.go @@ -70,12 +70,8 @@ type SleepCycleSpec struct { // SleepCycleStatus defines the observed state of SleepCycle type SleepCycleStatus struct { - Enabled bool `json:"enabled,omitempty"` - - // +kubebuilder:validation:Enum=NotReady;Warning;Ready - // +kubebuilder:default:="NotReady" - State string `json:"state"` - + Enabled bool `json:"enabled,omitempty"` + State string `json:"state,omitempty"` Targets string `json:"targets,omitempty"` } diff --git a/config/crd/bases/core.rekuberate.io_sleepcycles.yaml b/config/crd/bases/core.rekuberate.io_sleepcycles.yaml index 0453297..489c7ab 100644 --- a/config/crd/bases/core.rekuberate.io_sleepcycles.yaml +++ b/config/crd/bases/core.rekuberate.io_sleepcycles.yaml @@ -96,16 +96,9 @@ spec: enabled: type: boolean state: - default: NotReady - enum: - - NotReady - - Warning - - Ready type: string targets: type: string - required: - - state type: object type: object served: true diff --git a/controllers/sleepcycle_controller.go b/controllers/sleepcycle_controller.go index c2d902d..cf82518 100644 --- a/controllers/sleepcycle_controller.go +++ b/controllers/sleepcycle_controller.go @@ -164,9 +164,13 @@ func (r *SleepCycleReconciler) Reconcile(ctx context.Context, req ctrl.Request) state = "NotReady" } - original.Status.State = state - original.Status.Targets = fmt.Sprintf("%d/%d", provisioned, total) - err = r.Status().Update(ctx, &original) + //original.Status.State = state + //original.Status.Targets = fmt.Sprintf("%d/%d", provisioned, total) + //err = r.Status().Update(ctx, &original) + //if err != nil { + // return ctrl.Result{}, err + //} + err = r.UpdateStatus(ctx, &original, state, []int{provisioned, total}) if err != nil { return ctrl.Result{}, err } @@ -174,6 +178,20 @@ func (r *SleepCycleReconciler) Reconcile(ctx context.Context, req ctrl.Request) return ctrl.Result{RequeueAfter: requeueAfter}, errors } +func (r *SleepCycleReconciler) UpdateStatus(ctx context.Context, sleepcycle *corev1alpha1.SleepCycle, state string, targets []int) error { + patch := client.MergeFrom(sleepcycle.DeepCopy()) + sleepcycle.Status.State = state + sleepcycle.Status.Targets = fmt.Sprintf("%d/%d", targets[0], targets[1]) + + err := r.Status().Patch(ctx, sleepcycle, patch) + if err != nil { + r.logger.Error(err, "unable to patch sleepcycle status") + return err + } + + return nil +} + //if !original.Spec.Enabled { // return ctrl.Result{}, nil //} diff --git a/controllers/sleepcycle_runners_cronjobs.go b/controllers/sleepcycle_runners_cronjobs.go index 525b233..3a8a12d 100644 --- a/controllers/sleepcycle_runners_cronjobs.go +++ b/controllers/sleepcycle_runners_cronjobs.go @@ -11,6 +11,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/client" + "strconv" ) var ( @@ -48,6 +49,8 @@ func (r *SleepCycleReconciler) createCronJob( targetReplicas int32, isShutdownOp bool, ) (*batchv1.CronJob, error) { + + logger.Info("creating runner", "cronjob", cronObjectKey) backOffLimit := int32(0) schedule := sleepcycle.Spec.Shutdown @@ -66,9 +69,10 @@ func (r *SleepCycleReconciler) createCronJob( annotations := make(map[string]string) annotations[TargetTimezone] = *tz + annotations[Replicas] = fmt.Sprint(targetReplicas) - if targetReplicas != 0 { - annotations[Replicas] = fmt.Sprint(targetReplicas) + if targetReplicas == 0 { + annotations[Replicas] = strconv.FormatInt(1, 10) } job := &batchv1.CronJob{ @@ -128,13 +132,13 @@ func (r *SleepCycleReconciler) createCronJob( err := ctrl.SetControllerReference(sleepcycle, job, r.Scheme) if err != nil { - logger.Error(err, "unable to set controller reference", "cronjob", cronObjectKey.Name) + logger.Error(err, "unable to set controller reference for runner", "cronjob", cronObjectKey.Name) return nil, err } err = r.Create(ctx, job) if err != nil { - logger.Error(err, "unable to create internal cronjob", "cronjob", cronObjectKey.Name) + logger.Error(err, "unable to create runner", "cronjob", cronObjectKey.Name) return nil, err } @@ -188,7 +192,7 @@ func (r *SleepCycleReconciler) reconcileCronJob( } cronjob, err := r.getCronJob(ctx, cronObjectKey) if err != nil { - logger.Error(err, "unable to fetch internal cronjob", "cronjob", cronObjectKey.Name) + logger.Error(err, "unable to fetch runner", "cronjob", cronObjectKey.Name) return err } @@ -218,7 +222,7 @@ func (r *SleepCycleReconciler) reconcileCronJob( if cronjob.Spec.Suspend != &suspend || cronjob.Spec.Schedule != schedule || cronjob.Spec.TimeZone != tz { err := r.updateCronJob(ctx, cronjob, schedule, *tz, suspend) if err != nil { - logger.Error(err, "failed to update internal cronjob", "name", cronObjectKey.Name) + logger.Error(err, "failed to update runner", "name", cronObjectKey.Name) return err } } diff --git a/runners/runner.go b/runners/runner.go index 36024e8..686e41d 100644 --- a/runners/runner.go +++ b/runners/runner.go @@ -5,6 +5,7 @@ import ( "flag" "fmt" "github.com/go-logr/logr" + "github.com/pkg/errors" "go.uber.org/zap/zapcore" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" @@ -45,26 +46,26 @@ func main() { pd, ok := os.LookupEnv(podEnvVar) if !ok { logger.Error(fmt.Errorf(envVarErr, podEnvVar), "failed to load environment variable") - os.Exit(78) + //os.Exit(78) } ns, ok := os.LookupEnv(namespaceEnvVar) if !ok { logger.Error(fmt.Errorf(envVarErr, namespaceEnvVar), "failed to load environment variable") - os.Exit(78) + //os.Exit(78) } cj, ok := os.LookupEnv(cronjobEnvVar) if !ok { logger.Error(fmt.Errorf(envVarErr, cronjobEnvVar), "failed to load environment variable") - os.Exit(78) + //os.Exit(78) } logger.Info("starting runner", "namespace", ns, "cronjob", cj, "pod", pd) cs, err := kubernetes.NewForConfig(config) if err != nil { logger.Error(err, "failed to create clientset") - os.Exit(1) + //os.Exit(1) } clientSet = cs @@ -82,37 +83,51 @@ func main() { replicas, err := strconv.ParseInt(cronjob.Annotations["rekuberate.io/replicas"], 10, 32) if err != nil { logger.Error(err, "failed to get rekuberate.io/replicas value") - os.Exit(1) + //os.Exit(1) } target := cronjob.Labels["rekuberate.io/target"] kind := cronjob.Labels["rekuberate.io/target-kind"] + + if err == nil { + err := run(ns, target, kind, replicas, isShutdownOp) + if err != nil { + logger.Error(err, "runner failed", "target", target, "kind", kind) + } + } +} + +func run(ns string, target string, kind string, replicas int64, shutdown bool) error { + smsg := "scaling failed" + var serr error + switch kind { case "Deployment": - if isShutdownOp { + if shutdown { replicas = 0 } err := scaleDeployment(ctx, ns, target, int32(replicas)) if err != nil { - logger.Error(err, "scaling failed", "kind", kind, "target", target) - os.Exit(1) + serr = errors.Wrap(err, smsg) } case "StatefulSet": - if isShutdownOp { + if shutdown { replicas = 0 } case "CronJob": - if isShutdownOp { + if shutdown { replicas = 0 } case "HorizontalPodAutoscaler": - if isShutdownOp { + if shutdown { replicas = 1 } default: - logger.Error(err, "not supported kind", "kind", kind) - os.Exit(1) + err := fmt.Errorf("not supported kind: %s", kind) + serr = errors.Wrap(err, smsg) } + + return serr } func scaleDeployment(ctx context.Context, namespace string, target string, replicas int32) error { From d96903d904aba5e8f56ef6f1abd499a8a24ed8ae Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Mon, 27 May 2024 12:52:02 +0200 Subject: [PATCH 12/47] fixed cronjob update --- controllers/sleepcycle_runners_cronjobs.go | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/controllers/sleepcycle_runners_cronjobs.go b/controllers/sleepcycle_runners_cronjobs.go index 3a8a12d..8fca54f 100644 --- a/controllers/sleepcycle_runners_cronjobs.go +++ b/controllers/sleepcycle_runners_cronjobs.go @@ -147,17 +147,24 @@ func (r *SleepCycleReconciler) createCronJob( func (r *SleepCycleReconciler) updateCronJob( ctx context.Context, + logger logr.Logger, cronJob *batchv1.CronJob, schedule string, timezone string, suspend bool, + replicas int32, ) error { deepCopy := cronJob.DeepCopy() deepCopy.Spec.Schedule = schedule *deepCopy.Spec.TimeZone = timezone *deepCopy.Spec.Suspend = suspend + if replicas != 0 { + deepCopy.Annotations[Replicas] = fmt.Sprint(replicas) + } + if err := r.Update(ctx, deepCopy); err != nil { + logger.Error(err, "unable to update runner", "cronjob", cronJob.Name) return err } @@ -219,12 +226,10 @@ func (r *SleepCycleReconciler) reconcileCronJob( tz = sleepcycle.Spec.WakeupTimeZone } - if cronjob.Spec.Suspend != &suspend || cronjob.Spec.Schedule != schedule || cronjob.Spec.TimeZone != tz { - err := r.updateCronJob(ctx, cronjob, schedule, *tz, suspend) - if err != nil { - logger.Error(err, "failed to update runner", "name", cronObjectKey.Name) - return err - } + err := r.updateCronJob(ctx, logger, cronjob, schedule, *tz, suspend, targetReplicas) + if err != nil { + logger.Error(err, "failed to update runner", "name", cronObjectKey.Name) + return err } } From eddcbff1d8600f2e44ba4ea9d5b2e5963c2a7474 Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Mon, 27 May 2024 14:01:10 +0200 Subject: [PATCH 13/47] fixed cronjob update from runner --- runners/runner.go | 46 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 32 insertions(+), 14 deletions(-) diff --git a/runners/runner.go b/runners/runner.go index 686e41d..65cd7c7 100644 --- a/runners/runner.go +++ b/runners/runner.go @@ -7,6 +7,7 @@ import ( "github.com/go-logr/logr" "github.com/pkg/errors" "go.uber.org/zap/zapcore" + batchv1 "k8s.io/api/batch/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" "k8s.io/client-go/rest" @@ -83,44 +84,43 @@ func main() { replicas, err := strconv.ParseInt(cronjob.Annotations["rekuberate.io/replicas"], 10, 32) if err != nil { logger.Error(err, "failed to get rekuberate.io/replicas value") - //os.Exit(1) } target := cronjob.Labels["rekuberate.io/target"] kind := cronjob.Labels["rekuberate.io/target-kind"] if err == nil { - err := run(ns, target, kind, replicas, isShutdownOp) + err := run(ns, cronjob, target, kind, replicas, isShutdownOp) if err != nil { logger.Error(err, "runner failed", "target", target, "kind", kind) } } } -func run(ns string, target string, kind string, replicas int64, shutdown bool) error { +func run(ns string, cronjob *batchv1.CronJob, target string, kind string, targetReplicas int64, shutdown bool) error { smsg := "scaling failed" var serr error switch kind { case "Deployment": if shutdown { - replicas = 0 + targetReplicas = 0 } - err := scaleDeployment(ctx, ns, target, int32(replicas)) + err := scaleDeployment(ctx, ns, cronjob, target, int32(targetReplicas)) if err != nil { serr = errors.Wrap(err, smsg) } case "StatefulSet": if shutdown { - replicas = 0 + targetReplicas = 0 } case "CronJob": if shutdown { - replicas = 0 + targetReplicas = 0 } case "HorizontalPodAutoscaler": if shutdown { - replicas = 1 + targetReplicas = 1 } default: err := fmt.Errorf("not supported kind: %s", kind) @@ -130,18 +130,36 @@ func run(ns string, target string, kind string, replicas int64, shutdown bool) e return serr } -func scaleDeployment(ctx context.Context, namespace string, target string, replicas int32) error { +func scaleDeployment(ctx context.Context, namespace string, cronjob *batchv1.CronJob, target string, targetReplicas int32) error { deployment, err := clientSet.AppsV1().Deployments(namespace).Get(ctx, target, metav1.GetOptions{}) if err != nil { return err } - deployment.Spec.Replicas = &replicas - _, err = clientSet.AppsV1().Deployments(namespace).Update(ctx, deployment, metav1.UpdateOptions{}) - if err != nil { - return err + currentReplicas := *deployment.Spec.Replicas + if currentReplicas != targetReplicas && currentReplicas > 0 { + if targetReplicas != 0 { + targetReplicas = currentReplicas + } + + cronjob.Annotations["rekuberate.io/replicas"] = fmt.Sprint(currentReplicas) + _, err = clientSet.BatchV1().CronJobs(namespace).Update(ctx, cronjob, metav1.UpdateOptions{}) + if err != nil { + return err + } } - logger.Info("scaled deployment", "namespace", namespace, "deployment", target, "replicas", replicas) + if currentReplicas != targetReplicas { + deployment.Spec.Replicas = &targetReplicas + _, err = clientSet.AppsV1().Deployments(namespace).Update(ctx, deployment, metav1.UpdateOptions{}) + if err != nil { + return err + } + + logger.Info("scaled deployment", "namespace", namespace, "deployment", target, "replicas", targetReplicas) + } + + logger.Info("deployment already in desired state", "namespace", namespace, "deployment", target, "replicas", targetReplicas) + return nil } From d93937851f4b7d78417b70b9991116bdede9c70f Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Mon, 27 May 2024 14:16:09 +0200 Subject: [PATCH 14/47] rotating between even and odd minutes in sleepcycles samples --- .../core_v1alpha1_sleepcycle_app_1.yaml | 4 +-- .../core_v1alpha1_sleepcycle_app_2.yaml | 4 +-- runners/runner.go | 26 +++++++++++++------ 3 files changed, 22 insertions(+), 12 deletions(-) diff --git a/config/samples/core_v1alpha1_sleepcycle_app_1.yaml b/config/samples/core_v1alpha1_sleepcycle_app_1.yaml index ef4f915..d990955 100644 --- a/config/samples/core_v1alpha1_sleepcycle_app_1.yaml +++ b/config/samples/core_v1alpha1_sleepcycle_app_1.yaml @@ -4,8 +4,8 @@ metadata: name: sleepcycle-app-1 namespace: app-1 spec: - shutdown: "*/2 * * * *" + shutdown: "1/2 * * * *" shutdownTimeZone: "Europe/Athens" - wakeup: "*/1 * * * *" + wakeup: "*/2 * * * *" wakeupTimeZone: "Europe/Dublin" enabled: true \ No newline at end of file diff --git a/config/samples/core_v1alpha1_sleepcycle_app_2.yaml b/config/samples/core_v1alpha1_sleepcycle_app_2.yaml index 26f7209..56fdd6b 100644 --- a/config/samples/core_v1alpha1_sleepcycle_app_2.yaml +++ b/config/samples/core_v1alpha1_sleepcycle_app_2.yaml @@ -4,8 +4,8 @@ metadata: name: sleepcycle-app-2 namespace: app-2 spec: - shutdown: "*/2 * * * *" + shutdown: "1/2 * * * *" shutdownTimeZone: "Europe/Athens" - wakeup: "*/5 * * * *" + wakeup: "*/2 * * * *" wakeupTimeZone: "Europe/Dublin" enabled: true \ No newline at end of file diff --git a/runners/runner.go b/runners/runner.go index 65cd7c7..1255d7b 100644 --- a/runners/runner.go +++ b/runners/runner.go @@ -130,25 +130,34 @@ func run(ns string, cronjob *batchv1.CronJob, target string, kind string, target return serr } -func scaleDeployment(ctx context.Context, namespace string, cronjob *batchv1.CronJob, target string, targetReplicas int32) error { - deployment, err := clientSet.AppsV1().Deployments(namespace).Get(ctx, target, metav1.GetOptions{}) - if err != nil { - return err - } - - currentReplicas := *deployment.Spec.Replicas +func syncReplicas(ctx context.Context, namespace string, cronjob *batchv1.CronJob, currentReplicas int32, targetReplicas int32) error { if currentReplicas != targetReplicas && currentReplicas > 0 { if targetReplicas != 0 { targetReplicas = currentReplicas } cronjob.Annotations["rekuberate.io/replicas"] = fmt.Sprint(currentReplicas) - _, err = clientSet.BatchV1().CronJobs(namespace).Update(ctx, cronjob, metav1.UpdateOptions{}) + _, err := clientSet.BatchV1().CronJobs(namespace).Update(ctx, cronjob, metav1.UpdateOptions{}) if err != nil { return err } } + return nil +} + +func scaleDeployment(ctx context.Context, namespace string, cronjob *batchv1.CronJob, target string, targetReplicas int32) error { + deployment, err := clientSet.AppsV1().Deployments(namespace).Get(ctx, target, metav1.GetOptions{}) + if err != nil { + return err + } + + currentReplicas := *deployment.Spec.Replicas + err = syncReplicas(ctx, namespace, cronjob, currentReplicas, targetReplicas) + if err != nil { + return err + } + if currentReplicas != targetReplicas { deployment.Spec.Replicas = &targetReplicas _, err = clientSet.AppsV1().Deployments(namespace).Update(ctx, deployment, metav1.UpdateOptions{}) @@ -157,6 +166,7 @@ func scaleDeployment(ctx context.Context, namespace string, cronjob *batchv1.Cro } logger.Info("scaled deployment", "namespace", namespace, "deployment", target, "replicas", targetReplicas) + return nil } logger.Info("deployment already in desired state", "namespace", namespace, "deployment", target, "replicas", targetReplicas) From 67c97fa156e118c96536c33584d97ceb9bb87684 Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Mon, 27 May 2024 15:50:36 +0200 Subject: [PATCH 15/47] fixed msg in scale trace --- runners/runner.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/runners/runner.go b/runners/runner.go index 1255d7b..239c45f 100644 --- a/runners/runner.go +++ b/runners/runner.go @@ -165,7 +165,12 @@ func scaleDeployment(ctx context.Context, namespace string, cronjob *batchv1.Cro return err } - logger.Info("scaled deployment", "namespace", namespace, "deployment", target, "replicas", targetReplicas) + action := "down" + if targetReplicas > 0 { + action = "up" + } + + logger.Info(fmt.Sprintf("scaled %s deployment", action), "namespace", namespace, "deployment", target, "replicas", targetReplicas) return nil } From 93050997e71f9c62d87ee2010a26e5d00625cf18 Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Mon, 27 May 2024 15:57:31 +0200 Subject: [PATCH 16/47] changes to README.md --- README.md | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index be4321e..b576ed1 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,30 @@ ![rekuberate-sleepcycle-banner.png](docs/images/rekuberate-sleepcycle-banner.png) -Define sleep & wake up cycles for your Kubernetes resources. Automatically schedule to shutdown Deployments, CronJobs, StatefulSets and HorizontalPodAutoscalers that occupy resources in your cluster and wake them up only when you need them, reducing that way the overall power consumption. +Define sleep & wake up cycles for your Kubernetes resources. Automatically schedule to shutdown **Deployments**, **CronJobs**, +**StatefulSets** and **HorizontalPodAutoscalers** that occupy resources in your cluster and wake them up **only** when you need them; +in that way you can: + +- _schedule_ resource-hungry workloads (migrations, synchronizations, replications) in hours that do not impact your daily business +- _depressurize_ your cluster +- _decrease_ your costs +- _reduce_ your power consumption +- _lower_ you carbon footprint > [!NOTE] > You can read more in medium article [rekuberate-io/sleepcycles: an automated way to reclaim your unused Kubernetes resources](https://medium.com/@akyriako/rekuberate-io-sleepcycles-an-automated-way-to-reclaim-your-unused-kubernetes-resources-852e8db313ec). ## Getting Started -You’ll need a Kubernetes cluster to run against. You can use [KIND](https://sigs.k8s.io/kind) or [K3D](https://k3d.io) to get a local cluster for testing, or run against a remote cluster. -**Note:** Your controller will automatically use the current context in your kubeconfig file (i.e. whatever cluster `kubectl cluster-info` shows). +You’ll need a Kubernetes cluster to run against. You can use [KIND](https://sigs.k8s.io/kind) or [K3D](https://k3d.io) to get a local cluster for testing, +or run against a remote cluster. + +> [!CAUTION] +> Earliest compatible Kubernetes version is **1.25** + +### Samples + +Under `config/samples` you will find a set manifests that you can use to test this sleepcycles on your cluster: + -Under `config/samples` you will find an example manifest that you can use to test this controller: ```yaml apiVersion: core.rekuberate.io/v1alpha1 From 0761f897162c7280349ddec5db207d377d132c9d Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Mon, 27 May 2024 16:20:45 +0200 Subject: [PATCH 17/47] changes to README.md --- README.md | 61 ++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 47 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index b576ed1..f467f15 100644 --- a/README.md +++ b/README.md @@ -24,42 +24,75 @@ or run against a remote cluster. Under `config/samples` you will find a set manifests that you can use to test this sleepcycles on your cluster: +#### SleepCycles +* _core_v1alpha1_sleepcycle_app_x.yaml_, manifests to deploy 2 `SleepCycle` resources in namespaces `app-1` and `app-2` ```yaml apiVersion: core.rekuberate.io/v1alpha1 kind: SleepCycle metadata: - name: sleepcycle-sample + name: sleepcycle-app-1 + namespace: app-1 spec: - shutdown: "0 20 * * *" + shutdown: "1/2 * * * *" shutdownTimeZone: "Europe/Athens" - wakeup: "30 7 * * 1-5" + wakeup: "*/2 * * * *" wakeupTimeZone: "Europe/Dublin" enabled: true ``` -You need to provide to every `SleepCycle` the `shutdown` (mandatory) and `wakeup` (non-mandatory) policies via Cron expressions (**do not include seconds or timezone**). -Additionally you can provide schedules on different timezones via the (non-mandatory) fields `shutdownTimeZone` and `wakeupTimeZone`. If they're not provided they default to **UTC**. -The example above will set a `SleepCycle` schedule shutting down your workloads **every day at 20:00 Athens local time** and waking them up **every weekday at 07:30 Dublin local time**. +Every `SleepCycle` has the following **mandatory** properties: -`SleepCycle` is a **Namespaced Custom Resource**, and the controller will monitor all the resources in the Namespace you installed the -`SleepCycle` manifest and they are marked with a `Label` that has as key `rekuberate.io/sleepcycle:` and as value the `name` of the manifest you created: +- `shutdown`: cron expression for your shutdown schedule +- `enabled`: whether this sleepcycle policy is enabled + +and the following **non-mandatory** properties: + +- `shutdownTimeZone`: the timezone for your shutdown schedule, defaults to `UTC` +- `wakeup`: cron expression for your wake-up schedule +- `wakeupTimeZone`: the timezone for your wake-up schedule, defaults to `UTC` +- `successfulJobsHistoryLimit`: how many _completed_ CronJob Runner Pods to retain for debugging reasons, defaults to `1` +- `failedJobsHistoryLimit`: how many _failed_ CronJob Runner Pods to retain for debugging reasons, defaults to `1` +- `runnerImage`: the image to use when spawn CronJob Runner pods, defaults to `akyriako78/rekuberate-io-sleepcycles-runners` + +#### Demo workloads + +* _whoami-app-1_x-deployment.yaml_, manifests to deploy 2 `Deployment` that provisions _traefik/whoami_ in namespace `app-1` +* _whoami-app-2_x-deployment.yaml_, manifests to deploy a `Deployment`that provisions _traefik/whoami_ in namespace `app-2` + +`SleepCycle` is a namespace-scoped custom resource; the controller will monitor all the resources in that namespace that +are marked with a `Label` that has as key `rekuberate.io/sleepcycle:` and as value the `name` of the manifest you created: ```yaml apiVersion: apps/v1 kind: Deployment metadata: + name: app-2 + namespace: app-2 labels: - app: nginx-demo - rekuberate.io/sleepcycle: sleepcycle-sample - name: nginx-demo - namespace: default + app: app-2 + rekuberate.io/sleepcycle: sleepcycle-app-2 spec: - ... - ... + replicas: 9 + selector: + matchLabels: + app: app-2 + template: + metadata: + name: app-2 + labels: + app: app-2 + spec: + containers: + - name: app-2 + image: traefik/whoami + imagePullPolicy: IfNotPresent ``` +> [!CAUTION] +> Any workload in namespace `kube-system` marked with `rekuberate.io/sleepcycle` will be ignored by the controller **by design**. + ### Running on the cluster 1. Build and push your image to the location specified by `IMG` in `Makefile`: From 06a0d6eebfcf9b07f4395cd87dbd8bcdc3d59aae Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Mon, 27 May 2024 16:26:00 +0200 Subject: [PATCH 18/47] changes to README.md --- README.md | 69 +++++++++++++++++++++++++++++++------------------------ 1 file changed, 39 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index f467f15..f720a5c 100644 --- a/README.md +++ b/README.md @@ -90,9 +90,47 @@ spec: imagePullPolicy: IfNotPresent ``` -> [!CAUTION] +> [!IMPORTANT] > Any workload in namespace `kube-system` marked with `rekuberate.io/sleepcycle` will be ignored by the controller **by design**. +## How it works + +## Deploy + +## Develop + +This project aims to follow the Kubernetes [Operator pattern](https://kubernetes.io/docs/concepts/extend-kubernetes/operator/) + +It uses [Controllers](https://kubernetes.io/docs/concepts/architecture/controller/) +which provides a reconcile function responsible for synchronizing resources until the desired state is reached on the cluster. + +### Modifying the API definitions +If you are editing the API definitions, generate the manifests such as CRs or CRDs using: + +```sh +make generate +make manifests +``` + +then install the CRDs in the cluster with: + +```sh +make install +``` + +> [!TIP] +> You can debug the controller in the IDE of your choice by hooking to the `main.go` or you can start +> the controller without debugging with: + +```sh +make run +``` + +> [!TIP] +> Run `make --help` for more information on all potential `make` targets + +More information can be found via the [Kubebuilder Documentation](https://book.kubebuilder.io/introduction.html) + ### Running on the cluster 1. Build and push your image to the location specified by `IMG` in `Makefile`: @@ -152,10 +190,7 @@ helm uninstall rekuberate-io-sleepcycles Please refer to our [Contributing Guidelines](CONTRIBUTING.md) ### How it works -This project aims to follow the Kubernetes [Operator pattern](https://kubernetes.io/docs/concepts/extend-kubernetes/operator/) -It uses [Controllers](https://kubernetes.io/docs/concepts/architecture/controller/) -which provides a reconcile function responsible for synchronizing resources untile the desired state is reached on the cluster ### Test It Out 1. Install the CRDs into the cluster: @@ -175,32 +210,6 @@ make run > [!TIP] > You can also run this in one step by running: `make install run` -### Modifying the API definitions -If you are editing the API definitions, generate the manifests such as CRs or CRDs using: - -```sh -make generate -make manifests -``` - -then install the CRDs in the cluster with: - -```sh -make install -``` - -> [!TIP] -> You can debug the controller in the IDE of your choice by hooking to the `main.go` or you can start -> the controller without debugging with: - -```sh -make run -``` - -> [!TIP] -> Run `make --help` for more information on all potential `make` targets - -More information can be found via the [Kubebuilder Documentation](https://book.kubebuilder.io/introduction.html) ## License From 015b14cd7bdfa1f95bf9d2f4fcebe78ab4ad2fba Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Mon, 27 May 2024 16:29:41 +0200 Subject: [PATCH 19/47] changes to README.md --- README.md | 38 ++++++++++++-------------------------- 1 file changed, 12 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index f720a5c..4c26f5f 100644 --- a/README.md +++ b/README.md @@ -99,12 +99,12 @@ spec: ## Develop -This project aims to follow the Kubernetes [Operator pattern](https://kubernetes.io/docs/concepts/extend-kubernetes/operator/) - -It uses [Controllers](https://kubernetes.io/docs/concepts/architecture/controller/) +This project aims to follow the Kubernetes [Operator pattern](https://kubernetes.io/docs/concepts/extend-kubernetes/operator/). It uses [Controllers](https://kubernetes.io/docs/concepts/architecture/controller/) which provides a reconcile function responsible for synchronizing resources until the desired state is reached on the cluster. -### Modifying the API definitions +### Controller + +#### Modifying the API definitions If you are editing the API definitions, generate the manifests such as CRs or CRDs using: ```sh @@ -119,8 +119,8 @@ make install ``` > [!TIP] -> You can debug the controller in the IDE of your choice by hooking to the `main.go` or you can start -> the controller without debugging with: +> You can debug the controller in the IDE of your choice by hooking to the `main.go` **or** you can start +> the controller _without_ debugging with: ```sh make run @@ -131,6 +131,12 @@ make run More information can be found via the [Kubebuilder Documentation](https://book.kubebuilder.io/introduction.html) +#### Build + +### Runner + +#### Build + ### Running on the cluster 1. Build and push your image to the location specified by `IMG` in `Makefile`: @@ -205,25 +211,5 @@ make install make run ``` -![debugging the controller](docs/images/SCR-20221222-hij.png) - > [!TIP] > You can also run this in one step by running: `make install run` - - -## License - -Copyright 2022. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. - From 73b735f73b5deb518462acc856e3d775d6432d95 Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Mon, 27 May 2024 16:37:06 +0200 Subject: [PATCH 20/47] changes to README.md --- README.md | 49 ++++++++++++++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 4c26f5f..dda75da 100644 --- a/README.md +++ b/README.md @@ -97,6 +97,36 @@ spec: ## Deploy +### From sources + +1. Build and push your image to the location specified by `IMG` in `Makefile`: + +```shell +# Image URL to use all building/pushing image targets +IMG_TAG ?= $(shell git rev-parse --short HEAD) +IMG_NAME ?= rekuberate-io-sleepcycles +DOCKER_HUB_NAME ?= $(shell docker info | sed '/Username:/!d;s/.* //') +IMG ?= $(DOCKER_HUB_NAME)/$(IMG_NAME):$(IMG_TAG) +RUNNERS_IMG_NAME ?= rekuberate-io-sleepcycles-runners +KO_DOCKER_REPO ?= $(DOCKER_HUB_NAME)/$(RUNNERS_IMG_NAME) +``` + +```sh +make docker-build docker-push +``` + +2. Deploy the controller to the cluster using the image defined in `IMG`: + +```sh +make deploy +``` + +and then install the samples: + +```sh +kubectl apply -f config/samples +``` + ## Develop This project aims to follow the Kubernetes [Operator pattern](https://kubernetes.io/docs/concepts/extend-kubernetes/operator/). It uses [Controllers](https://kubernetes.io/docs/concepts/architecture/controller/) @@ -139,25 +169,6 @@ More information can be found via the [Kubebuilder Documentation](https://book.k ### Running on the cluster -1. Build and push your image to the location specified by `IMG` in `Makefile`: - -```shell -# Image URL to use all building/pushing image targets -IMG_TAG ?= $(shell git rev-parse --short HEAD) -IMG_NAME ?= rekuberate-io-sleepcycles -DOCKER_HUB_NAME ?= $(shell docker info | sed '/Username:/!d;s/.* //') -IMG ?= $(DOCKER_HUB_NAME)/$(IMG_NAME):$(IMG_TAG) -``` - -```sh -make docker-build docker-push -``` - -2. Deploy the controller to the cluster with the image using `IMG`: - -```sh -make deploy -``` or From a7807ee704b7f994cd5024f6f3d6c2ab3ccb2a7b Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Mon, 27 May 2024 16:45:07 +0200 Subject: [PATCH 21/47] changes to README.md --- README.md | 60 +++++++++++++++++++++++++++---------------------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index dda75da..ab4ee1e 100644 --- a/README.md +++ b/README.md @@ -121,12 +121,41 @@ make docker-build docker-push make deploy ``` -and then install the samples: +and then deploy the samples: ```sh +kubectl create namespace app-1 +kubectl create namespace app-2 kubectl apply -f config/samples ``` +#### Uninstall + +```sh +make undeploy +``` + +### Using Helm + +You can alternatively, it is **highly recommended**, deploy the controller to the cluster using a **Helm chart**: + +```sh +helm install rekuberate-io-sleepcycles config/helm/ -n --create-namespace +``` + +and then deploy the samples: + +```sh +kubectl create namespace app-1 +kubectl create namespace app-2 +kubectl apply -f config/samples +``` +#### Uninstall + +```shell +helm uninstall rekuberate-io-sleepcycles -n +``` + ## Develop This project aims to follow the Kubernetes [Operator pattern](https://kubernetes.io/docs/concepts/extend-kubernetes/operator/). It uses [Controllers](https://kubernetes.io/docs/concepts/architecture/controller/) @@ -167,23 +196,6 @@ More information can be found via the [Kubebuilder Documentation](https://book.k #### Build -### Running on the cluster - - -or - -3. Deploy the controller to the cluster with the image using a **Helm chart**: - -```sh -helm install rekuberate-io-sleepcycles config/helm/ -``` - -4. Install Instances of Custom Resources: - -```sh -kubectl apply -f config/samples/ -``` - ### Uninstall CRDs To delete the CRDs from the cluster: @@ -191,18 +203,6 @@ To delete the CRDs from the cluster: make uninstall ``` -### Undeploy controller -UnDeploy the controller to the cluster: - -```sh -make undeploy -``` -or if you have installed via Helm: - -```shell -helm uninstall rekuberate-io-sleepcycles -``` - ## Contributing Please refer to our [Contributing Guidelines](CONTRIBUTING.md) From c9fbb2adace77afa6f0f8048ce448f5d0feaa142 Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Mon, 27 May 2024 16:47:34 +0200 Subject: [PATCH 22/47] changes to README.md --- README.md | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/README.md b/README.md index ab4ee1e..09db244 100644 --- a/README.md +++ b/README.md @@ -202,25 +202,3 @@ To delete the CRDs from the cluster: ```sh make uninstall ``` - -## Contributing -Please refer to our [Contributing Guidelines](CONTRIBUTING.md) - -### How it works - - -### Test It Out -1. Install the CRDs into the cluster: - -```sh -make install -``` - -2. Run your controller (this will run in the foreground, so switch to a new terminal if you want to leave it running): - -```sh -make run -``` - -> [!TIP] -> You can also run this in one step by running: `make install run` From 4c8cb8c217606bae76ddc9ba8bb4058ea21e477f Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Mon, 27 May 2024 16:51:56 +0200 Subject: [PATCH 23/47] changes to README.md --- README.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/README.md b/README.md index 09db244..d4a0470 100644 --- a/README.md +++ b/README.md @@ -192,10 +192,26 @@ More information can be found via the [Kubebuilder Documentation](https://book.k #### Build +You always need to build a new docker container and push it to your repository: + +```sh +make docker-build docker-push +``` + +> [!IMPORTANT] +> In this case you will need to adjust your Helm chart values to use your repository and container image. + ### Runner #### Build +```sh +make docker-build docker-push +``` + +> [!IMPORTANT] +> In this case you will need to adjust the `runnerImage` of your `SleepCycle` manifest to use your own Runner image. + ### Uninstall CRDs To delete the CRDs from the cluster: From 2ec4007762a1ec7d7d774775637cb0d6d517aa7a Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Mon, 27 May 2024 16:59:07 +0200 Subject: [PATCH 24/47] changes to README.md --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index d4a0470..47a9867 100644 --- a/README.md +++ b/README.md @@ -186,9 +186,8 @@ make run ``` > [!TIP] -> Run `make --help` for more information on all potential `make` targets - -More information can be found via the [Kubebuilder Documentation](https://book.kubebuilder.io/introduction.html) +> Run `make --help` for more information on all potential `make` targets +> More information can be found via the [Kubebuilder Documentation](https://book.kubebuilder.io/introduction.html) #### Build From e7245d2b5fdf01d8d93674be483c5c8314869fd3 Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Mon, 27 May 2024 18:57:32 +0200 Subject: [PATCH 25/47] added how it works drawing --- README.md | 2 ++ docs/images/SCR-20240527-q9y.png | Bin 0 -> 427889 bytes 2 files changed, 2 insertions(+) create mode 100644 docs/images/SCR-20240527-q9y.png diff --git a/README.md b/README.md index 47a9867..48ac3fc 100644 --- a/README.md +++ b/README.md @@ -95,6 +95,8 @@ spec: ## How it works +![SCR-20240527-q9y.png](docs/images/SCR-20240527-q9y.png) + ## Deploy ### From sources diff --git a/docs/images/SCR-20240527-q9y.png b/docs/images/SCR-20240527-q9y.png new file mode 100644 index 0000000000000000000000000000000000000000..3b3944924d8593f7fc6d81d3ab5f1751ca7ad507 GIT binary patch literal 427889 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 +hg?N)OP>=txo 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�YV>vn7 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 (C0Z>#uHqN~b&c|MhS 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�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 literal 0 HcmV?d00001 From ea1f0255c64cea73ff0f3c9459e22f7b36284b4b Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Mon, 27 May 2024 19:01:15 +0200 Subject: [PATCH 26/47] added how it works drawing --- README.md | 2 +- docs/images/SCR-20240527-qei.png | Bin 0 -> 436636 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 docs/images/SCR-20240527-qei.png diff --git a/README.md b/README.md index 48ac3fc..e897bbb 100644 --- a/README.md +++ b/README.md @@ -95,7 +95,7 @@ spec: ## How it works -![SCR-20240527-q9y.png](docs/images/SCR-20240527-q9y.png) +![SCR-20240527-q9y.png](docs/images/SCR-20240527-qei.png) ## Deploy diff --git a/docs/images/SCR-20240527-qei.png b/docs/images/SCR-20240527-qei.png new file mode 100644 index 0000000000000000000000000000000000000000..2ea9c6489b8378d4cfad4c92ad552df825fc369a GIT binary patch literal 436636 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

K?2m;@^)<*CUS;ctoRAXafO12h) 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

YHaj4az74f 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≫EOM!TbQaq5pJ$ z{kp=#6eoDUc`8*xgNW9}!Qi8P0LzgfXJj0e< zfFYk8#9%w?-Z_M))WV%`jgh7m18be>VeC881s;<0n%|~! z;~sK2{^)Rb9^$tz92K-Aa6EEo^XSN85bcB>8Wd5o6Y zEr7ZlMXu^SL)>4bN31+n*PaYN-)aydq5V9!vq|HzE{PkDoj~E5Blk+`0?ZZWi|g{N zcii`mt+Bc|>6H!PHJ&J}m?wKG;T=%}=1h9EdkfnwkCySkI%vc^T#yx!a%;^S77vjp^l^;= zSkDrPR;nkdE%3s>KVR@hf_AhXloxNMqyhTRcUDH;LoqATj4Pn0){n$Aw(We(ls)K8 zE%ZFx*&4RUOTQn>dD|DeD5yR@n*?Q1+%}7Kr>XpdD%GxiX@V z9411OYoGwiq3@1|dRy#1*L|7N`DIH|{#S<~y#dRD9-YtN)e z*;0S*LY!&RPl!0Db|K4CmtR2VB$N`V*^RuF`ksIC3keh!(hYy;IciO*S-@WRUfQ2e zPQHvw87uB`glfn{0a);Y6V=5p8J|B?I&Jj?y9~%Wf1;KH#c~Dy5BrlIE38 z1v=JZkj_AF9&RnrpJ9&FaDhqvQ{B?brtz%)M;T!?m&`4eqW=!^@(#v6^iHsh7NU_dGgIOA)Nrp_t# zI=%+)$V{t!9;qmVMHxx;8O%w1)ZX5{0Hl^8_*Dl@_onwUiYZ@RyhNDiyf!{Il6iOP zS$_M!9}b{O5GyX==nE|dzM=p!DCYo}fT-twtNtU<>-iqmvsNC2J%9<@kpX+zd2F{J<* zdz%LWAX!|Uki$h5J=0<0NqdVKV5fQ8lSB{cogHr->lAF%Tjrn8@%qPCJX=)QCtLPs zi&@dys=>iw@8D4hMfC&h5)@7L=jyyi9dejmhv59Do6>I`TQ=Bb&NxR5JvI&s_My-f zKDX7vmNx^%n*jZvD1k&dr}Tk$f!^E8v#?G3lzjR?O+;RGzTEkmh@0qcTff6?a+Qqs zm1A@=@6aD_59q^gic3P0#XMEk#;f2h7#B`W;a6x+bzVU+C%`n;LV#0%h<*tAoE1Qczj;lmK<6q7XZ<}C7J9$L}B-UrqcU< zxKu4{WX@wRHL7P90mBh~Jl>dYf?IltwY|*n`hiPIabk8qm4B6|D`Yz<;kJ}pve|~1 zPjcrRbL>(4!?O=!*zdP>Ci9x9ASu4#@Qq}gYBhj_*_lV4i*ep$l2BDuMUg?0t89(Z z3#k2Ui-_tH*myI5#^dUAeFT4Tcd_pQ@2Mj779yFH>Htfg8``6|Ybg(SUNQczmBPSN z=cna}&DI`JVbneIGqPv0_RUhEue#33+X}#eMm8NEr9Wj0AmWtK+8Wm;ppfb#v72Hg z&x|wr14-Dr`!w_uT|!fmUjhT_nz515iTwBeN>|f{02Wm`3JoEMe?Kdo&!T_k#y+X8 zt)vj>SpUNa-wb|~D@0oPolvapJ%BL>!z#c$@1ks=(4p)$?;eP{ZOH=^kVg)4Z9faP z54V@zqlmfC>*#=Thep_m9ZVc`Hv@oAX3g(z?mHcg7Ehd7zRD@Z7*lJd05oVeZXe;f zI~By0K_%=2*7M*!ry_i=y_E;PFPv9Oe5}VVwgx*BJWv1xa2)L`eoCC+PZG>mZckU2 zZY}gML-frjsy!Y2#eoe7V$NLYD7$DPFnUduaUBQ;w-2`sq;Qczhld3xub3jSf(`oh zh4*dBP*yrEq%Z5q{+fVw9xMk@<}jZzH#b-RG`{6njQzN3N82>yl$r}bUkGI9u!j7U zM!=!qqqTLLnur;Q(u{xK97T=(rFQ%Mu@G{MtjDZlS5#Cq1FpyZk7uUVeD&+!!vFnV z%FJj8tH!zs`%wdwn%%#C2*5O8`q_@_leJp`N*;8H5ahmKTe67j_mZK!$m*gGCqIk_ zgi$oa)vs_uDu6LK*(ChIeA;zhz!>$GM~~C)rGtrz86eHhC%REjv;dTO0N(4kFEFcv z{iMF}DtBisJc?5&rQXO3l46i-l<#0Q^qn#HX~kWFKT2srI~ls6$*lMxsxg!*zLYKU zoI;re%ZMH+%RJpwpdr*)YA`ECUqivWo7MXh2o{>EBk{b}-#DU1Vq1JIW8%;$X5UE6 z7J;?+HJy{zrW%s~pGmL{^2?XBn?6h=g4$!f)+76f!n*V(%5H(R(1?3^RKJRZZX+mG zmv`RF{aY6T`2u+KSga7^j9jktrb__K6Nh&bKplHncuKjOtmbJIFo}ZL7|H`|FZrEm z*Va3ac7YRpviPWDFt3%fr2Axd{m`1iXkgCDQ`zCAk%VC=7da{Vc>M=nCd$M1oa0IU zDT(a;q6!~iyGA9%I}z{&H{K%pl;u94WJVchzSOz(@P=OCDK1?>#&R3k$HH=VO<_ri zHn0PD^0CMmXv#DLD%%WH&$&`mzj+C;xy*n>=b+n2{MvzL5#GprdTVuz;RA|A0OTc) zvT*dnP@1g}z?A**m)`4p2|{H5h=S`J+EK?|(`bsEl{2puL4)*2I2?^QK<|d>*C*B;-#T{DOAyCnB2L@QaSX zjDVZR>Ps@0p3nntr3B(y!^D%eX46?~1w=IvbCh%9+r6p*Bg=WZWq15`9OgR|NuN4C z)-JU*K1Mu)v-2jG1 z56U7&!7M?T5c7r?ifOnFWxR3_pI5(}SWPT74G|!)^plNLbJKYM7%6ZKx{V_Fw#wtt zd9nAU7KFe}u(s|f8JxGdb8eFsLEJ;5sZZr(+fhuGB6ZQaM+ktbQFeox%aTF;66>c) z*BUwYXgEDJ*m&wPl#-Lg<&*d<)c<8_vTZr>pKLoVI@WqwE^@Ii8;%kECx{`u49sF! z!N#AmRp&uKOFaPTsT;`Q$||qP{Zp7YH53kz!nf<^0tK(oGMVuw##%V^-GMc9>7bNK zyrA|n9(6)v7)|nB>(N+fN%Y7D%AABzPRASqH?4idHb~QJ{%-yW*LFb&d9 zIxn^yKV0w@W22!ixJ?oKE@|ihIOJ^wd-}lL*=pl~ebTY1;tK&0FG%Ln@=!q!DzGSf zp-sf7k*vhWcuu?k76`gjDZ?uJhhYszh*Nt-KnF;8Ro$uGO}XMUlmdQuxEW({hNo99Hu(%&92f&v6OD%TZ2CCs&Pv2d&a~kUF%}!t_ z-vg+BHrYx+d*4uHiybAw0Km|qno4})s3n+(+BF0()yU)+*m94MZE)_9WI0a4XFE4a z!e{%BJk}LI!-DUga%ze?I$b?#B)g#}%CrU!#rxw`L15!~jaE3@Oqp6|!(bb`ge4=U z8Db@!rp8Q25Rgy>!5Q4GeVqVkz}}%B4rXa{zRPZ^HutyF00T(ofcTPv(#WF|1_rxa z?k_QV=dKBisFJ9zV3UVNf+sB)FLNKMAyzo|V;S&CGNM}ZHAF0jsWWWIRN4=>y<}rv z9oZ&D-)lN6kTZIaj8`yyX{9vXiqxR!#9dcT1Abub1XX@xj=RYeQCk7w?}Ek&5s^EG zNpi0}OyCZW8F<#pe8nKUw)ylBJUeE3>n}6~@O}4|a~72o;5v&;uAG3Ay+=jKP+EA* zXANLmwtPhRU=uwWe;b2WR#s(+elYs>xSfBZjmC{=$HCoehxyz58*8!pRS@1m#>pj_ zhG>}+{MOKX;(Y25-6HgtNFLhHv2*uaRj+410$7K?L?L;$-gM42eoktt{`f_h$MN^nRq4$vgm+pCsD^a50&iA!&>9l@3WE9#>>Wu(zrYWu^)E; zq6;IMr<8}a_=6M}J(XKhKMWlq(n#g!!Y~;&w5z*LrvG?`9T8Ywce)qe1pulT(*IlZFZ||&`xnJJ=Pp@_ zb#h+b_E4s#iD@!&tm?!P`Mqd+?s546kAQ|CXwbaHzV5ZKkIpL_Jbx!=iGuc&DN)mUB~ zbK>Cr?|vg83#1WAep%%I%_90pfcf?{Fa5mB_g^-GML8T$kgVnE{|!8}#7hvb%3iWq z_}{Jcy7Nx-xS0qoO$rdT9-kd zzq_W2pL(iz+2tKyWP||mPs4V&OXK21L5HAPI34SCEr#qsSj3}5v$djugO%;om!-+O zp6~x-j#7;@!MBuS<-y9x|M=5CW=oy>UlBbpPmhL6f57@b26BM`ZvW+9JXtWyN!kGZ z=)Zm8e{p@?1vUDs(&K5x|C`kjgZW%|zU{*QIcoEt^RiCgsb(6?qCei)e7W+!SjB&N zA*OX@FtbUV`0m>C|N7GZdABgs*x07lfujE$_W9peCr!{S+N(GIAETS8BP5EnLsY&* zQAaBf^f{%VO?xNZ{I%(P2Y(m1qX;7&6Jvlj}7cZJ$BX5cgSeKt1YfbG< zu>X?@I3@LG3j!0@LW#Y{2zK0ZUwDWzOzBrRaiIDlOFj1O+hDM!?WKXpX6X0t5#tsW zD=RC+WqI;kD|r;noafiClq3N!iM_+NP@<)yqeHlaiHVt(m&X;bm-#4Bfew_?nMS5% zXbaxHZOf(t*|jMf%S-mK@sK$i{w1IbPMPK_e766u5n44LZ_+;YGBTo9*U*rbIvO6< zCR`v%gn$@ksoS=BTYEcWesxI+e<+PO_1M_hLRVK80a)Y0SEa6tgRC-fc-{*H$mTl|X_{#%C5haao}LCH5(3Dmsc~gpStGLJ zzCT&YGpAAyILPYxYk5D3lx3=7q$7Tqd{I+)6t762-|^v~o%!N1sBGH+uo(?7ubl#h znXr(M^a*FK%5^CZkirc`^|Xdk3CDPi3>mEf}T>5rD<(Se;P}I5N!8 zSLn{NmS9#vhQEjG3)blBdPK>%8=LHmg=imulK%991AEWyMdA}#8&>lN;Rk`EDvs5u zTZy6DHHjwt&8N4&!JIPT(T?RQXtcPSAmbLW8`$=~G|!JxaN7f5Uo&jA-bmTkc?>~~Lx`K>+xg35Da@4*=jpe7P}V=|^tOYyHs# zJZ^~yIpLpw39=e$tel*j`e-(dDF8KX7TB!uygK!pp8HDCmJ0w$o&v3J3zxt4t2`n1 zBt2WwZSNm)5)bGWK2A6~vnjy14D?@DQwlyA2T9|-63Af*amX>qR@bB2PiBZa$Ho%x z@QvkCLrl&c9=?I(MA|QesMg|R$mw`bGY9NSxA3Bg$Ga(Rilsq4ZYjup0Qc?S|ciT zX~kwY@fW2!0kvc^|I7J2|AWu&47Y`asW1i7{OEhU#mTm;%U}WBMHlOde{QQU5(#Ld7mAsGQ435@PgnNoL&2@?RX`6b z_Ew#t6cfmul4+384y&izcGL6as;~sHm;21rpwD0#h)wg!^QO=56mZ)GWov;y+fC{~{WZ%V-KAZlGb@ z1%wZ$2B657ZXU;n6JcwfYwjDU@Hg+FLP1vi_rK_mi5Bg^>NCI~t6BhI`wdhjm)fBX z^vG#zYm33OYe3JPL(kzncM(oUCIz@*o^67_0XlI$*Dt*=kn~BHM{I9zcTVR4%%uV|2$u7m%^1a7Z6Ngm{63gaCc%rWGISzxKTmw{mAVPi;sp9fiyB4_4m@6nX&L}4dNd)ItBzv~Q7QDY zv9ZaL8ab!8Y6|XwwG=otj_IH6E|9W=^xpPmlm!I^cH4`6#L>qzptbsb^YQp@HL3pb z!GMvaCHv++!m8-NWXVbZ(Rd>B!Ja-N^%jP(EtbrHd~a%QE=PHJxs=vNz+E&A0E-|3 z{kXss*4W%EzwAUi_9RjNOqbV$qlBq^vYvCtx!cvCQzzE+_p9qxdkA_R^dvWeLbx5&V5pYe$FQZ- z2{G~W7e29=VZ0Y7T-`I2pu&F-wcTY-ar~^^x&>;JHc*MtfPKgYDTDx(Fbj+r=9uGG zg-<~5K~AO2AKNsUpcKwOv%YRyi9A@^cteArwPNt=1}bVRUd?Rp=^5=!YSDvt)e@dw z&HI}KXfMi6<>loyZEo5>R8(w0B|qpkCp_ToE?p5_*PjdDh(4U>Nz#a4i`{U*W z1?Rtwy`8XE))Cg0mi42fx`7=UYEj*ZNn)Ntpy#&?3~?$QxIHF5`t`gGoFXal8o9UU zqIN5KYebc1spRvWdkYoe;o(sqCTh;VHOjcu66{&c{OhfOiA0wUjIOE8+13p(t*d@! z<~gEc4e=;AG&Fq2WRH=;(}0ixe)M*S)vBi39SClg5Fuz_2(`YDbTXvBuU+GrVgz zF>-McC?xKkn==8E9-#jF`}`d!1I{*rQVlJ%Q~a}Obcv# z0+9ys8s;WNp1)X-Sy6&O3267IxFX*&6_t}BO?})#}|@$_}kCk zGgRmz_5rwk+hf8l4R!TYwOdr%))kObNyGFG7@E5h|CpLy8uAML2r$*}#l=8xZ*NDq z+84!hl!syUV z62U>I{CLcsV7zM6jgHXSz9BTUnsstf0#FX^>9YRMAG|Ng z1H0{_2&;9($t_M}X#f2KcnI15`QE2|_y5&HXq_*N%rO0f{=m*Ihu3sGk_izn(yqsa zx#gv1#%yJ6`0;Zbgw0>&9KWIWy9lV48d9Pc!&+`%$E;2B>8FRwjBPl`)W;h42Ay^q zY^xf=nL7)UE811RCtqJ?j^c^|UXu!{O1&=#VLIZ~EM-#Z3wp94gK0da{U7?Md(bh5ape3DtQzqb}RJqeR@ zyk1E@lD4^vluMQ%IgV9awsb2a*D!ftXGf?LpIy&XhZI7CU^uioyidoGi?jAY6r}CD zm{m49c*`HfFf5LAhav^+@YWQc6%-PwwmqOxigs#OjUHrWbGRyt%N^os9_+e!_3l=> zk?Y(S566wNf7k}uC|1li9Y6ZZ5(18TA$m(+;@~~9Atp5F>u376*6Q2r89C`WtA&3W zl~W$$g~iGm%v7l16TfLj5H*=^g!GwLDm;Ils}?e)&UxAWdpNy^Kys@L#gtb(U2v`l z_3*~8x8gzLXuxZLKhT`VPyZ2k~BZB@VDNbWrA{Z`ej&iK~N;iulF zD@+x0!=pm+{1N}xD0NLW(V&!cf)rVqBr&pEfidR3zKEP7GN-=riA+7=~1bAj3kYrdC=%gwg8h=QsR7juxa=DbF-1B7P@D#Gq<;CYz>ps zUBAx)K?QAFXgj`DIT1`AxFhihr*Z$#3v^0cni+a*|=TqoeL`w&NO z)TnIZ85i{U&hy}Fb4G>YG|~dy@8UpED3rl_Md6d>^?`Y|{8E+BCzL-k^3yTCYmGij z(w^C8|FVeOT5EAGQ}1TWRsJ%=Bv`ebc7FY%Es zL?6da4QIzUUEjiHG1;NWU#VIuPX*d^>zE({?U_aP+LsVyU-qDaNnry@eN&8d5!rpZ zQNlc|_WDj4N7@3_%gY7BABql!&~Z7vGme&%GEHJL#rj7bt0-y4*c&P;z2xA;Z`}Rm zgoz06v#p9L8Hm3Rsul62YGDmofeJ>1z}r;yskz?mzfON{?n@@q`<_b?2d`~C=7>^P z#rhwS2TD}zx~bj$pE9_H=w=F^pT^y+eE-tY`vv8&>CwA$=gTG@qKr zL6OM9c?m0A6f4ZCLZ+3u+m)ssJ?X;5fbgZku+%mFZ~1&OhrWENfj=GX5}OeZM8=b| z8`Dj+J#P>cE7yhEZ$@-oY9LU|Pr|<>9C^9y=dR1IXQuY}$|gwdt@&GB9T$TJw-8cy z4+2DDJYPD`rQ+x;t=7y{s_zjAEQ!^75e~|{8n7pBcQp@kl?gQ^YEz==P@j@cng~C# zY;~fWi%Yn-E1+})X>%vsDfp0C%%>D>&CK!DRHcG^3pkuhw=VCOWMw{^KgtLa>EK4*;!MF|X>Qi((r-e8-ZgF1T3!vG+S`&B>mYjKaaYH` zm=lMwv`{gK=Z5&2Rl5|&wc}uFO@*fQGdUf<9Wg3 z7lQ?h4&2^v9!l(d`+k2B!K)PAt#Vu8J%s3DwV+ZTuTpqdYPV|1`-etO!>uAup4pGo z<*!KJY13sMhDPFr?wT6Kx-K%ndmqTG&fn9<--_>defOoz>aVT(#t)c!x3N{{G;DXm z)J7o1BeSqta-XsCsoLTpIZXJzX65at0mqekf%+Q=>eT!A*f%hI2+#>-r=8!?i#v~K z*S+kT(Yt14{w_k4Shw;gw`mqfehv4V0akmOk2CS~MJ{i8r-eQAJ}RckNMHB&YJP{;Y@$aIRyMnEMq?*6{SIW8%zq{CLc|=W^wVX7KN- zoMq30bTiAKGR(;4>0q2C^8jxO*Nf`A*$;yJ4`gPE>M8jZo_8tVy*3m_7clZIe^%SW zj~BTlLq%G$ncreh`bK7j6rY`Eu*mXJu~U2iq&EMk2wMaf4QT%6y|Fs6maFFNs*zZG z74u)5P4j6IG`h)5lgNz`P7`;PJU4Q>cnju4iW(3C8kPZCH|*?9()>J!_B`jl3{b$; ziekfxkWb;ncR%@i!c@bIcuOChv);X#?*jue^3#gZfAG907VTQY6@prRf_v8Ztd$Ba zYkWS9WIFB^i!7- zUKu_vpimY62_rdnIDjh2W|W=o_k3D*5brOnLuUV5)YD~n9~&Fcad9s4)@ssy&|Gro z%26{+nlFnsXD0{{|9SX@FLi^U|IG^oF7ejY%iSS~FW2AI#MXMs7MJg;gmtdT^indW zBk$m%885c2R|k{rvxcJU3?hibn>+^xv7}~|AxY_6-+zXiyn@|UA|-MuNB`#iq+NBe zJ!IcLCr7=9kmLi9sCi5paa_$?-M&XTYjBb1+6(2e@7EcFhAcgk$Q$1lH@n!qB+s64 zjc_$bmlSVTt@@C;$=&E~-0}~v;KxI-nFeC+*8j+l*L-A1;j4&Ge~4~-rz+ml1nS!qLi)E=`GKoD^Wh9wl<6bUb@vht_d4eV%$%r!Xa*Au&oy{ba z*j^#>a2US;?#H-1+^A_+AB2W{?Qs#^{sGC?vLED)0yk#XZ#CbQ_8;M`?8xOie)OfKuh6Z^-8_*0t~Vy#H}|Bh+en2Ena#a-0^S|pEQYrR*ni06 zY>S?5(dIA?C$nl(ZMu=b5oVNRJ_sAShxdGhZ4f2`?}a|vWL!a*Lzt3iIvQGyd|jT7 zn}xV4gdbqQRPh{FtHRHl?zN~$>SQ8O$!X&8kEi)?(x2!v?d_a!Lw8^QI^$G(#<@It zg@>HIQ$#XHc=EZ&Ms&2T{tOBnm7z>sfgS@=ys7ps^AQgNTs8!7{8ZF!3tx`QlrudJqd=eekZExt6xGOZ`^6k0{7eQPVm5f}m@U`P<5x%d7wOH~s8oV2~2-Zhr z#_|f(8rZw`SgXW3?vQ>fIxedrye>1#^`L6zcxd!df`sjW+b-YG=o_lVkHvN6c6Xm) zU(jpoQRjG>PrH$X=hYH_ce$#5seRkBZRfkX0728!K`kANyKX`}T|G%RkB+6OhK1v5 zNC`W)A(sxrpH)}t{o?Cjj*r%X_sX@Yia$@fWtJo*@ZPEVHNp1Je71H~eHVYZaS4;O zbap40>KfFQr$sur`cObXB{(bmzZ05M9VZjrvXo+Dn=`;?_@&+86$--&sGunsGe>EnGYO`}~GWr?>5FO~K;;$Cf- ztHW1PV3`nA>XV0jbRzPn$^DGzc}_U^scP-1bwHQi9BWMQ4I0Zf)wJi)21$$G$T5{uN z68y+xnZ|J18CMfTjxfA&_O;7a_Q-7riREt`?ENsRLeKa$`$Z75)`uz6(7PdbM__Sw*B=vhlWE*k5w-)}w>gw@MMF$D>ThNoF}l5 zk&(z}v~%O3t2oT;>5r(NFNlyxOFtDRR?9;eT8F%Tna zI*_lOhz>zg)9qpw*jdujycuJ~fsbWvn=-98qZgBFab?`_%N`t*ralPHMDW$YW$YRir!~w zCakW(W*3dqaQn+1CjR!JyFK@CGBcrI{J|D&)8<_eoxELL9Gf}Erxad0H76A(sNm3N z3h!N1;ApgqDf{9YXg35C>8r9x5|U?_jqORuRClS8a-WUv_a$nhe1PtuY_t&Td$r@X zcKPeA!@B0a7-FOtoc@)wc{h3N|UrLK>jVh2Jgk-z8*BEz`F*gBPDZ}Au4`bP#~`%CnA@iHmMWLua8rlVp|^Q1%# zrEMZF6J5>iDdY$__sE0BEFnob*M&n6w z^!t0Fb6?)unJX_aRXh}ad?VnGp{ud=Pquo3MGe8ko;kI~xRnB;Q@Xu?sjgUaCc!lIe4*K5Bj1D^Fj2&*Zh4Obh37wgmYGwTMl* z)^sI(7~Rrl8_~1o`s5(Ukzf?Nal@57_ekLECo7~Jp)I>J+{ zr9P)oUMTE+dHtiL%7_6WnRBv`tdx1XL9X&5_l_Uo$y@tx4qdr#pu1mIG+w z5ds5&iN6>lEpaHaM}~fZK)%T01B~T z%%)9M`@@v&a9Bsl9IJZ3eO&B^(iL;89@k5qDq$ioLF7*!PK;}s+^(w7lx!LrnJd~# z-{i@E8fU&pz%@8>_PQLku)q6OaTJ=S*Ck%S)vUzpu`_m#O; z6g%;d*!=#>FEhjyKaYiyR0J)wy!G>~?P{36+!XC|arjIQk(qJK*L)D>eXrL`_}O>f z?=?^r#-w#bT*s z+o8RiL%D^%&Vah^YVb}DtGeWBxp@|J5a)_-&42Af0h5(eFnMJ?DP!K}A8hIJKR%@? z&?Ka4hIIt+77&OI#q07$ES9jv*0EmN8GR;-;ao<>dkV$Up2jWUNhXqH-5mr8T300Q z>`Sq`b306}WJK0uIExri101vF@A!#OTh zIj@fbu=X#<+MSZs>oXjV@3{ICKSXktRF(DE@TX+L;+|p9y7)9h4*K>E8+|V$b_L%Hgn< zl%lC_k;xQnviNArsVK^+;8|qwY@5QEu4prUB@Heh>wUqyZP_nTxJItuC~|{a!6qJ! z*e}U!aK~?bbI)9s?ydTJ+`El`_aVRJAGQ2lT;AVD@%UN+$1#zG$wSTCKpHPd)+ofD zd3Y>kAx|(-C!irjU_#BQZ8`};b%C;&HRibEj8CVeVp~G>LbNO25Yrw{OfAGEt(Oj9 z!d<4ytZTqi>P56XHLjx%^0!{ebhPbOEu=uSC6|lp9EI`T?F7{{tNHCpGfVE~> z)#%IykN8h3)S&y95}Y@#ZKzTNrN}wuzGqzcz55uk?K_)P^jhxpglL!* zu^8?N{*7iQmz^bSs#>=tbwpeeTh2$^9YN=Yk@`dY)6>S8#HN9uD#wOCi$VLV)f&$> z_uQBWzT{!yBD^TdR>&IM`uihBRMT-qj^tFZQm9)g%1p@9Xhfv)eu?*KVIr!J3?gG{ zb!HcjQ_Rov%%Y&`tQ;+{QmotY!Q#Z*H-McK7%hs?qrQetyi;~IEY z;A@ffUvdMU5oF`*utx&-QOEzse&nIZm2Q*eYNJ!N@soO^T&oX0y);WaBN5d2h7BzD zPJxK&YoPm0JkPL|398jP(})Ad|0HBp z@(<1=^kR9y7{n=&QRU`0SdQ(_H>4AOBHt=tvJG4Tlrx`GP7T5*FfHh22jQ)H5B!S* z&MapphYeD`?$2T1iw0T+6&J~_!zfjuQ_U9}xM+SY&Wk=@0Y!nWI>XSgri^ z056N8CI&o(7M$Ry>3a?CW3_$6XBc7&ViPFtT8s6I?u$~XIZN7hz=Xe znMl-R<{>f71-phtxrW$%4)(k-tbJMTn<2!x0PN-3!sc@M;HZKKPK1*LPyU7)cTvrj z;=JUq#}3+S-sE#d#^202hT&O7wbyfd&O%&q4GUP_zZbi(|+;=9_XD zrUZ^o(IF@!^*Z4nLDbU(No3Bf!T_%+0T40p9&GU7YQ#gx5V4XpE89 zm5$U`|3P|4;x6VoTv!gt4fAM^QCu~r#W(W$j1F%E&p#T0iEPX`K? z2U86fzdt{6^{AJV#B(Qb-gU=qU2}3HE8g~p#Z=5H$R?eF`W7elo=}Hopj9=TX{>3@ z*mIP4kJO;OsFkcT0SlxdA*jzLEa*&OP=f9&!yXGdyY_n2_{cDSukDv_*-Xl$Basco z?bYQX+!5bJg*uP5RyeM-L_ekQN?`=`?RtWg6y@+c=8|$W+y)(EgJ?-rq+LZVWmG(2swRtB40Td0PXu55x6N(n#N3e8aok}Q{ZLRmYHua4 zc=?!ZIz)qzO$6_4R`-B}A(q>P0#(%3DHt6XrNgNlqL^2~6md3eCg4{*xdBnL^h)qv=a4LMiZwN~}kFM6mNgff-rNJnp!8B@oM!U4n zEt`1%;yAt%7t209duHUv)PT!^iJCUFXkK)cN$&fGQO$w7;hO1o{As^LWkdf{!QY7M zG5~Jsq(#G)m;KA}_O7}9^qH?1Se?*5d-UdIWVCmu=$bX^%%~{utF&mf=Om#*x zfd_2KAD2XL)$-QqIZ6R-TMGBV2GrjZ^)8BiO*kww!VJ>edPxnbs?Av1m z6f>Q(CaGX4E*z*OK{CB{dUl2OU(t>!dM=FIa}KMG+X?Uu@LV2$0AsM{4m}DF^hrmG ze)WP}as3u4+UGU^*iWoAE@vq;!j&m+y;URS4o`=B`G|ZgllBV)&!Sp;r_Ky0maR>$`}Ql)z2(rS>@;I%h`jW@# zXZfJjf3WS_`wx}5#ieRp@?S$PD!H6Ue;P&0)qo&dWlW`Os^b$CCdVBZeI%S08S1cr zzhiLj7u@j=JotHe6=T4i0%LYj!CBbsvE774U%@ zSsCtmvpz6b|SUu@!{hksmw zC0ESMLeS`=i54fY5-P?RUuBsKb?}AV@@KdcnA@x) zoy^=y0K{aqfi04Gq_;UG>{ioImi!@J-;9X(g^u8wdTD(4#Rs%o+gO-YT+Y)r*3@v- z2{ioxDS$et7p3$~I(Nm#Uvc8oz@9iSU!=ir&Km>+#ZL|D!V&4jV-J!2=HIiwAso5x zDDi6ZXp2#up^vxues~)mQ%E4EM!3qjN4fQgt8W$^E}aVQ(hwM$Wji3ZY96_&q*WCf zHSvsWNXHxBSyZ@~;n|?^?}p=DxPv+S z-Q}3UPJ{4BeS=n9gw(Al#q2L?V~Kx5kO*kT6vNDMJARiQnxY(D44dW@WiHDT9^CdL zFg_b09lWA5H>L07OwiY)3x_(%k*;Tn7!sNgaE;%en|x0+;`iAT$4SZh8dZb>Qc=w^Kx2lA>VBPtYtaJ|=*1HAYjwESZ+Mf^~`y@8=1>O|7g>`^iH%BZJ-5N)p!{f8?Y^quQ z@{YdqMT@fkNU-sRC;xJ$zIOu!sDu&k&)p~f!wPMD>Y-^N7H|jnyT&h!kc;t@5{e90 z-eQovg6Z2Pt;l45K+~B*2nm#69GNGUgZhZ_!8$qCtydYXS*=ySb3ItuT z%pbkOJ{E!P&e16nIdXGP*qn2#r26|#dY~9EEQ7>PTX=`DAYPPzM&qss>y9Cwy5r-P zocu5fDte8kF0ISXH4}S6G|Ql7d>4g4rv+8GSO+S8L=mKclv!|u=O=_SHne7&+cL^X?p&ps~|{x+%j?ohfUL0h9m z18K}~;+Ta+--n%!wOs90p|u{>F0;)k*99mFx9Dc{+r#qfTn1|DQ26m7VLp5)aPF3S z%u9E0KMYpLAH7`{G4#UK19Kws>GV$(DbT4!NSPd8K2QCOb(jx+$Gi4%3wFeU_P`ky zI3ah7?02L6m8C&>1argQDigF18s9rUh}4-)a*347Ryg& zmgVss!w*)zCqsBv);4*H3!(kmQ4Q z5wY=pc&-{t#sb)kNk1VR>M3p2dw%;>vY6EOed21bS(EPYA*9H_z%z5KI3^Vi`t;Ik z!1s62$HRDsI?`y0J@?<+`1|6W$q5na8+O|&h_e$N;+?*?-s#u=z4|L)V!y?OjDY2fu=kG{}wS+GI zB->Vc`MMqqBaW;1bDx)RV(!~FNPF6;CRNsQJgLG2IBl*?Hhydqd);o7>6TUBkYv#a zUfDSRj}zYwMM>zd2%(ykqtLDOiTa}^M-5X z*SmHRo`F`N)3Z+IZeeCqP`+>{(Vw*g22QNZ(&#DO6pt;79KCWNL$PU-<(||lJWKvm z!gR#5%5zsjm^pLM~1T1sjVr7&x_H}DwAPPVP9{X{9`;|4?O-=;xNQC)A^KM|` zbp6eq3&wqAG?S`gv5t0lz!M_n8)K#o1KDIAAnqq)%*UzXxG%-xK{Xg*Mkq&47~U(S>7t*ojbdnO>gfP=I|#jzrehZ{@msej5?8%6(utoE*aK* zcRc(}^W3KV@G&}PkyHI!6?~VYY#m`t@gKIG*$M#&d?JU(+wJqjto zy533Ykg&8lh{I}4esx>%m(31|YY3or#t%-xhBEq6!cV2x*E#@6LZ3(%;93%Zvm?am zN*U-3AKStqoxBzp|32-O0LTsvvNn58wFY<+y zhn{Ga>g<)=Knrjw>B%dc?-06UTvNgPRJx8H@Xf2UAB-ZH3Dtq(HL0;SdToFc9N@;g z5%Xc#r4FxEHRYorcY+fz(Znt_)|CnxQkZ_CVv5R3)EEKwG5nWNYy%}-bKjhDrqijE zuO$xWeX(qKo6fE)3TvVs{}bAu#A5y43QH0Q`&2Qbv&P>R?BT>Eg%uu;)1O`@)fn0RFI)dxn5#Yee8v@9Z+ShzS@R0ZEA?C+O{lV+atn7D&0 zhKv)ub#~-s^eWsMwic}nVJFq*f6gDE97w{vxckJD5wp9}X>J(f(y7;UuNE0Wsc=O_ zrQsRO!iF*1)9UKfx^bOY+LvSRmpNOOSJWp(HTLj^8=}VOX61ZaHc^RvvDGjW`dvgX ze917C^yOAH2%=sK?3wcBNLuigH6WnxM+U{4A9-@g?Z10j8zXhm&@S6`yDX3%iqsm_B?TVm9OLQ}DEO)preE-J0|X;a?U<@H zq0v>Bi%B-lBLOf-Gy^3LSA-;cjKVyAf+usL6+N!X^}s}KuhKIJ8{d$Up#{)>^3kLc zOYbAcvR)(wvi0b|8@Sk|{91yslZ3eq%hWOOTnBwGkCo9Zse7QD2V9e?*r1kb3jEa6 z7z}!7>*G8(%_r3nzSgz`ZA)y%^Lyh9$mZtasZKB7M)-vKqwE~GjmKi>tCil*!Q}j#+WSpL4vAtlQ}9MYP9;xj3HQ6Mxg>=d5sjcnc{cd@ zlkrW{%~lsOjBTUz+RSOiLpH?EfVCNRO_4LB)KB6O$ukkaU9!?flAkV2QF9`&XLXB} zN%@opWo2n}Olj$63BDhM3{DFhHe*P*XKUgm_6-atTq#44_^Ka6$g4oLUsY)Ar#sUtNd9TrnC#W_V4lw(+?hAo%TvQe{Cw|4V5 zRklXt$-d6B-`Kn?{JZW3|HHX&9cuhtjQ`=>-_I|X=SXpg?4dYbN1x%tJYEv64~X5% zuRB6M6~jZlLJRo&V)z0>B#3f;{Cdr*Yd+iZjYGjaPRs;3^&tsk&_G_pGzK6VeQ{l!UUiZ`h8=ZQYB%ld#HaazpWOBf-vHLP5d!knM74`uf zp(s2@^K!?t-!^<=1nN|2$dPE!D<=Le-j%#bQ3If3`l=SJt$#>IjEd`ut7jivys2gx zdVz4>r_Qx>-O$HR!TuvmCebeP!YAw}ACq#ZLpk^QSYRGqk=R2LsfhKoiMd$R=YD;1 zjF1i+15wyG38PAwH}qwNeA&_Ba8$$JYUF5Yh@8jqAbC2)>;~%5E(9m5?GG{UT`3Cz znxPuw9@esP)gNZGe_w04M)0dcs{6{GWE84!RJbg^Jzh+9>#&`Zw)IMk3q5rFj{zz4 zZcnWRg8{#NDlYS(W{E&E5}C^-9B12%6PMWd_BOSsvIte9oaV50O6DvmBp5Jf335v3 z$i0mb;atTY5i3EWxDX=w2m(|0jSmDx+`enVB>mR+D5@3}$+;wwG04P1S`5$pJ@Q`} z1Ie|DQWZoos^KtKsf@?$ycI^Be!WODI?Kl44W_46Y?cP~W*5I@AA(-c zmP}M`$FB?tYa{8X6XGR&A402UTux^5PBBL?vSGZ9*0GEc364fZIieV~ezy)XVi_IE z&8Kpu!(o&tA|i3&tfm*SJ3{!j<9$vb3#j_{;h63Q>>)+X-*n#pJ^ks@f}wB7^GXD~ldR`T;%+N^0l4J=4n9U6PSF(i*( zRq><>x3Y%Mk935XmQ16~JNr~kEc}|nOu$CW4-PvvnP6Xy3<`GSHLA#?%ajyK49>s zNfUor)?&HJa-%Bf(PaTJRaLd_C1n9Gd^%xsIM;qw56V*6v#YkfaGxJ;_fec%Es`QS zeS=wQZsDh*)~8=5kPEl zQr(CG&Y#dDWhu9bEbyXZ%za|+)&f-5=^@VdhMwvwfRuGqFV6H8y{qAV56tjuHrD$F z5O$_GfXmN-h~!Z1*Mx<5ka|P*El+f>AWL3%@4H4pTo6fF&#=ZU3;2g3i8^k6>g+-k|NUq!n z{QaOK?Ds_EFD}Vdt!|IAXv{B>a1bMYdTPWEh)GMgT%=7>4yG1LmvYbL1y#T4sGV>3 zdna{uEg7M;CXPARN(nPaDpHmhw~X00eYmN8>{RQLnF5K_?TNc#dW3 z18OR*O8NNC({I)Y#a(rN$#W6tp^qau;}+;Qp&y=SDYyhIdxAdbMHG-3y? z0j{fJmxz|&7g%3AD~9ZHlXoc3?rBFc5DW%!LDviB5|U2^z!?#p|hz6tU*d6r=3w&U=5PY;X7gyLm6=tqe1+T6R6ha;=P};f1**ht-kk zEHSPaFTZEAZ?X)9@l3SuUJ0cURra|uVqvpo;H@J^)QqXqOX$R|D$zlw^6}Ae@q~P4 zk#*iK$KUf{H2*udO40?c{QJZA_oDG#>~N{m@H7hYClAJsssv2CdT$V9Oggy|DD?T` z@;aiT>`{3`?Vh>F46*ueXjM>EE{0MA_eH)rcsN z4Yvbmo+YQ$`Vf|!u{m2ScUz>y)ruZ+h3hU3B(JqbWsju|wiPJO^I5_?8s_V+(nP+v zEuE@Gkum+5+6bH+tQTM}n_c}Hboz2iDF}SgARqC;@MwDXu&!e#LB5|5q_|l^6(#4p z1FIXD2B4eBcNv*sE12&s&3ROWa7iofz(ukftTn8U`IK9DgwD2Whubwh9WPd#IGcuy z5p@FatL|=9l|wB2Q!A~K_C!A#E2UX3`GQ7DS>H60*YC)~^QO>sb$`Vf}`4c_|#$4pXJv}kx!hAcSa3apiz}BfI z%c#MvXPIS{9eE*%1($;Rh0DYZ*g2A7gJ84HeZr&wQ_H#;thyr7b&g;Sa~CgMe9_U) zAqajeY)h4H@Oi@_o44Im#ju;|x35vha*1~q;m#-=Ttk-jYgk<>yVdj2{!u_Mn?r>` z*@#%)=e}j?1bVM3GctDNmnIEBoDr0`RJ3E z|6*~ZHu+H|rQHffRg}(tOVDAEwY}#S=xi@&hk-mpKTx5>9bf`ZI~~$Po_Q5cNDvT- zD$@zxnHjzL&GU&uwqJJ&Z!ZnXWlo;34(@bWP+a7vHSmpyvA59tnLfe|BuZi}N=N5F z^Ug@8H~{PC;jfq6y-Q63O*_&7-oj@S+sHX%a~SAXu9HAL@#9Ef%$_cjbOwG#d1Cr7 z@Q}}xZvC7HRnFX{04|GYruQjigJDKZcw?PQ4t=)Lh(UuTB|+k~KfZ#hMGcY6>H%e{ zkB+JEg%ZbL?APLv|3KDbV`&R73>ZPeP!3OI*H(xev7xNG4(K6E?A;;g`i!jilmV0V z5oR~pSP-Q(8UGDIuzc%C_KAF=u25_(j9p0cWs z=eEX=vNa^8WxP%y7jr8%h+SE%JYg;WmDP8)tm7;OMb0R4xB+Lw!YwRU$^EA6D5r}} z%ITcGg^F}Ntk@f=C`51EKdGrYyEARN+p{9!dgKGs7?&m~HBY3C%w>jO2k20FU=Evp z+bd$2c;J#~oNDA%p|7yv=Z<}fgy}c;AXkY6pU$+vJKSha*f5cUW0nn* zZw6#B?*u@5L;$PZN7YU$g<6>L1bdmeNyk|eV^vLA)$zQ1< z{{SJAfrN_9VEWgOj+J3Q$!l`_dK3iTo1NKl=Z&C6nG={h3QGE^T#zzuf-r;CPC8b%!%!MIp4KaeX{jVl`ukW>VDx| zK2cIO;uta4w#Mo|4L zLiq7JzcWl+6eIQcY0O=)24n5;bV)TvLrIM$Cy5GK%Wpb>*$we>QP#;&*RXpz$*Eaz zgmI|PX`E}GW|We*5uWKr(vJphsuC}FKp#;L`WC=rV$@T(1O)B{2}rF394zMb28qak z@_PY$kfSDk6h6__qXlIF!}f>X%bx_)@AB=l-+KCmN`5D5d>4k?SqrOVI#o9b;_UoX zWHIYy7bi0{bs`xOxBOu+fcs<6Nv=7G2aHv!RhdW%+n^RAukZT>Q_Mb9hAtdfOlz~U zb51AHso*^-KLa@6@zWvUOJTH|3AZX4Si<1DE|2ungXM+Ej&d!0m)VjZ*J-s^4bGDJ zM5^}xW&z+ihgFO;+XR}>;WNVYM)bXDk)@D1)8i@zczb1*GRqEYU-00zI$!@gQ*QC2 zFZBJv0f9OA-`NTOP#KG`wu;&oTjuSz>ba(5q(y$k^OJJ~#lbBH4Bd<+mLVU6fs3Lc zhh9fY#M)jRbg-wTV*23?&89WG}E=0%N?#-1GnMCz)@y`2Yx2Ts0muoy2F@(>mI5{(n;PI8t4M@Mox6EYqcEdh!}>oBYB%+X`I^Ntm}fT3@-WB1@r(p-VfC z|8$4VP~;}C%ONUPG19+H>+gdKbP9h;+Wlzx(Kq4QO9i3Hi)4vETui6y?J~%X6BP zsH5E54njGhbXYUgeto{D)?W&$)y;>QrF}Tzre2%VJe_RHC%qJn__q;IHJKxeK7~!9i z>$#Zz1^RBFbQW7BuJM%CO~dpy9=9j-`{T-F@&hT(EnxVG4G)_Aa1`%o#snFPLM3Eb zM<8M_(**eq+N`Ql0L93t=8sKN-49AMG}@dy>d`>U2C>O#Lk@S|?s1e0mt=Pz4O`xA zhf35ss2dwQ-udS964_e5WPkDOh_P}e-oj>jdixGXI1k5;^LJ8|MZ#QR`)gZZ-2e_) z@Z@t8Fk&HhoNY(axj^@i$*p5=F+OfQ_~(AA0zBaHGR7diQZZ~6TGc+J8H_{3ot$y# zamF1e)aCHIe|h1*Hl^@?HYMPZ`+sdpQ3w#Q0cjxwEFpuVExoex63>2U&anaiXiT>c{P5?-&l91B@m6$_| zKR!l5*(7>IGI`Mp=;*)tMF{$R1$uEy9AFD?6OQ(S^B4H$(;~a+p*;7RO+JjupbvX? z=917HYxkJOHVnm*mA#zLVJi>FX!N$RC5IclAH_m{4Cqx4cpf!uFl|?lI(xTvmYz&3 z%g}BTO(v4SWf_|tg{>(sJOxq8)*BwmBJzO0w>B(^0WYZ8^Dao$);lO{aD|;BHGA+k2ak|kKY+U9H5skN^q z#h9Yn9uN@)9O*`F)V|oBqw}x!-9>_Y@8^@mD>$}3_b=}69RY|`5NlmJdRp7?qvdJg z#es_sQ@D_dZ4WN%n@1F=#k1 zqq4bFHeiy(`@9+r&yU?Yp^(e+mm+F}Z7KWdD!lgctxD0rij~<1kplgiq8@L2+q`fl z->#opl>=Y>l+g7?_AXK6a9oAqEUe56inN8GBn?39_R&DQwyc^kZ34o&jvMDpVLWGZ zvkF(bi^&OZlsa@zACoE9)&1zCVAo2L?XrkFJKzO0tO)_(?|uiEhrwW5`>h+ssRs>{ zXYasXvLZa#OU)1;lq<6G%9t+(@pl^Y`ak#R+!MZhWMh*Y;%)Kz+5zQ;?xehN1TdU1 zO{yIKzN;}Bn-?X&{Abygt8z?LA>k!|USbf-a9p3#l)0)!Yi?sE0E<7v(>LN{(dW9O zR@m29V>W#_&fbv6=0X8>q-D=StBTXkfv=kmh60B>II(8KA~`QfupEuoUS%!0I)x8>l^&ayqL)G%DYGQ*yr3apD!5N&xcWe>V`Zvp=~Y@BJ*I(Kk@f zGXN*y6U&v5d=FV-*Gj!#uuld1y1<2m?afhcz|AK8{oh8+YFVi3*7bi^jDHG6wg6Em z9Hp}+s8L5vSxsBAEnt#t?M!~e`f5l1c&WV#)c$E+wu4zQ6dts%Lt1(_fKvK#TOUr@ zx@ZcHB_X8v7HpSN#lVnY5MrvsI)>(Tj|UjZ3tLsy-uI%rK|4m$EVw2!E7Ny@&B;&F zqk>4soV3$IWP-?$r32*b5hpPF;M;Zn*h<8azjZlD4PyH0sm0n0tNTq+mV#k0joO&H zDDAPDKV*k3xJj85Ss%wPE;18$s9zoG88c*vFZ9p1<*aZ5(6uvgihBjQim+=Ey`EcW z!?KP@pu_t$klz6>0d4)35G-hH-LAO|kx-hU5(s#c{oSb2o)4fL7_#fkE?BLm_ zeAk6X`qUyZ#H;39F6rBxkSk@&ir-CCwowj?X}Qk}wi@wR6%IbhYkaC%r>g3T#bIAH z_5I=hgiVVKeYj~d@*KnTOy-@flK?xk@3ZXZpnjS!GO?_jMt;aE_{>H@XVsv|FMDxO zETmj^#q-(C^jPt27iJdn15=X@gy?twtsr1^>zPISjzawrhH~-PYIB9JD9W_XP8G&3}jqD7FB~fV> z$~y3!CKizI>FQ0u2*nG*LJ_>Jqx^QsV`2UFM}o=Qu>?&r|AZb@-6PJ}S!`<4&Lp0U znKriP$zOu10hy}`{3xACW_Vtd?W3t`<57nR85UO#PbM&Xi9SBco+}}Z@51#9$`D$3 zwu=mO$rTE2I|l{C^SfeJG*8JcX?qbF6%z&jEOFPsnYhCTSW-ZIFWqO<8!{P$vpZKJ z9!J>IkGPYFu4+*_|CRh$)cB@FGV(wjKK6FM?fm>lgG$BjxjD4BR8qtjvAFUJo^MAK z<2_u@V>pG&HVsUs)v7NxQO4U#n8Gs>5%sOhEJ;B9nH+=6$6s$84lq^aQyBtY35o(? zx6qO-dVw&o^3bE7hRn8TOaRwrzwr=xTD(7 zAlN&WG|IO>JmcM~<7c&_h;RuzG9nT50uHWCeams^%*10nJ0K6tcey4Z@lSWv5mCl+ z4Tdph*aF;+Kg++MT<_6t{d=%{`X_MTJJ#{rf74=qU7xv}IGS6lM78wF;h~Xe_W5Ke zjg;b*f$0pg$vZlgIU^)Q5!sWZS5Y5n_S!*7Yr;pv>bcy;9LO+5BUjASyOfaI@V!fv zfc9r1z)0&!>%vLl>NJ|ldHvc8Z!$lLPZ%j8aa^&_O1_CIoZ+t*q94$W>t zp=u};12CVsC-HqZa@bv6XDaxeMPz?x5#nVNwYN>yb4KHNyLDs#{N&74h(+jcw&1P; z1M4;xXGuhrtf8Mv)&k&dl}Bt{InnQEm{EJmt?h5pBsYJ-0e~+yDBmLvMz0`bV5^9y zJ0o2AKtbV%2_4Fn_=NPxW0D>|+?tVN=1c{G7efsw_|e%iv#pk3>p`ip&5839X^Jz; z!IEPC>P?y3WG__!Po2UARgd%N_zf3se#A#ZSh*wJjcd5pD)@?{ot0P05jDVAsYf7~ zDKgu~uY+pOb%(Lh>ViWy`Nu%+KD8Fo4A0!qbG64Rt0twEdfJVxeRK_)e^TP4J#uXz zvkXK$Jg4gxC7Yyks5f)t?m07~k%a^lV|3mKqJK$RYv`b69g`p3mu>#(iCTbGglwdI zq#ap{X?Nj;vU!AJy`;m>TF37xRRd17g6Sv2+otjT&9tMgplqK>_rpPQ11EHH$;A!G zaT<=p8K-nbi3ksr4}Hixn(80!-&j1%Smn;T6=}T|$hqTD3E|#@f~^>4fwDp<`p3;i z7Li`{7MXk{jS_WL4Z1=aQF%R1qLN-s|GL5N%6m^7eJh4)@BE9>_~<mMA+!)l5}_ zr9B9lXp7s-5Bgr)6I(bxLP1gKo_^|Az=B8?8nQ&tzy=l1Ay}m^kcIZ$Im#=1dXG$O zl=5rKBJI=s+rERBz`~u7e+<1+GMdwFFb%h~o%mX=mT*g{Gj(Ze_-pCwJ~@&L)Wyxa z;2)(sF7@r&|N3$Tyxm2y8a?Ai9Phd5tzP`517CQNY3H4j0^ zUo9C$fJ2i-bAx2lpJuQz(r4G1{=r41rl)?3B;a{tTm5o znXz=-D(UC~eLFu$!ff967!l7+;SEH7RVrfsl2Bri)-cR_UPr3!rvASNnZ9|F{DQ+@W4*wj0(u~#wfLvzm5is4KlnR7yITU4 zOto|>Ht<2S)cH(8jyZ5T8}(vRNBoxJz)$)go4eJMxh3=YN+wFmx`4kc)Oi?l}}9SZ_UJfe`N_8{g^CAmb&|x<}lR^Ck^D zOe7gu8#r(IjIyI>5fCi~!lOc7YxQSLk({b)O{2_s19NbrHAj2BA5kn3hg#r?IbUWA zd7)PMg~u1%AIOF=32ACSy)AiM5RS&tbh0pm+mqLolkPgcNync8hVezCir3ItiGJ}R zsF3{N6T{JkfJLr;>V1Ws_Nhk3z%m`Iz=&b&Wr_=85gM-!Zde+-U7MTR({i`bNqzC$ z-m4fNkpVN8m8xqwK{{o%asXvKFSr2ecOK)g%$htd#p!jQ(!VaI&m2h_%h+jYa_@SB z1vP?PUkr{}wMhK1)oDOuX`k{?8*0}PPz%Qva3a;_+seFa$|3h|_xcZ@f|SMX<$Fq= zM0Gt%xFyJ;n5MQw(>ZA9eh6Zk1-Kdc{)U}ktfD>KL)(iL;2&fm0b87)ElITTt^Xf=$K*?$g$;e9v0Rvh=c*8r zsFHuhs{kD|+BRv08+Pp0KWZgS2J=ju{Qi0k=fM)Uajr2+rNxx-Y43womY!t9N3T7p zM+TA)Yd+-}Jm0l3uHONSY?Yv47}9x4r0WC2 zVNd(crI{xkB4iXSmP^9Cm`^*^baBX3sGo1(6GNScpxo!&**Zvffr_{rpV&saerM+$(Etd&psWl?q?;qnd>uY1)VQyONa7m&}L|56i(|GXfLH;eL*#B>weeG?>?wUtLSau|X-&Han1)G>a)uKWyZU zW*WBpdIh?MZq4u}%umpwOvYbMEOosmwDs-A7aV`3i0pg8-UvsDB(TS?9Eu5am1TH$ zh(W!;J@sTAnu&Ef|4Pr~)(|g3jERISO2tT5kg~H;;%U|1ExwMW3UQ*A)Nf60H#ecG z1&RGxQH5`4#pFIDChJ1E(2BXbUGf*|>aHA^_4n_BQ3noSXRq*@E*O^#wG`(nK3kT0 zE?C#@9ds-Yf304y`m{V6bNIz9^^v27i^Zr-+&S{?fO_hQ^Yo^^BL8FAI^FipIa<5x zsFXmTPnQa-VtHBQX8y+%=0jx0aJuRhQSzHJpWbbv7)y*4Cmt|kpbvcZ>`7OhUh9>? zzY&BQ&5!&j+Xe^q;eSE({{Tb;8TU!iA^(&twMs;eABW%BvHZ)92PiwPD`qh>U@;{~ zOkG7}2wptFT|(f}5C~J-?UgJoPHR`&>NmQlkMBd!&8Fj;Z!3s>AdWeQ}3n)6d|E-Q--E9%&HGuk5GE&H!E zjj8MBIue-JC-P!1NB)LnYKe`-b#txB`=f5dS>WVo^Vz~;jkn-#F~~m?8(FeG!sHO} z+xssgStw!gLkqf2 z;ILPASTWsI$z-UzNoD8+=2uB{8HgI|P72U&7@Yg$5K5MDw5K%;s%d6kSoOFS#ATA< zzm|O5!xOI(;(uENjswHZl34GIU8ksI$mYa#t%j+~iVc0H?23|2UwN57nQ|yEUL)d9 zQ{tD4eoMDF@PcU$vdzRUS~DsPYwQ0ExxT{OG8Ukp)-Wf$*8b}R1FPZUmiF7X@Divg zK4_Ir)|Pbd0QG8cf2lSJnw3h73*VO=odj=Z4<@!X_1`Z)mjo$!I1`suGd?6Zc@4|h z`$=;vZgPk8PG_H>G2b*ycMX#2YzTTH{io*q4?NgKiC|vFYC>85KhRu45yvQE3kBQ= zwS2iG^2T8naJDE5nb$$%Dg4PmtQq(=B`(D}#NNd-EB5ooaS%gcgh_6K^Zlg2$J4gd`uLOio1g{}zH@itT*a4GIs3cX zEZ^@5SgdhP(Fr?+3^punF8Ll?)~X5t&8D)YlZ<&$UXQgyo?qCQ-_QbH3DQ-6P3ir#X&gHw6h%x|`aH#O7pXIJ5*pAEdw;lG zDzMWNCw|3@2pf0tb?082xL1PZ$+Rg`{d;g~qW{L6V%@}VmI1QmdYKx!;DyqQkz;2r z41CmmY*`Y%gv$><&u9xomd$g={M+|_x%yc_-#C3J8!q_-SGo%3NX$e!iF z5B^|3Al z4QN++w!eGV|KNy#5K7932OgVIaQ2e1ucHryiF6>H=9Nt62@0aoTZp}*t2|RrFM%W> zF+x42)JAg2f&O4AZuMrraspI#g$D(d#9cHl`i%|MuliV^sMObt@s}c?l6@1ot_Bn$ zF{gFCL~$M4ME*!8Hcq@t&J0BOO}d>*&DG;Hc2`fhLcILAOguuA*7-E<+46y^$XbhJ z+Zn~$v~QqV&`Np(;A6!t*-n&@N^*Y&VdX>;K-E*zz});3QoUw*iM_|f>i z{qd$*wx-JA&^`t^YobiG5s0OwCY$~JejqeAb7keH_e09O;~!hHdK9y$!~#trOKv*{ zdMzN^3(V2|!=N{~{-)Qd&v~suxTk}W<-p8ow%B|4HSQpmyG%dHOZj?k<9QAIxzB>S zO`d4ltHNveLXs24^z17t!saep_xH=kX+dVYQSJFU7Ryk(KVlBY{I@d^da}V$^wNhn zmKrUQiXR(jb1oD(TZV389u6M1T#CE9yC=94@^QcCymP+ietuRbzASDvyVI&H9dajzbBxIHO+wtC28r)AL8u#P-7KE!d&}nObyf+QI=MPb*X%Ko z@xeHOl^L(Ai8~kBe09r-H-wo_UdBCUp_qBhz=RI?ex`i2S~tG*iv^-8wNp#d_Ir4w>9;u{^L@22uO1Kn%v5KLIT0B?0TLq#G zl(d|d@caNN)2$~`HF*z4<)@0mn8#EOuV*Bb%s){njY!{>m61Ud(qOw8PzHnUWPIgJ z(Azhky|a*3ijh9~97{9cM1kqN&1@+;ghU$H3)2cawHm(0gT2E&Y?MT}qshw)H<0?) zo)^o_Y=hlkTdGmN*QP8xn!IBtt7~)mAxfh~biCHlW3oL}jXmxe#ROYqS{xQmHOtW9 zv#cPS18)18tD6n~$IHh(9R8LIBeg zqgF;m6asREb+IeeQVuL}~rI`YQ>mn}EA5<3KzP6+GOSl;(0%|%>Y zXxk4IMlVs@=B+5ZF39%Ym@S7#yL3FbvmU(Im@gTsOV##KE_TZA@9&%=LXpv5;OZQ{ zL5*a6F7>%OV74EK4l`!u4mIl0VOR;jWs< zp*)s)w}a?`IR>u|nE?`ha_!DrymLL0hvU4Ex9mre+Z+145mTdxR;zexpR;!F{pFf% z#LIfPV~1!auWG~GjM`1#aWacv^sEofzd2C~jb(xOG@H7i9aZB4dh$9`R|Wqb+f=Nr<; zEc)ox;x{+q-zr#XhtUHGOpg+}CG7&T_1)DW5Pc3hJoOD-iw%S~OIniI^_+ZE8nw$R4%4JMRK9|Q z+Wle9Pd1vlQ?$?%S)3I`9jH);7H$0;zuYp;;vj@iM+kjdQgO#Kd>U4ecFhl&Ox?}7 zav;XR-b`XRhs)KeVmc{T(pnnHm*Bi%2)$tUj}po4wCKnia7?yqw~YkB{Ty*Y9&wMf z<(Q6m{Eb}axF(NuV;K0#d##?F9+pc^ycpj4%Au;8zSD`HR~?WL__|R=b4S_~62c`{ zkwV#N6WEA>-*6=fCHrJ}7jVCZRDD$xUxfz7dukg)Qgk^n4nfT732 z=OqNv6H9~F71jT+{vB7C--bm5Jh@}V>dyf~aG{ET7@*1cT>&nlG~-dUxWV|WGVJNA zVA;VWTBKCM+XmjPNdv=AD~!`RUv_7Zb5kmf&})R88yJiDBSB9?_9tK+=}&bE#C^)! zUr(C!7zC8)Ah+6Wc zT}=@s>T2)V(M|GA^2q=&J&yf$BJ_;c&+Uu>0b5T5`3y>!UXN$fC`JY}S$Zt#YL3|T<%40D=QY}aHg-GZX6|MI?`a;<25NzDwdJ6z5$cuZ*?%&yRt{F zr0I7eeH#GZ#e2QOx>g#EtwM`dKZpO=6hX7mif^Wyr+Ka38x#({11FXNRC zWq}ByhlTW!E+vsKC9U+N`&hft0K8EV!Awa)ZQ#)vfwbbiV9Zs-R}rZMH|sG0huqWe zoz-j4PPDc$u{r@ZvcN1{$AwCqR`QNEioHYDY-c3Tlu&Bq@qQ2>H&zz<@>eC@P{DKe z%F}&!K#b7WNZ6+&GkOK?_gVQDx>x7Kx5W-aJ?Gjx{Iwc2sNv28sx$`)P?`30c2ejezVn#9R0YM)lbz zGHE?TFpOR)C@+Ow+B27Tp74{cE08+>=3g>d~+Eh zSLyLi@0Mlv`KaQJ>Q;8MjQDL?=%Ya|Z1RhBa%Ri|Llec)#m)oUzw;rH-}q~crVE^% z{(qqe9yZ4qp8C@PIR))uDC6EX#F2KDoa$kHZoXYG)*$jMz`KZrZCSD*FXY7!tG^3w z+QCqXi%Be1QB;gxIIT`bLH@)lG(F*YuU}PB*pukjkMsfDd!$m?W};a+0kH zw@3PO+bQyG(>Vy1DgRV;dVV``o{9+ee5Zbb3!^5D`yWFJj_y=7}CiY&eDUX&;6YBz>6tbhz;TCZ_2L1*V1~5D`*9fC!yBvEpTC4CA|J{^VJ2 zp!rd*;NkhcB?cMZ?0#`=+VVA=x4(|g~N z55f|AsZ_sloO!`{s%7)6;(qGP)p5T~S?D7>NoMmmE{_c~NKvI7uPgZ%)`_w}*5MTMlnA5*vTJiN&KO1B$PUir;F zaUr)Yp*|2$f}ca#iF2w72?mTD^^>O7C8d$5(mcpD0jm^-(pGB|x8Q=8nxPliCPdK# zJgY}*_d9}6Tq;sJ@@pw+#PyAhKGKmwrQp7>t0PKs<>Fa+VTmoPoBF={pY6udu^p9D z*k%Qo0g{~?FbpJP0FJ(`BC{DRz(QQxGnO7u(u{$SYB04>!a?-DX9Xc zv|RZPG&6=rjI-i_cKi%IG+H)TwVof=EsZ_1?2|H(8?^_si^;-#21{`Q75I`p5X~Fx zqiS*vTP-9Al(6kVnH;F1!?t0}6YBkyEx+R&E%*D8Al~3vp@V^z(5X%A`VcSs=#0GH z1y&%3nPX?rbJ}h0oz?8G#}n(bUM6O(T}fKBeiPEHfSQ9&bR4%F5{0q#$&Jg(*b4x1 z$!1Xm+3pjYxS!%p0&{-WHjZ^FM4kIZntpDb7G@?T+^wWi@wKe6q@Um5nruWe5Lh7wy z?9=s7{Wbq74Sldjl=#H#l&VZ%t?%f!Zp@Ivo$ zbyqN7`Z`qrYpaO`uyhnOYai4or40-)BwmGP5}RzZqEW+VTy+_Dxv6R}0P((w@(ttz zUMb0A8pdGyDC{V{Zm(17r@GQwWHD%GM$CIsO4w1%3x~qBE;P{>?!KM+qhPbf4+b{n zRohn%Bd&9R4q@qykOc(k$KadoDN0S2ibAT)UtMMGHl}Umt;}{UzM`@x7KjxP z&|MAtAS7*czG{rMun=~2fq9WUA(}3CaKBr^h9YYDGxR$p6XdRmLwC0ScCCjKH7#o> zmQB>7lD<(>b}e7w)(t~)VeNfwlwtX;KA0uQ)c`19u`g-qmV zcEQ2O8=n%*M;PFf$Q>=RMMn2wj1TDK29~BF*-)KmZTizOkDLRj0O<^Ze~nz5WeOdB zo4dw|IvximIlenbc$u5g-PDqY+qzL0xPG}rxzm*WRb7vOkmg#3j+@~CnVo)1vt&U^ z+Pu5XOp;cbaBKsKN28B_rXcC#Rv7M`Eci3npeX-eI>mtGX1rR(dAIW2y8qMFTy+{kBYv-gNPCZiHTnH$CYpD1R^&pCx zTT&-UgkVLFW8Os_z=cGa`d%=IpAADAu=8{&QIz9%66mpGe++oQ!PenOes*aS#Hgz@ z#jap41xQOP$|Rm0YmAuXw@$k_OpoH!s{}L6+`@2xCD6Q37H!OJ?mZV~2oC;AlKf^%#Z@Q87% zm`B)sEx92Uw|cYSjvQh@ePqU)uZpAkHziYQx>)o;`8yYAHy?KhG=Lo_q-{!f#}8Lq zo#iYVeUIstBV*kT_X@_v5jX_2k@q{P|VVM3eb=)%gpIBswWAYyn>K{pAi%m)dB_D-@^)H-@YLn8{g^+OZ z;o~d!L(Ro!Gxp+$U?V?Pc6Yv!f+*iOP{h%Gs)x42`A>GNUsN%I8?#0brLKA0~R3kP(Pf{_IlI z60ARylmKI7>IdnkfOYxpvQ;EFPI*rPf5eebMiBlOI<#lR=z^!V z8??Q$q!zexhu+^&r)`|mS*g-UH^Iq%( z!_JGYE^B!;aUxzlH*S+IwfwzZK0Oa(EJYp#8s(sgd+99+|C1~XAIg$6>K6Cc?2ou{)7Beznl!kIp)XMSgt4HlP@&^Q>USs;dml6t%f24iuof92OCcXPA#J3Kg zM+WWi!h8@q;-2!Y(2Q8CCJ3$Mi-xc52QFH-WFhlaFISZezQ4;DaThLJs|8~hZpfxn z&I6AJ4<9UZE3K+xW_T!@$+sfyCpDF&4UF0C+p^CEyCe*kxm_7%w}tZEV!%v)ItmF` z!WsVFM>GGiW|wjl*;5d;oG_>WXq(%Zn9 z5VpIOtpY%MGz)zVSv;`lHSyLwVyr6DZkx8yf8McxzguE#itIdeat*)wAgTu=m1;+M zqY!iclM0vP=STM}pQXL888y7(vP&*v-!q2)__H&MEoIpFM9XL%vVi6q`$@ywDuoi8 zfkpSghLy^)zFMJ`4W~Xz_0B>ZWRNbAmVCAL?@14peV5+uCetCOWHU!^LQStrJwB$q z)gSooGOk(8bx1)yRaPq7Y?waSw4i<_W=Cm}icCKdME)kwh1SHy-v=`xkiOSi3?z|V z5x}npmvA%8m%MN$@B7ynvcx~eJJA;YfQk_92>c2EdZc*}VS4&v=7vldY z^#9?{O7CIgVO24EA+a>Om^#?jAc04^+H)@$@-X^oV}g5a`+&|u8EOJ>u{0|_gg1PQ zL&BHdb`(CtnYau0+KVdi#s1r z%XY@a&=qreimex_v?#MLCQ_zhgv3W^ZZI+|`{?9{he9d-|i@ z&@;8(I+Y9gC-Mk8JAKBlq!wN|>06SF;ghMzGtvzGb0_OShIy;jEoBRm!P8!e?nZH< z*6}-5s`BVhBuj70n-dGKIDvIBe47vuM!aHYahBul*dqW%t5qRU$f`@O?U_$LLMhlC z%pt)u*3epn6UlBmS)!cn^8u~F%cs7CS@AhJ8yM^u`wEy!nIyHA?Xm~!>#+bQbF`#btGWAj9TxV1%Chd;am&WJYk{qA#?1Mq}n z;y>e!zy=b09@KSn6JPtkDtF5uUyMh6GWp-0pX}E@-X>o$tGL987?$oZCSShN%!-;c7mv03EnQcD8E=B|i~LBXbwi1| zQWoU4^wQJ5Abh5majr!>l*lHQ3bJl8Q`>LC+7#TkQ11D`L#)d|NTO~&-6hGth$Mn+ zE3x^54JU+QF=;jQk>-rs;g(4G$v`A$gk0H767vv_=H@C(FT1}H)?aDroE*6DAurSR zDGqgG-_|+kZ-Nd3f3_%+ZU+18*Kvl54JVWdp<51pAvn>Fruw)@?EQwEn_KNMNPqgY zeR=vpacwd7YD(_pC$QU>?UTwXgf-LqtQ?2M_cz^4+V&4_JPW>xsq?@4`-6ROXK%}) zAj@<6#K!%1URclGixhf;;q@!l6QuR#5R#$^sd@?F8r z&@*F{DYicZM0QaY+f#USHfV6iRdJ?tD^XX~w%Qx%0h7ioQ)!~h=MylV>lM5t+dL_! zsP`P%;-h1&O5pqPj@%LLEr>kLI#xi-UNoVIiPHR|DMx zQEzX1pPb&ZuQgZSb%U93C@|q~^fh*8(ACkxBKY!&ibLZ&xY`qih%1VktbffS2FM*B z#uA-l{N)vS*mFE!M~}~Zc~*<7owECDv4qDLr}OZqWAxbbT!k=)x%l^9W{4{<64q=d zVM~`PrM;*ayo#wGkov~Uq^)4;>Z+oeabg*450Nt%tVv?VYSJSG27Z9<${Lxl412j-Sj`Pa>zsaGU1oDF&&z ztC_$JoLgrF;A0VTEZ$JV@gKw%mc!CsVK0*6z|?_Xd^MB-X_8$T(z&$o6p(A55S?QXjjA zJhRxJXj4>(CWJr-v@w{FEPXe!Uu}vCN(sPhrxCteGq4O3Ti+ee_gC$GTN&2*H_ybI ze_0I>Hp3&<(Ln&Y)Y-u-vSTiBJVJXBUM3-|c4WD-{42T_C*$q8=4v%>P-e_JuAD?H+~DBVOX;iQVfM@#?nI0rnUWi&6uhS)d^6fU6+aO zWrK?!)%+|dAUrJSnD&Jjb$`MWx)qjj**`_Td2u3p`}I;^j!O-hj*niiqGd#o$qI_2 ztT_+aFonqlNEF3sL)nkv_+DW6BFnLrHETu4#3{TV3NbH$(%n&_=25vO97lGDtvpFt z#wRKM=4DQ_EgX+Si;_r9?^i?<&T$hghMG1tZD+Ov?}Xm53Bic+L@~yD^4B@6%;$Bp z-C~XMD?L3og;_4NW9VgA9WWfeusT0(R6aVo>9N^xkYg>OW0|hEe(sd-Nz1?Pl(~hhYS4#LiW`Gt zG17tT-l?u*a0H#OtZlH_mI}TuI$!)6&|9N8pZb{243_X|{BWMG$gps&H~VSBi92uT zrOoO?EA4dU6=!R7E@uL-trotHj5besDIQ%-uf(GZw*Q89nw&6U;SQ1mYs5-Mg?MEw z=%=p49iueYaES`~fpqH0|1 z46~SOX$D!c$_ft^fqR?~7f0r;W>!gByoJGVi$bsIN%mm24`w;{eceK|CD4VaAjb@D z8Teix7w^lqLZSF5W6u5VCuQBM^cBFqXQ9;U58KKU&RDy3Q=?1Ge}_G;wJ>OP((%jK5vqUU#-zfbA%&*WAAEz3MC?3(VSi?sj6Pu?> zsV27n-334kZ@KS)!2tYXOU{Sw{y|?sPAh`GD#}g=H}38WM(j(uzQ$?>Z^&zgEP;Ig z!n|!;oDGF{raKZ6uP^}&zr3SO^i;?iB@uUPLw(!)dk*di?}f5C>cT7P!o~?UZ|>c% zosUCMJN7O~1Kia$UG_P$HnPEu!?^x2bjh6s&4ynxtvVTbS!5d;^3~DI37zffcfeW} zzP>|Lbg{*-@Gc2XCxU0oL0ScU>*<3N1|4oVYq$nG9D6(Xx;n|4>iB94!WRC?iww;V z@`fKa+d2{t_!t4O(qg2DU0JvV4H*O%_|0xmbn!w`P^AMVKZvnv6BB0fU48x7c3}LJ zOMBxLvGzIO2P5*tq{Gn*D*WB|YZdbmU|0g0mErq0uvc~-9?PwY^)E;NN$m8rrMa!Q z?r`=J%Hsc~s6=K>D<_!-OrEvLKlO=`26&gSR9P5mJuh_2y4%2eeSPOW5zTUnSR$Bu z*~581lFQIK!I|fezN?WA%yLY`vy(fJ8-`hveN;!~$FI7Ri0 zDxJE_3@KIxpggz?)#C zI7k?WM2_SBMlbfYyWspMBEY6B-W(3uzE5}duFee`HP&(#QgQlna|bSAu5nF!?)*pCgF{BDl!trb=n{Y>l`GR zgsBJtixYo0qijC`N~hB#vH8vBR!V;?-!&3FW|%Gw?R#g^OSXhymwwGz<;KK2BZQ%v zS7*2X8EAJSgY6FKs4lk4QjfOXG-txP&M$#NOEQG6rN?Sua(qxf!DVp`4- zRaz_d^AhAZV|~aa0GcF|JPb1?n%S&$QND-sI?Ho7^Hn;`cp}q!@)f3>`cImAJK>|t zH)_7hyoqKhZq4|^I_YQZ7|6{nw1XpsSv2$|;SX?begj^;lS|}!h+hK!TtPZsG*q}n zRV>jZv#yI)hNK$(ofI-M#14s2CS9^eRP(O}Hv0$*Da;Q&m;-Bn52`#C0!Gn8?<@Ya zYK@l3Lk&9vKhNg`7rYr4=DEAd9MRzyP+yt3HL$C(v_FZ)qnf;zb8nkkk?uqud7)-! zW63Fayee1Ixfspqx-;bd{XrtO6*GHvs>T`<7qvK3*-rG3=L!8OO&O_b)1^rvGS!W|D0y!oB>_}bTL5AeksBAq#y+|s)1xPN13N5V^^PeE|q zabOj|!mp8KYUTuYD52G)h}NOw-BErSFs}8t3BrV2D#q@+1^DvLK<}(GYuV!G^rPxh z$pemsC?rU`q)J!V^#oPckhife1IeN3065t6^s~jHM-%SMm$!}|L_WoHGucVv>OChJ zx|E2f^5XzecJ-;~(>Zp@IYpD=yW|<=0jprb!!YGV%Yi@FlkfJtiyaU^^V;pWd`^-x zY`q{ULZS>?u~4TnYt-F;HS9!@k|2EkfAGF2q56jT)Z5#8d@^5tob*d)7{hXPWo0H? z&?Ejl2}Pghe*$vt*Ie?e;^N}jqa#!2t7-76zJ-RS=JoVi`!xDV3==g!VJb|cY09|APrfR9)#Zb1vy62 zkH2NNIh0G~jZpo(Dvv)HN{mJ2v1IW+AL^L3+WaQPy!@?Pl6c9_KT1U0+jXU3=xL;f zRV5yUT_KVC+NY&^Cwg2P-W(_P@tm|O&w+o=l*y_dL3N026rH)TzRIOrd$;ky$jGeL z$Hu}J9S+&qbO1VlYmm;TXLzGmrlBjLA$wKuc|YzV_R~ad{DmUgkFXyE4xOmEYFT^& z%?s}Hmv-ZfizZ%&^|b498BEL5Mb6rn<{XVv`x=3DyX^Z9Pdn%JH5E-1G@IlN-q?_Z z&39EeQrRBWP2*zJ^-i1t)1uN#suEN@tfBlyt3$LAxpG7|jh*K^ZM?~*YR@Eox9vTU zXIQn#} zUek~Ap!o$yOx0gfD`jQ|Mid=k(Im#g(UZiV|1js@IH9J_%e*H}w5H-`^Vby^X{eVN z1tg6#G5*QGydzsHE260JNdNva$hQU%c`UM%XZ`ZGeDPq`=}foS-;x|ZUUT$j{|s&q zGtchQ##C)g6LV>ix^9c5zMg9wX4f%S-1puNKPJq0VcPg0Uah#B_FqzfHj+TY;b*5? zQoR2sCv{h0#&(zfEazMAEbLT%lHASk_VM=4hUi`I?r1lXB>lrOrlmykhxzo3jcM20 z-8ed~C-|3J20`5DqynjmS%4(PYyp`Ytv63(ef&4+h*H9Ydtk_E(KOAqvv=<1aln1Z zH}nKx8GCE z(K;ph-9^oC_jf5*bbz*Gsa+DK;9(ri2!J-SHn@~gbQe5pZGK=&IuIw&-ou?HtMG~^ z+d@&-vz3O)07KZ_hkM=IP^cqJK@j1wy~hdgAvceRdpU|dTD(X>^{;TpEq@Nq-`b(9es(wfLn@a>XS`7ViR<%sIKa!%)9#^ zGb~-PGe3r2n?l`v;H2t{msYmNUfF$Yrf{!5=kFX77e|*Y;zF%!Ia~1ch_D|++|#Aw zHWMXRYx;>4c*B2iT)wVhW#WWQbw%y2qFMG=;Ke^0FAP^!ea^A5y*CSb^g%cAWjKJ! zH66@yQolUAyr~yywmRen&|hg^(9fBQC!$p*h71W`SK+RY#j6P5f5GmnA}ZfMOwJRd z;mcv5qe>p}#G30_M}v?b&Hxj2z+FqCpuY!BC${4-#YINvj6aG zpvc?E6H|AX>i>=5Io9x=whhzUCDeU_htE&F*V!B>8wI?&FW|O64;|7Lx^tHu^!unLqaD2TGJgavmOHQ>frkFz{&sOj| z7wQyp z8URTk(x8t)J6<-O-pELx8zS)TP2N_;7m$c09nd44S(!%rYDG@Z0onurQN^8M{;{?XV^lT}87S>^J+Ewjo(e#5MtEG|G$G zvb6DnrD_9jM>K&Lzdg8|^2~F`^+)r_i$&H&Sh?};)oaKZR1xAm8XxS56_*aW^vgFK z!$&R9v@YD<=j_g2^&lr49ny(`jAnc;#(G-L8NGzbw*CK zA&euA6`$|)*#{3fXEhV@Zib0>|Lyqnsx%!7-ZHwX&oDw4=`0_+^`O`q=bi268eidQ zr7MjA8mmV@Ngu1SGe|@rJSSagx1#*zw)rkxfX>QwB(DL%=~!c4AD$p#kQb+Cy<-gs zlXskBi0#I~_dB8Wv%Qli8|Z5=l`?Xlp|7;(J+&;KJa|L}4p z`Zr-jIFCmtnB*T>t~99;&>)xrynva+Y zi;Ii5fHe$s?c0wwIiD6%nwzTq{QPeIB9ayIY`9Wsx7gD(*(6$vZgADI)O$(qEEmPK z->DAKVU>8|{&pZnK)*Bdig4;TG%}(li>@rOcs4NpSYxHODXw1d&oA#47g?QEjJSES z@OZk6@yWb9-^>ANB9d9ny8Q+5K0Q5M3Dn&^(cRX^U25Z>%al6nb4qrGp5ClizUtRhCd}u ztes43mYY)#d0T#O7jx^uMa5RIWV;mK_2{Aa1{G_zNZclRJ<$wFLV8p{_N$8?0xrw#ArhN;_8g1}n+c@@{6mCq|+ z5Xm>&mcU|zRn-EsnL4~b6$4^lA-p-`hK@<|bdmjaz|8$Z!Ih3L;?^Ap&5`&L`-|wp znvRU$gnrwvOC;4_hbp?#lFtI`s}4`s#r%PM#V=NX!>tlC&jo0n`uX-GR3|Evvn0*PuhC$900R4_@%l%{`ILE3c%2ehhRW2 zFlH+?o9g5NMA8p3K#vJFhK#~4Cz`vY$;)hEA0aQWL(XX3+rRdMm@cu?_nPdhw2f84 zHWL#Q2jLynp@*AUB@=o7Dc$n0OFm533#5;MirdnL>5zP0;r5rS(c^KR%`qTD-1*zk zl<@tU!!oj-RdQ_pM#3HQUvfU4_cH9L1hwz%^a*#1e!%XC?#A7>2RCpybjCHESJcq4 zVBAG%ZIl_QINo9xtVOxL^r2|WIJ;uTW*{T&Yoi5rehJ=TNIJA%G0dmhG|@F6$ov#K zr4epR#YN^Br&fEe9y*{OidXC8b51TxDzLzBHGQD>wA$}O4Ld;x?nR1ZKwl##jE>fl6Ifh~v*}z%_Kln?+ z%f;|dIp;WjD*&3jvzPZ~=y#Q|v;5k{bB9{rXk^TqB-Lm50$4~_%z=47Za?c&nPgZf z4lmkH5xV*?WYN??&bDO%Zq0mId~f1sR<}B4LAzjUqR`PHlpuBv`?S%@$Q*5-`&S!t z@=vaujVUSBBPxtEvc%!WiG0S9;_T&YtE1d~Gp)v&4v$r5%M;TN;Y)wB2>?jMeb(z5 zdMtPQFAgxUP(dJKGj~mF)ml|i`4azlF-L_G@L=;h4g6Vei)e9}W~Q$3wz;{+Nc0z+ zF|;a{*Q}{O1)|Bp;ZC?5n9a@^$n@2!j&;6hmHovNMLYlM!K1@}^M`V_GRVX+;7JkS zUnU(254}Hv`*s-u0_*qckB@w=5^@SRpF1{JZF8X~x{z{tS0Xp&V{7McpHbvE*`(Ga2 zksV~tYinyAcL$=*kS?;$J?XrjS2sJ06)*RBymxtK-ss)qOZTul_NS4OdNJiOX}!md z`_7ck%P5-*%*gM90yGJpJguFv=Pa)~EbP<2=Dut|L0yohWwXEM(SyB0j`Elhi#i@m zkk@ml_p2v(twmrUA3U5uH=EM+vTr$QV362(>!OKLH}ljlP`e5wy?3`b{8p5LZss$49PX<}Yz zYIktyu50XB)J7JfPv*~R;m^xzKOfp1qRcv(ncaGV<4Fmr5>-HrOYh8q)V8%HUy*K% z*BI!S4DTT<8uy4>XOdAfQ-g(uXGBfz7~&|*n2imJJrTZR^I|tqVLn2P$netx^ZX>( zB9$oz+=frdB;%G;(8;bu>l^r#eJ{Kg=mA< zxe+d^0WMdaHPQoAj!@Bx`Xc0}299iI=}UtRJK}&bhIm?`d4@FsF!Kq%Kwg^(kDs#l9@G*6KXVb9O~K@Ep=sy=f@Yp z*UL)As!z1hreDyaN^w??_9uhi=WlXZfQl-=lFXr6IC$sH24zO~=fj1<9d)<#UOVGl5R(+$zJa zKX*N5bPaDRj9YP5N23_?y56t5IB573c#YFvRN8obG2y&$5WV>lpmvIxCvPmo8q{SE zE>csfQ&yRt#Ms$>wBCE*oKt2&iR`Ob;@+7h_ZWK6!?e|5(;Qmtdc75BYVLeJGZAik z)9~Hbvc)raRHbUYLYBoF)DI)`n`z6XRvvcck4CBSk?FU2{|4MLck-P1(=*tX-)EUT zHDdn8_uD3*w4)$gA^(bApJNx)5pbS%9{aYX=Vi1|ro&4h^0bZ^MNHkR+-rNDendH+ zqZ&1iGV|j>LER~462Ea47^ntC48x94hogR*u-OCQMgLMLqkH~g5`CuCtQFA*33Xg0 zVFnWkp@x+>41c<*xPB4?>Z|&*=nZ1OCX3MlPiY+7V#5)`JbhxAC~;ZF_Cui~X}EWn zReUt9c+H?6p%OaA#CNe)u5ANNeAR;LYs}sBCJ_=vs~T_DLp5Np2#sDdVxJE&yFmcp zi5fu)4Mz*33A=B7dys;nZ1+`$B1U{Nus*3iz}`}w{8}3i<&lHD+;F*0Cv)u+Y^&n$ z5QYP;#ZqgHVITGLZ^-ipIz#5O!!ejUOHq*b!7R-FOrQfj95$gTRjNx0fGE^?KV(VTk34&!x?^~ZmpcG!CEH)r5AjJh4+vs3=TiCdeJau= z2QMiN>&KLdo!DOx8UXE zgPqTph1e9w=xo{y2Z$EO|7*-e5pxKNw6%x2V#(~M3$MKU?gm^M1wT>n<4>5 z^rQUI9@uQ;E_xv63+?rJz(|pUs;>fQ6}^SKE-2;+4N!`|J)CxtaZ?|v?C{A+(9IM~D5j>va*DPW3_qQn)|O zfyNvkC85yaoEMqk`NY+t`IMpAyD|A(4u7MZ!GF@#^`vkP2U2R0ZV23|&wbnGxKUnT z&XsyadA->7cRi1l2KLW6hAx?nAzl3i?OL~nECyBWLN85d9O%4c56htj=OG|hAruTT zigTuZ!H;-$*w6WWo*LwruASv@D}mR6=)5a`2)HsoEZ}9?2!!tlY-wFKR(mn=2b$`x zud5(%WzB#aw5_h}nB@5i4`=`jUUm9+$)Vpk5o)lSG3t#*_kHw3$Z@O{s|w!^;rvX` zP$6Q+|D;9EJg%3h|8@!Fr)(YXv)7Cd&3L6h#Uo|Q@m%kqM>tktKrG#Pm81xIEa{5Z zuqKRpCYf>GDPbDCq*tsAw(Q1Y$ohFN@$Bvl5S<+yU{zS{ZrMOF@MMf+rxfafbWx3U!8y|xk)pZztSt8z` zITMhv#=aM#!unVYeZG@V>9N7vP6JahYC{q4oBOxp-=lKiwMqrMiBryu-SGm>YDZiB z?clOT>(AT^pAmlrss*r~jG`^kFOgWtf9oZYTedK$ZZfW8w!QN0h@^;eTpPx&+y=wc-1uMjcVw9IY4_4LO zy?|uOJ$@3qb2>({)WRRbI2pd#`YCqZ#H}f?+IB*iRI?oce#jj4zad(}eIcb-C7XR& zwC36{H*6JbpWq*V?kzUaLMB(-7}0sM8(zJ``;mIey7f4SleA=?KILPv5P=nb0*=M*^4XWxqRE}@|4eDa2rw^_@&C2FrWc3+Ln$90oiUO&oko?G zb{>s|bcz!a%9@eJ?rI24v1TbecYqW?8-gc*k*(KKkPK8J zUv8aVJs-F6d$K;k#?|vwb*j~*nDZk%x4hnh>zA>Nh1ai>oKu$#J4!p37>oEJPr%np z;6c|(x|Hi8o9u-0m2N5AT?a7MylP3dk-nn1lm4b_$d{kWJ1eBu4n_P+X;`6-$_iER zr;1BooE@%0BlT%Jd+lMw7N*+h(lr8JPc|*#JnWa7x2W}DN(tvDB!E^_E~Z}t&*{vU z4>#;c!X&%V5FBNUIqT{LNZD{Q$*=7W%k?+SJeHU+w@;xi%D9vlI0_J#v|;R!PHPK+gdS;qrPnElezGsn#1|Wl(`hENA_P(4J~zG=I3whD18=D8%rK- z&oR40ut6Cg*$M=edUWx!i0bqeB4oYe!nUa4p85RfwdD%d5hJnMxyDMWS-kv{f6o~x zx4cM=Bx`KM^UaCLF#3^Ex}_O0!Ac)-Cq;Hdk(}ps);K4s7IDVtROFg$KKatB-_C~n zio{eUU`lmJ-k)+77@QnB%D@|Prmi)&R65K|A|@R=8FAbMn(=$o=8i&7qic&Yygci) z*kML}iLtKwnjWr)(j(lntxX-ejnNu}9A}toE_u}*kU*1y1d9I$>3 ztXATU&JqbsYhN@9W-Xxn8CZ#nC~@7#r70d%VWR`(Ru4$HMHpHRv=m2HZbQPFO6Zl-P_+qd-0xczFzYIt1OjZ!>}Hs~TQZ zbyUTQ3XqQQTFJ~ooU19}C;J4!%<~NAj9&IwLo7{Gg>89Q1?ajge*9Rb{}Q10#NYcA zP{+)tg|pTiC?>4XPV~S4a{|$>{xW*g1Y?ncp^boi^47xby`Wmb<)JO6Tr6fz0}H`Q z@sOr5N_wx|k>p%HQ9lMGgA+Opwa!KGz>q|afX}7*q~#y37n*Vim#MkS>5u)p)t<+S zp0V(PNu-3|!h-|cf)mc){1c>P5J!FLnC*pmT1P==K4gQk>T0EA4G4!MZ(9c8#SGq0 zJyj`}cUVTL0te1YMW8nAfl%M>*BgwEob}lI2aWJx&vFCV{S)UR7JKbRHP9o4Pfb|z zRg7DdrQvDhOsmra=Ayd%5N~VsY8!&=U5T#`1!lCibFqn0$!&Jy zxlcF}+y>NA_vnwAvqzUGPXTU&U71x?m!iU`QBPFFdaLjz{vT3yk?tD8M$}?z>3VeF z;wEnn`zL*6S2i5Ie=_N4?GcT7*4T~QUMjoAv}pOUeulEc6(zjKi)r6D%;olh%^@ku zR+Am=iFhUr-FV`1?`dd*5BS+sAmGyrbWi?)Bt@E5IT&cz!CUZhIxF56KC65B`zqyn zEjw^>{Z|uLPOmO<{rM4P`t|Hw?cFLXnu3xOKyXMfs>;8yeE#-*3hVDlzD>Ar;RMf<+s}QnwtFniwfXv;WUcR>6NQ2TW2o2jChWHKgNuywFVvBTDnKDvii|1_2 zf!!NQ(0Keg#%|(qI)e0^?L-ouHY-GJ@pnw5ds~b>2gZJLh1_Zi{RxkzVIWU>m(-^v zdMg66NwWIC74FsQEgbY~=xDfW!PRm!N(w1r;xfa$xKkTyHPzcO4)edi zb{0X&Bhqxld`1{O(k%GqUdbVj)2`aBHvo3TqpW z?45#UMFUouR9$zE&;816)zd!}74}@$>zvF5|#-JACFj%@>R|lOUxuc%abZl$@p+$Scj;tEomqN^XN+HuNUJ8 zw3i(VVJ=leoqrd==%eH!3rsZ5XUw{|pRPbBtmq_gKlxh)Yi=J780wwZ@OTflkB!+L zw6ok$OugM^@9DSu18P7mN55>(vEE2U%(?3RvufT|@3_>a5l7!Ue5k_yI`*l#vb8%Y z&^?|>%8RwqaR||-I@U>2xZ0_}=A`K4zLG`?U@>?Z_#Meykx~xkFh}o;?pfc^BklIjd)p z{=KELd!gI@O5T#>Sw)@pWQclkhpbH`9Kpy*%@AGaUGEQK#5^?N{(`018#mXEoAs&> zU*;7d;Fv2lo|Bqv{tUwFYe8k(^ue!TFs2J;siy8;d9Fg{afqW7ZYdteyeFE#+lShQ zpm|iIFZlmKpP#=?0lc8z9<{0fEXdE70e^zZ;?dj-95pf&SmdoAr|CvYhyQv8QM^z2 zmLi)`%r5`gRY6>rVp-Nz&dEcWy@C#FAZ6k>_h4S)q`ct7V}|pRAEk0h<;g%LU#_s4 zx)~IBHvZzlk~H4}`~;);3+O{rrzLr;FT>ZV%opzpjHPk}6b0Z$IrvSgV_focMN0sR zba)Y_KRwe{ z*FTf#_!86u@-bzGji{=EI-FTKbmiL<*`4_7iF5>2g?CS_(3(*53+RwBjGwZ7QP^?N z+~{8=YyUI%cxayGNK4MT+0l?SR&~V}@a#f*-;%tzDikwbOB>Jl+Xh8^%Rn6oUF@q$ zyU;rghG#lA_kG|o1wnI%b~QN`u7-jn0E^8hmUR=FCmHpZv9uwI;YgPtbLVM1`?R(S z8R-W)fWoMUJyV#V?97TKEEK(0f~6YK9RQ+tQ-Sl~(M3ah{Q7nBDq+2`l zoma}hyFHFlec3v2QlLD}qsm|B_ib{Ys4%vHHJy+rPcxcS?w~*CJj8d;oZJ+3oxxqo z$tFdvO<&(`pyN{jv10@@-`zX8m+zaC1Ne$kd*fHZq|#>vLX{1_!^U+e9&BvSiI=ZR za;}bkSD+rjHWwEuAKS}D)!I4K-D+=mj#P>mxd}Sk#eM1RY=**v2Wk^cdq_=%Bj#ps z9H3LQvO7WTd_pQjuR;@foWy$oO4Uf!P4LksgnF_3$F($V?92ps=rCqYX}&{wG+yQV z5;L7I(ELU0)CG7~i(Q)j;PXN@Nu+7>MG?CZG_}|~b8w9C0%H#i&1Xf=NiG@Fvyguw zMEitv-w=?q4bNrZ!5FV~;D#dT^>f>r6$Yj|fVfS5QK~`t@crBeI!nN}n9sxEdSp$E zCw`w>93+Tsuk#=;``pFfprl)7qmqapF5cHXYq9np$B$l;w8yj}(6*YKP~2KYho zyU!y?_Ux{qmLboEunAf}Xt$I*8>LfB4uD(*y> z8g+4(_mqFSw8(PT8b|vUx$AKckU-o&G?H(t@=1jKdHG&>c~%m#NptbJZFgM6<{K|u ze?0-X6W*5VS)l=cyt>#@$Hz(7DiZt1hJz&n*U_9ZGakrR=**#sPAos_N*+kEoiv@- z@>ly`gd~w!&Qxr2N1nxIEr^}{s>rbBzFdtsl_!2FGw4{bn^DFNm*vSvJ0KrT#7uu( zud_t@z3=|P)CjAPPU2MMnLEcd=pgLDJs_>h$@#gDaZAmU5n%(EUJL&_3PcTJ+M%Fg7;NyF&!%nnj|+PYH=Ne$(} z;nSYo)@F0A4IPs0pH zIFoN%4xYbXs72ggt716EtKYf*FJbJrx z>P%EGoMRL(lsNsZUJcy{=6 z+7Ie)&Nkg#=Ya7m0-<~;mHSyaKXly`{s{Cxkz6U`((?FIka*W!JFaHX=7#OV#2P*PZWPZ& zf;*NJRafY$mo-!v0JpkO8nikCWICP7mf&*(vnBmQf=Zu^SLKFk1NZtjdt-;*jP zzqh?Q19_0e%z>65hY>cNVTlxFbwk%p7d|b}LFZx>@*Dq`y+-gxL6N@Eu`2-4l`7y7 ze%idd6oQr*J(egQgG#+)0^XDk zm;(XOo8gYcr(#XUkK&-6OO{s@2we&ivT0cDx+-d}xk@PR=5JaASa)!XR2@XjG|mI- zOgseOE-ErL9(#aTb=Gi#ZBe6tl~(fY*MHx~lT#T3e~S}6XUQ6Phq)(2L1~wJS{m|X z-LBv@6n{U>Z?W$Zm5;|cOKyh0Obdl?TjP^mZyb!~sVMVkWviIk zT0b*flii>wXcnxsn#_;Um zxA6df$y}ddPo4J&_=2`|dd@gJcGNI(&%}OvE;LpY6^vQ!fU)pIe6J7hc_Mgs+Cn}m zLO|7zJ_CU}EiJMqa=Jd(qIM#MQ=l1MSG;!2USC!skbv*F;fZNRRBNnZ;P*rxCgs@{ z4r}=RvdH%`RX@>8VD2?`G&Wio65vRADYQKyft0}US1dQuQDPr#oD=Wmq%|jCevmbF zgh&o!BAr7R=b5_z&Bx<@E!<~BoB7bqD=o{h1a$uf~W#V0$VMogBD@bF6{OS+e zV)^P1t(+Q-!S+AQJ1RrwkzY}6H2~OgK|HN_k}n`}4>gti-q0y|TXUA|A>|ql9+PKd zsUPn~p4D=p2fnFI+bIIf zYYoxA#uijaV36M+Cn($!BzJ}^xr1OH8>(Xpa zo)Rd}n=hPey2*K$GHs}hL+0rqDew1t^`vu?2}W90Aw%w~uJ*QJiX!Zn>;w|NdccgW zdy`sysdC=fBmzGLotYYml?$B;Aaf_h9Rh(&L1iawjHI{Zj}@NrrLa^VsP?H(2IOYD zm;IpSrTJswojdF(M(U6#k!O=3g{Y{Y>%zD1_r5zj}UzKAkkNGE-m^W-;ODykdvrJ<9 zfhws^31n*YS-l&o zNtT{$=H9dJn?qzg@`=8@l40cIYN#Um&O49~){e@U#m&V)kinZ{m6VZ2d>%_m{&4ag z2NGeyuAzcKjRBfEa(Dhg{fWkR0s5mz&=;u;oxdh+W-maJh)iTY*D!d1=kXp_{WnnD z_xEMQyL*2t)JqqrtZI#Ys;yW;+D#t%_*%qmjgvJ9qN{cK(NHLFN2jkDp{}9F7k~JD zbGrA7_uI6p;kGCAmR%GJ2>fOTZbG6ISk{{|fv#QD&T#zj^AXLK5!`y{qeKZ#oa zf)NsRWBB^4*?A)C_A_+uW8~#(ysa-f@dD}3cW|WzE&W-8ymH)qkeoG9!_r<)%Y{i_ zU6lg9FY-pldHnKP$tYI}|DT=A^F~GW5YHDXzZHmYb5Jpe3Sy!1r!vTJqzJHBdMO%% z-RHL#|DYAvhQim^&nGoK`7b*`&xu|gnTISChENw~7zdgd@gRuSpD?x4l&jZmqi4{y z(aU(y=*%qEF1%c|SqSEQihU-F!I;`LKenvaT7K~p2-uxv_=Z5OS7JV=xM^r;@O=e) zjoub|Z#Fwf2(Y7Uy2$@j=oX-faazk%&Ad)mUDDn13cB-h;~3KzDf1trVGDvsL|nU> zrvHA}e*$8HO&Kzxe>nL^+>jSj}oZy(yz@qQ1%heeSYrdWC3PcC(#JB=s zO)E*G8}1aX5<;gxixdgIAbCSTAIK*$SN9%GZ_&{mG>6e0s4m!l{ zEWYZ^4oR#$){|*NQ&?hmJz}b_xg#qk(I-4VqT|Bdg9v_sg&{SfADHg%Fsb^eM?%p7 z&+V8$sBENL9VwssS|q~t9`B)?^nRt}qSOo3x2c{lcmw3-c?0`&`7qMp3>zIB`Yh-mc<4e*e0Cm| z@vm2$qAP9=W_`}6Is|f$VSagwx`EOEHXA;E`aSUFZ56NN7*y*q@zR>|8^5Q7eEz!8 zXt*gQzd+>9#MA*EpiTD1;K>OVje!_Ej+W*b`2kmY3j8a1clGQc*EJ~E`VM~On9IT{ z$fvS=WVrANVOL-5VDpoavP77_aZa$4*w|EG5evn@gd+V78(U*?pFe!ZoY?m`m@JBb zn0D0VE7+y2oUDDHo`m;t`kK!hCAPk2XamCF6?eg=x6*KeBuS?MnD{rHGOr>nO z13Fsw5`GJ8yQze;lnbcme{jqYIGbBxXgym;*Mjdi`k5^nX=>IcB1tehrgqQ7gh3n= z-Tg{OCD``qz5E^orJXvZl63z$oYCuuxx70C-QdQ*`LCvH`7Na8>E4vVkYKpXV$0;0 z&Bmt;r=X{`>^JQ28S)D40psq0pL2pzi!`YV7c^r2QYdxdXMY8Q;|PrOsq$3bin8vP zn;I+F)Bgei3!p0n7TcRRi&&_-7em$8vJnG<=*ME>D z2d@Wyi^l5kF7xWMuX-EXH>9tB!O#xHb-6LV#eclxBYp6rmZvf6>gMCi4}W0KvunHe zg=sbL!YOAld46fD_izLJkO!7~-4c0@Vwxj+{zbMM?HuDZY`LLr=tI4fN$3AYOS-1D z>b_g#m)%7@_NQ;gnm#fS+V|kT82Cb?MGCKF_em|E03-iA#CDkf`uToXMA@nHLYjSN zBIpzL1`Sz)}YVEgVZvlnx{gSsg7&NtI)FlyXFp@&N zyB+X#MCr7B{v^cQi){0v zT9&49&$6i41)l02?AUxutjN3j zh{CeM*aEs43Y1yA5brO*bU}V<}Gk(*!G1sOwx?$a8(4CnLv#gv4qE)-K#;@3wOvA7*S)Y^8N; zgFY(4qZ>*Cx=Gr{4qqHnof%a1uZyZ2#ol*TEX?7h2~!cYlfZD3I#LIQN?mg-i!RqR zMV0P46=$oNU(<2j(Kj32UEG4MQJtN4^HG5j&QX#cKR>`7*}-wq}ka%C`tm~(yB9GYp{063w=S2kvUetH4OQ}1~H6+b? zEU7>02S?dcIa+HGhJ_QT@>fK_`9Mj@jF2{57tS2#W~$*cR#Q6-)VNmnY{1`|+&Nb3 zcP{0vp>oV0h;rupa=wf60-7PYc)uoWFylx+n(2M}Mt7Uc>rbi2l$;jZ8h;|-w<$tL z5m3lD|Z#1#& z%4zg>lrI|;er4`$O2`Zq-{aN9g08(Qz4K!Ua76V-larKDn7t(Esd=PYH&u{wVu-6b z!TMrmkc~NV+KH9H$a{cyu)T0RPD8JE4p{RnLs;rL&SCUNAaugPS`*&}E-o086;`?z zi6DeQBG@Z;7bf@Ly8x7FDUJX2`g6>?a9qPuNYLw(*}Zk&(m%ZIR^2cuDBR=c^;;>p zb?A|B$BByFsty99v)?xa+L1n&V$fE!)9-~%R$RFPu7{73uG$rSLStrE)()9+kg z+zOt)FoA;3XY;bNV+>o@`$<<~imd?ei(gY!gnbsC3cCIxFDPdl5B0q_fA@Y;jbj@P zDF<=n7YMv6mM&`X0AJsc-j* zV)U1AdjYO)^b$o3@~a(Y{8Im=I!=o&tr z66dEfy}2-Mk7z!kt&W{1DrKPOzh!;XCmdcM>#H^KaPd!OXw(apcLzgd2cIPO(e1}0 zC{d35RX1C`qE~DdAJT@T*3m(5{LC$2{N23Q2>gS-mZ;1=G@qM0sroC#yB}6sI~qxL zv}Tw|NS`(on_9)y-X}2lzB5ext=AiD)u>@X9&Ec^(ykQC&!3JQHSD@ox=ZBmLl=G^ z=`n9pb9zBOx;0Jr zSZ<#Kh^7$QP0TsoQCEW>pS?at+mtx5!#C*m;KO;ExK~dlJS*_f+tr;7!-)>0&IlH^ zZ!?$Pk7thD%9G0;$D2I4LSwF9p>6xS0>-dSyGU6F^-zfyq_bW1^%O5-mD%<+vLB5x zMM>!KHcEK#mr210>}G>e+a8FZ@^aEI?U6{kB|Q29grzt$Vgna^Qoi>ecG8Am`u2?M zatmK4WTUJ+)@F``GL6|o%Ue}g=m_y}x4+MKdJDN>)NhenSD~Ot8{;UQKR|T}O z{6Zpt`6qySzf!&{9}GOl06Y1N>ziizbglqau*E*Ed<==V@_EDEKa8Tsz;C^bP$mup zY&|G>+eX`6GAJdz=I;0)S#_?F`JewHU?&s*6p9Pf8R0;3tZv{9?y4TeR|zneP)2$} z_y6-=JBCx%Uxk?FI##pefvf>nQqF>|q zQPf~0>?AGy{Lhzm1YsLHn9dvI4)g>n=U*N8B&|`dze3wn7DMl237^O)YezAAtLuPx zm?nvm$#Rswgu%V@spGm{az3eJ)8c2(x}qM%pAlCEW|T9w`C*1oqT= zv^QJ4F(4;DQMH?``ro50y`~@y*F^tm6YVq(PpiI;Jscem3sl^U3dcgjaHDYiYhRA+ z1WD8GPB6G6KRq59I=|`Ayi;cn(%jvJ7tghuf>^0cMIEp(g*&M*knMd=>LiLZ)pJlB zahFa;Y25Q(UaBS8WWMD{p?cpYYu!X2$$7S?>4Rim60{~M-)*C!WSt`O(lWpwl%cb* zoof*YpzN{;Q8)_Ryqb;JLFL*aWfu1tp0r;EqAyF)Z(PNyUQjy-U4#mn36xx4&ALs< zK9{s|`Q$3d%nl&(Gfc8b`|Ie93ib=N7YH@VxiLgVW1zMxld_Smp#S`l$Jt6>w`5KX!NukU6gs&#Vj!#?i-WY@)xO&w9FI5`@*px=>iec~ivL}fpx;->b^$ia z^ATeYxo)Z%Kf-RL&lL7p@y|zd006alf`};FgX%(eQ8dpg19#I%H!{>-9sQ23eMotQ zohMJQ!l7hD{IbWD5H9m3=>>S0&35*w_m(hfo@~7bNG5THjXPl8UAsme(@gIFQoq__ z1Y-WHDVhFCTVnZ?deCIOn@jZePr;imNs|&0nLN!rc(fp%#v+wsU0oBe-}2{skl2(^ zX*B+D$$k77nGoegc5-)2K>~#2&}>%Q=9=*u^NHNVENLh1<57M)u7LTe>Vq+4p7u@p=A=3eFsv^_ zjp3Fr2>s|qPa&n1hZwL>IMmLDt0=;-SAj{<|bi9&p#>GSlL&%J0$w|3jY`W(dF;)2h03C7jSHx6f~GP?zz= zujoEsFOXoFP&u@%l=?bu*J947jv|xFxkfgIjQ}eP&*!Nh!PBOHub)C1k|y)Q;&B#|5V01&Lx@xx`{HJ*LII@yb>NRhiC7ql3Yqdru!p8PKCQYTL`ZE8 zRBywB5>c#!^4s_C_ppca>AD}PNncxp`96`7<;4J=S8`2Zg)&!V_nK;2qZR5Fd<|mh zzXrS8D#DR$9x6uD@e2tkhi|J7P{hzVYW^tnPa`MnNH^&s=nIsB=mh`4=HvZtM_89b zyBi?F!u}dAd&O~5{ zsc75pH`FFAcreq=l19t3dT}&t6=y8@OX5|j>Wwzc{MnYl`Zkwu>c%XOJ@s+XsTEd) zT8fVirji<2>Q`rUb7=J6nEv>`{hq7WULmkE(YwHu2MH!5O5(kck5~qlQt&%{II`Yj zzy8t_>*{He7Yj|{Sm-VawYR3IWL8ToYrreh>ejNI<_QwHcYP)_|4bU=icpTuqhP$5 zOr)8Ox1u7=i-%_?ks1x{w9gcAXpQfbW89F>vdpD;4$%@OS?p`*;8H$Qb4MN0wAeEL zpJe+_uxi1>Y=ZLsUBqfq!^T`kPEd%sOVmr`rphBjybE{9MvitZ3|$|Omn5Ub^xS}m zG4JRuQ(+Q)6wINs|>cHAXy@O&P6I3~lE+IG9m5Kk;@|zzH%s;zXnxyy_*jBEp{#=Rp(6@~5=ZkzAg*EE`0fgk-cch3aN6|1eCc1@CT zydO5pP0BO|3=>VyS~xAYU#`5O-IuGNS$^qGZlkKKzzj3*l(!ax-e+IL$5vSI_R{|z zl4=^^4*s-S)237`L&0rmkjmppV_M1N3(#D(>o-6N@>f+uN^0rRUxO+0zoK&bu(Jl` zG&e5l41a1ex=GG!JMYjK-^vD|&gkE}RH?207-Uw5RM;S>d`aH%UiTWu4$Qgr8qR61 za1eHs!d&JT5C7^J-*c=cOgrnW*Z!eYImHH4iT$f=8f_WaWqp0UAY@jXDBnRfhshQ+ z${2vjuFABTCI|*hjlMUnH8e_+g5h#kB7K+xZ3%*GBx7CsNu_!ZGxKlD=6HY9k65YS z)v53xr~VKT%c$)A=5B5Ryh0xBTa9!`*+W~gPY`db&au3nO4}Wjjy|2CC-gk#_j8|9 z`D3%b^fR@cyHqiQ>bml8qTC%WSO+BXpnc-jr#pJB>Za7{^>#1=t7UT}!ofBZ2XhzE z>uF6|>>boxA;aJ>V-s-9Y?sxMdGC1kWKk}%OUn-td;PTN7< zB~jkY6~4cmtNRAIXj1TCFf{n3bJv7g!xmqGPG>s_VCFRw$U2M7pZ+O~{2}+>arWPp ztu6VtCB6UKCFZ;jkyNI={6z7rg`FzNBcGNo>-x6~ug>sA(6!`g*6Km1<|gN0wl9Qu zPfRx^TIH@sYx9V|RqQl%6Dg8jB@u_@;bK;I_gbyif{8B6t)5_coZ2^V1B1DP z*i-|VWQkb9x0$0x|BV*F&GUyI8un8$W}cU$6+_A7(`=Vx~Nt1D2yJm}Hk^y0ipW-!Fg*AU0Z1#7va= z=^_J+;L=q+P*!xr5wCiJfm0Z6-*aU_s}1$QEh+Pn?tVNevAIfr8TlR!%s~K@q3VB3@$|X7l{)7AO?6Z3IOJ_ z!XUP36#s7x=3fmXGi9xohH48_5*a7#zlzdYEhH+~(;KYi777)HlN-Tt4iYEMjpz{- zA2$^}=cLJvQ(6#=`g~YUz|b8b3}tOQ(zLcQh-719Lz^?Y&I6#0G)v>Cc> zSZF0=N)GfJbF*LA+@+)du*6O~+3F(kVgAsUNl{*1w z-;oHT-wGN`e*sDP7R-G;gm9VX>DK5Ay-%s$y}&5E^ufX;;pE$--Szh_QSy2CG0Jq% zs@b-X&D=snoEv-T0UzaE@Toe$mk|4yq|dcO_LU_$rO7u-_T3JJ8m6Os@wV_@ol3EH z4c?S_6HhoS&nOLQ?BjQTDiO@~wX|0)%-fN^zIWy!*EQNbZc^bp#p_8eBXfb;HF)Z_ zV7J*^*#!lZ3gL#+U`R&d+o}SiL!YtRAR!5D$Fh!jROMSJ5%FQ$e9S97Cd)}~q-oe?u zeNDuT@j|p{2t3=|@>Jz%I3)HAmxznhT`mZr*l8IfPGr~1a0kX*kn~naudH4JG^Qt& z)UX%h`7*<`g8w8Kef|Stsiqqw!)?Ei!Fno|*zz16?L8*MrB3zS0urU|lSbP}t*$@+ zAzeQ~Plj7=%|_%`a%ImL##FW)=T7EFihUF$7ao|2w_p2NvDDot@u$jkABn>Tpb6cL ztDf@ncZp)(g664}!Xhybvyi^<)1S%#ebgHrWg|FUmz7p93SD?;#-&NmV=Qsj69v!|ATD6igu0Qfuu9;g~<>b|;p2wacIe}s;s2rT{V-dX1E zA{FcRAiLHF`hP2!Z((Fl2S+a8%~o}tIrkCXHUg=iqU1)WOcUT-*`B3DvEgZ(=!@kC znQS1e>mxEs>1vY6VN^b?8Kgit^u)zvi48|uW!`6Wy~-QMDa)0gz; zjKvt}$8v>9K@0xchW zN>q~;xB7mmQE{9&dY_G*@95vrW61D7#9TXNI^emxez90M+}xqyrzZxQo1bCWjK&Zy zlxX3$Q6z35FXX+HOSIk$w%e(NBl$ItXQ_&C6-S7cN)6;=0{r9%)LuW0MIPc|qypWuzs^lV`J!l)OEq00R+Ul4; z=TaY&jyGCH`@TP1Jbrj~+KJaK3#I}5m9oC82m_b+uW|(@;m_zf+gSl7&KrktkA%$q zI|SbZu_;*W>$F204hDsvCDxd;GME=k)qv0eCc|g!OY=-LcHymGU|QmJT>Oi9=^Wy8 z;f7vgZ|S@7-4(pxLH#xD!co>uR^=_ipncabJ=pvfJp$AUiFma(d9MEX4z$uzw~6vB z&5OMp1@Qa=Y3Qi#mKS9ODe-i`<~rj#)tb|QQgerlO<>HlRV9gLW3bz5^M1;ym8{v0 zMe^e{w)edTB84MU#e@yiSZp?!wL@iR9#G|L7LqVb&y|(>-W9ZC1D=-C)h@za;#VKmBaYYjBBCqs2W|wzE>D& z>HKw;Yj`pJbk1as?$n1;BNe;IbZLxO9PP=EIgE*N$s*_?wspAY@idYBwN@LBj`Z}s zep5^5Gn>F(Q<;pZZEC4`(Kgy$EI~;0$VdY(a8~Vkdx4Xg;<8f~q>+i&ryH>-;$k8u z8QFIN^3GKy+@KKrnqK;o=uX&hoD_j8KXaH$@mYM^W)Pl7Yg65W*3qu z#%-fjf3nc5Nq`aF3<1l?;&mI<6Lt{(-H(D)_Wblo;nG9Qq^0HExRGXM%zY+9K$@4b zFAJ?_L{6r5U^hm;!#E;u4;=s8u#yhTvWg@Bn6v@VZ;2&&;weO&C@>`K?Fh5F) zcT6s2+ud%A_I)g2j1X^S=OoMLZy|>q7H-z|!p!34bB_##HFNTkPd!K7F3C*!cjnPA zmDgh!=ZY_#FB+w=)Gx@lmPzB!beAP~_~@dx&sTeoH}p~iL%(*5=toh=_LQJvtmo-* z%`u1Ooar2%(B3@nwo-^368X;k2+STdT}B5STb0Oa=#lhtrNc4!^)r!Isi<4P> zR*pBfPR?iNAAR2CoANlS!%30ibbrv624T|Z2+on`{Nm=fAeJN}SC{D;>R!=hR@e9x zLpnoZF$4R_UZU^!NR|~B3w9w{4h_F(ST}YPf=>=7DTRW863vHEG~`jE3VF|w&0p1@ zZ^t@t!e7Iin+TTrf>SAON*7w<4!!CDr(rI!Nbunuhem{@e-FpQp{uizbcFv1U;mcr zSYe5=LpYtrtf(goE;dj9LoQI=LaL32HSb1-qBxD{`I0Rz~nOM9-TL6ysX(Q#==eu_vgvvHlg$R+-+s({-mmhfSfsfffp z%{|H8h9%ETanuGxj_(k=0X5O{N~zFXz!s~&9+)hRb`P0E4(aII8hFrEIsN4`;ya&ZJglm;H;g44VfWn3Zm=Vh)b&zG)@@bePX0P zz*jH7Wvt@c(}U73ayPaz8F6;{=F}mn+C{Q;RBgXN)+us}5H0$KjZ}|uJ={}4wpy0| z9$Sr{4izhH$DbEM%(%4A+NF?ZE!}Y7urj&wgAgT!Gh4;wjh|Le43+A%5J>&e=gdH) zLeSEZToH8h6*FY4`TgmJQs4Wpm!(o9rh{`7Og@njDDyE%2lMC@Zh8Z@Cf~XLYNG-8 zeo7&gE~p5~rM*usK-7K=u^F9Z@b?w4?aSHS@|Q&oMZ)hk0EK;ZFSvsyOl!}J*yNff zqxiLg1(MKT3*2|!s&}AGuCI-7c;FF%zQhLwa0$Ij@_7AqtulI14aOd-T4IR;;ZfD8 z3C(fNwOTvP90tH}{)8Scl}_ZEG$0prt9?B!!^0Q#ky(z+N-KX$@bzf1usfDDlfb1S z#>QUCH!%PUFGv~me!o^@WyoE*xw^iT@PG=vKB<=S)Iz=;tu0~0ICZ&vu|6DLia{r< ze<-7fsYxM4>cFg^SLnm{c{OlR*LZK%@?gTyb_Q3(c}g?34vo>4Hf?3C#%Yeru@X_K zFnQ%2hw>;#kCFaL)>MGZ2mT4Q5t-m2G{EZ`ML|i8%1R6%FRmW!u(7X zJ9dPd?TV}{0XNV%79?kQGfqKW{l+bFU_r(fEzic8T@e%4SbW5{P59`=EmU_8lf=nX zV(bZL?#3S{4f}?rlCVs9*=c_o75!bh?MHF>@}*4F#V#|ptzZ@wo|~ZNs2UYLn!L@( zu>aIyoy4GFsoMRZ(*?u$)myPl+vF;S-=#n>hPW7P)f5HgtGXvAiuCSuHf(QKolaO& zUjbmI6?4pPtzWE6d&;5e759W=k>S{Q`$_^DEoj$2tI9(7+g20enI&sX#ivwaDg{J3 zG0ws+uB6ftFA}_f-OU(*2g5k4Mt})gNt$|sZ_)!>g=0cNZQQHTfedjE>bw;W?+y`J z5`j^rDwD&|zsRqN!_U#x1sUsMKe6kXwgEMWv`wO=pYt!z(?;0etbSQnjVWvj^Kv(Z z9e=88fF@7@ubH@a&et%Di7^pAIY}GgV9$dIR-<^Y?6UjYApcH^P_%d2m9rwHo+N9r z+gsy>i&a@TW`#PBVkkno2WzkD$qGAj(}Yv>iZ$4FyVGuCo6Y$c z^GL8(63)bfmtva8W^b{XW=$|xTE|36s>nvnWPODEEQRBuIj2te&4u(ObJO3BmKY{R z@vWfv3KjXSHepa>J*HUbfc&R}#`vg-t^IAd8yVFR4X>EsjC=g-?af{Jq&sxX*%B`a z3F&=r?czm0Yy_!E3he-9UL{^C+S(|3VJ_)$SrllP5o<^E=s!2fb&^l;ZgBp7$T?^f!g7{Gr5g z!)&9vk*ZVkWcL(OB@gUx3bwDuO|;FHx5JWsU03!1f9Y^Nkl;1G)Q4K&tsXQ4KI&Zz z3|nHRvCPlTv4Ah(LmK$FQljBs!epNfR{Jx%4!k_A`tuFVD?ol&=rO0!q&fI|ZH%V- zJ`pP-rM^s{<*Ysj^&|2R!ZM0SZhHqr0nr>W1Le8l{kjp1!Za)B4oiUp0+-)4Ky z=&;sbx~>yzHwAFIAD6{huxwB%U<$(5-|pXbli+82iH8%%fC+|EDXt4bR1>X0ug)Ds2bdSQtlKR{^2xJMT@XLq>%edH$K0PLU zSi0yMF7j5H{pn%#W38J4i~C^vQie_e zB_?Pkq`SKjR6wKzX{4nYx??B-=@L*$Nu@;?Kq+aEMnZDvA^bMyd(V;IIoI{R{5RKZ z_UygZ6ZaGAxz*lF)U)g2Frp7&g*}SyruN(28RQ$n=r%0bk>a9+`G>TB*ou-j#2QjJ zncAwW*XkkzFOsEPr8cg-6VKC3a^R_sDKnE%P>1cYn!NKO{mFAR*hXxC0!DouY5c?~&LKi8b?sX@-l9E^qXs0BMYU zGL?hEZ)vPNmn)FE{i2pu1$)7H_e%=@uQ%MilG$VO1(w>13hvevYAS1h7vo=bFe$9P zTid9>*@;|Y>3~|PEt?F&!DtBFL52Sk1|yA536}`WGU)Hh>0;i`l8tYV-Y=gI?E|uY z0xk4c2`Y3F;npj0qM~mvLlifO`wvi!a?bMg66KPw+wK)Su#zcucaJJvPg1tt7IQ2h z)cQMyzj3)HIw&KIhNEuZq`PvT-)Bw|bo7dAfib=W`stlA||d0S@9 zTr@GPhMj)q$B}UoF5^{gUpm#9PwJvF^_XpDUzvWkm!Iw#QL)&DXNvxr!0#Ncnl&H) z+_5;zpKpgQ9l(55f|Mjq{bATMHRkWBF$CX9lx)gkJnqzkS5BWwD!=|x|Ep=Qxx0*~ z=5Y-7&X7pZz3RwfB_UZ6?{BirulAXv6`u|_7)L`MR!X6>92|(~mVHJ9H<*0pA^u&N z{!h=0<-q;!ZJH1fX6T2f4#l?Q8BzH6oSoFBL$Wu?lb4XQmw=kM!kl4BLz zZWgG-Vm=2dNG(8!)Dk@|Peq=f7r1)^7zV{9U=#(s;s2@!?kQDMZ@w=Ml1)1 zABkW!N7nQSv}9R*oQn1nE#I@MI?coh`XGU7@L21_elETjOdqBq%~YV^uw0`OqjL8H zFEvLk+@$NPRHsKw7a1PK$tNf3Al?E*Cl6Wpd7q!xlZu8-iY1e7rjJmfe)*cbsu^F! z&2KTQ?{B~Fq{w?(%{$$3aj&PQ`*GxyG6`Ur`_1!OxFx*ur05w-Nq6+5?mh<($4 zRBNAbeh8hgB8ZS!YC%WL`?}STPVM)-$?($rMR{^pyBxaqj4Qy~!*DODi1o#%5|gvi ztduUnR=GKw&wbXasiDcu_bM69Ox*%vgozIBS>IWHvh?iX>r?)K66u1SQ$G1p*Y`DX z$63SJ2k($6AWc||`$raKBc<~XYn=l*4wJ(f_~it)JCFQ9mPOzEpHjKyzI&Y){MW>YuzRJl#VwyUW|qQTEp+74?QO*13&rxYpg0%p z5oOS!&&EdU1?n+fk>5^-REmej)t#~>U?9kUzU2((xXYW6(%okX@FAp;y zCNHi=L$AUexe2ZQmLh{T6$9~gL4GD0YinzD!kco)RoB~Ru1{OaSKd6P#4_Y%$(~M= zVmdZ^l8G|8JIr_pJ5p8|V&%&^;;kn=PBCRB)Iib0! z*<*M9xhS$EB%(c7hEW@ipw3I_sfqLZk5NW zE>n&1Z0bJA6&~@Y#{4kr!|<)>$Nj0)-xfZBoX9nwi68zP0F(U%|J3=BL&SM<_FU-) zx+&ick-E>ugygll(0Dz9iH?HwTTh5Z{-LA}UN}jfz~*R%Uio~R`oJn8>{Ds{-8C!i zMkXY-{Vuef(1xIiG-I%%PtU~Q{`RVS9K^N$+J&?i(hOc$Z5z(dWW+J9ek9mF|FA?3 ze|T<38a+AB{g&RzoZ=bUrx;*`>ve0>{MJwVjhKi)Lvl9z<+=_osG5jZPwiJ_L~JAm zqkPz#2L)W1PrvrH%KLhQr!ol771up&oSrA2{T`-B)l*84c#iM%lX-XH19h1n&_@@0 zd%*X}r)NB0U*ENtCHNzj3d?K2Xu)IW!y94`M5@#a(Uax>8JhE(ysz64JyrZX-}nfpaY&?i`w7r=>lQug`nkI-F5aUi_F0PA-=Mv*^iNSmjmxm4`B zxKIxgK&Do!f4F2!v~ZwlW=`ly3s+blr0O@;hUHSkWc`ZnX{C)~&HnwFdsU|hws1DV z&!RCol0I5Vwh*zp?WGaAJy3o&1WPbaW>$2#a3aT~9&je>JMWu(?$r~faq6cD6|m6_ zm#p8{4QzJzVZqvrf6o4gx;b*j?u&f1dzCit1u1e4O=UN4>jr7Z;sCAxoI$xbp;y0V zIQun{4QSH%{uyO+A`y65@p?7=PwHPQb9qZ}E zEJk+jl8$kPD|u6BN3F8?xo|svXsIu7IGx={0v!;Mk5u|+@xwCWk-uFkJGXXszK3z4 zx?X{niRWV*G~2nuNTmzdN&e_FUoHM{Ta5ZhxY$qGpZ^dzAS>|sIQo_O1zdIR>jU(k zl0u?9^y*DV(YzBsO4(wpq;Mf-UYW}YWp;T@fFv`Kg?_}()0G0Ynj zQ|ZU0roK@^R``46UBpe03BUC&;eLxo)5SK=m~Zprsl<{n&8G@EB6os*LlI+}>Bj!v zibZ8{Mrv7ila#)5hTC%J$2lOHXcPRtW(z)#WlTIX7YgNy^H>b}+2nlE8cypYX|Z(d zbMHyr+DE&Cc-A<*uuntt*{KX%VN6eH-Bve6>Nqp+P3w#WJ5%0PUmjHiDt<%q<#pyW zeIjFQv$Q2o>%xL=CQD;wUO*8b|6l4qgo?e^^`G+Po7!?&dEZ>9aEx=Q)q}G}@aWc- z!$Q0KJm4mRj${Kj{F_ZY9ecxl*W?fT;7V&b**TTCOYh))lzd&bdN2gg zp=#v1$k@%1zZWaEwp>%3Q9M0VMkk?lyT`VhV_S=y#G#B(*>hDuYqgdPMmb%p82itK zScPKblP2c=(kR0;N}HB%LrsrR(EY_lc?INwLxZcX`uP5x%AzX)io#`Kl`=ScKHI;M z;jxi{u~!E483qJ;X#!_FJjk5YVjZRl^9;MMmmQ6FHLD?fxp`1QXK1H&g)DSLF@Cm1 z{@gppCX{*VLkz8&QzMlT;F9*BA$TBtcpUvyT+D~gAe?la7S_*2#X>x}p z#-J2wI!yOOZugXlnb($Ds4b6HRA@A+FCLQ~+P^1=)2m}FH7V1%x?v)M2xKAN>+2PUAVsW%UxDCWv&hdwgfC7QJ~DwJW)8QvTFFV#Drs+4`ncgKcH$_cV!+keaE zX<1rY+q2S7=JULX%t%WMI6wRP;8PV_iSQAosJXG>1I=K3AjMedYM9U27 zt0Mn~75wE>oFUTgGOIYfg9G)&+WK;@{)Oivl21TqO>Z7ltdlU7(3aSBLKDwEH`rxO z-`n*|(90aRdgk&U)SD+p#(p#uF~l}2760&C$rD}FmMTl#>lcE5gL9cXSRd}KD%R%b zLo4{Qb8<-d`T38Bc)s*X$F)C&L0ZK=h~O>OT@WsZ{O+^1V%Z`JLd8zlO;d<&~q!DO8`dvbqbW)CN4R{XKcR zI<;<6Z(0+u1`@A{rFrXVa~gF)F>d{fNzHMY_A%ybrkCy>IT`mj@tO}jCnmzT{Ruu+ zB5CmI*S-ueZlC{rjeo>f2b(g@KJqL#p$i(hx@|lO)4uc-(AvK&1FSA^Mk0DA?+Bdl z_`<|Zl-Qv%+yCp_!@{qxig^7?3GuOO^6>=R@?g=eeE4UhFRM;UIDMiCR^$^A z3OE9*c5-nNjBUm#B^mH&{HEi{Pz-Ov2I}>dq8%~#D&z31R0^ZgNx;=?q zmgJg_HdD`TX8dU0b_|=VQ?zW|bK%2s!oe&suc|!KB1eCGDw0f&Z-|Jv5?+0gl@=jI z4l4?NyqzJ%Bj0~dDl%*DOXD$Yav~YOr#5}PihAJC)4DeDRv%#Lo9_k*XpPxs-5no) zusbTk(#FEo`jmuex;wZ?(BN@4K)!X9Fn$&4OJ&uTU&1ZHIe2k-c~+%v)VXq}{h!@a z_ZTsMDML|gY;1)QQV+F6HP-e0eth~XOM&F2^f(~WuYI~E3TMo-0R&B^qIFe8N_k@B zHi$K*xi1Oypdox)pI*Ugez=j7BLD5ZmWX^At0TOFj643r38cr?otM6@ zi`-$JbJH34cP1&>n5qasGHNd!D}OwpX{us}p=PVL)O{tYq))R{0;pfF6giF2k`?Cl zeWxCcu-TV$s}MT0cli>ZlXZMC5ZVGe7N=@~*c%z)a=qW-++0m;Gxj+cmyh1dE9Y#z zL|u%z*ue{_UzB~W=w_#h)g!FQ|M&x4ASTt!MaeiM;-Rtp$W%YOn2>_5#eVt!)!;_pr%$iTU(XH-05>@Z8xx|>5jBfHDf`Wxi^#&+2+Um{4)bjmMLc-*_;uHE#D4MWP>Er- zv7-mbr*V3McT1JJX-jG&LJng#zS}V$bcDLR z6FMeD7bp_rSxS4_XNi&ZlzqCl#cQHY>G$)d4~dZ>Xwp{D1E7Zv^eD>fscLU%!2cTD zUir4BCQ+Y_16MT=N5m`-b{}AD9cA*g=Bl}fr+bWIds8}37-x*Z0kY5zZ6dC|`_3F$ zBRLb|b!~O@_Fr6A=I&(%hCuG5=^x@ce)TJ=W^I(bLvmY(jZIo zz6HsdgJzg={`0bPdm@xgJ8Z8kquBZ3@#|rF&6cIzn=IHS6FkmFSJlCkfX zCktDKcGEofv#~>`2P3$m+no5?YG%A7i?x@ja`mQ3R@Y^?FOurRy;YY-zm^p{Uu=r7 zd}^zSC}RX2tjv6*x$d-X_0jo;gp^9*)J$!SjTHkEL3mfLmI@?3Tq|E=IY1fM&=0shsAOt|Lk5NrY9gl>ARF&`iOgL`AY zMS9D#aXUYt6JrEF;OK&X=+GV8cMP=<+-}t~@*90G4HzcjnD#LjwO3z6>YRLAy36jy z>3v+BqIn@t8MEl8?l_rgI_}l|Gc_Z6d9LTvSPnoel&)}FTMhw1!72GaN`Yr@{-bNxsr5~!zy@>fG(s*eu6>C6XjhlQ zGnY^3Vo_zl=Dx%Yij@eT$>cX*8=r31&17ksXjLvcDY2slY}MK%DV^)fRdDMgg5hoU{Ld~j{SJl}~&MG+eZE}GP_eKL&b!Bf4Q)QZ{9LG3OLL1%-(~u-k zcRCUCg!j-9ntN;Ipi$!yNQ+_oxAg@zx5EsRjI5}i)`|Vfqkb?dJRWuq906j0v3MR@ z%6~kT@#Mp52*!BGF#SeA>!>1DFGk(m-Ic>nE@OM7K%kq$y(+yTK$T7C(Ap(SuIsL1 zCCFUc0>pH;gz=GOj0Himn~k#nx<2yq30HhIuH*XK+M6QN$byp;aWy$<5Ia3SJ$*OQ zy^s2BYRWzJX*Id=8lW@v-|0Xz2C~4R9{F6FhfmU%G6tjdq`b{N_^_1BEFd~Oaz!P@ zN|pga-(t+NlGdC{c|uFV2^Yg;w{^ccIlLy0xgYf~FVj51m3HLqn?0R|P8!eN-wzjK zPWpiQpKoSE%(p?Z-PvBy2W+f3Slvng%(3K1@6VqHi=VBjJJUQuRW~+bNtVX$E5N_9 ztPH5VOpMPj7n1lSNVhW{oFNZ8^!)7`a*PSAk`oTl8l(?IeXCzJ4AKX~IJ|3ke$jOD z-z~{`kp+`b_!_S#cZ>32`X!$4X6FphOy<9Nzut2^j3iEvlfV^to4@6BK$Vgrq)2qO zx3^tL>Z+?BlFw3gmIo&RC3HK^7`wmzJ;?R?!cZwZo-$xALgEll+e8}>HZ}T#7A_~5 zJIfndSUHhnF0WKg5Or=aGC42vw~&H|HL@w}DX-db8z_<#;`rp_)qZiIXj|O?(EBro z6i-p$Wm=DgzMHWb+zs$rCZH;>BGb7|O<3#i)i7}u-_LM6Q9p6y0F?=E_pCD8eO0b% z!IiP+VNVjzNZns_c3eGcyw1c=bl!oPjXrrk8FZvekmjZbT4c&X#tWO*a`ew_Oe!fUiAn08Rp5+xZc?WUtd5#3NB@mtMvy(EJ;vJK-~XBU^zbmbsS@D#HP=nC z@8|Mi(P0L?_0wFpeIK(JV}ydzBhnTMKNFZ&S5Y;QQ?EYillr>HOokSO9pHb?rSzU= zO1PK<&YQg()Ji_1lU)_cCgRKqO5d{U55@GZ<6$2UfZIE!>rGxND)tzRIJwumzIBYI zzvnt(TP>%Q=_f2O79PaaRHa8qBc`bIMAuj-TkeTj7~PX@4y^84JLt5Oca?NavP<-S zl;iz-)>&9r?7P6}uCd@SuDiMQMJ|1o0l0Rhib8*7r2RKQ{MZo|7WP0)>~56bFKy`2 zRA+6{^%~f5_1}~bJ{*et`H>L{5!9I{{!@t=vrN5WX&vbi~)(lMfmiHQ@xvGs8mL11fYg5w(lYn@vHi!@0D zs$$pxh~j`*Tj}W_pvM`SJE)&!9bk8#5{-|4eT?AW#yYQ)+`z;no~M}Xyt#^ml(c8> zeCzh=jTiiT>EHX8zQRdo(hLoF19o(DB=+#|2(nL22hjQR_l8#gxpO<{88&98;$r^% z+#I8ll2Yete_CM)5Y<#-zSh10R{q}h-)pav3i>uMpk!SFa8WBnlmNqw0x2IAvr?i{ zr(Ivq+;HJ9K%?X1CM<{ebw6E$1du+5(gPPjzHP)`VHP`l-(z{?RU80a0Hd|fTAw|Z@%6x z@mnkQ@bQ_3o=nhsT08x{=zll3y;~N8)W06aKt~s&5C8zk(#pz)h^uZ}nELa-{}=Q< z3U~~_>E%~e^0bzkG<)%qU85;mH>{ zp|P>CdH-v!{HCTU=*jz*ePihxLh9g-1G%iRdpcU7q_n}hxMI&mX8ymLC=mxCP zTwbgjZ}@Mq|Bp%*kU^ev9OQ@2I@#GpGos1RBu%CdzuTDKkWHOzkR@Nn(Bveos=vgM zx9V4QxSyXyc>42Q_K5k)fqKvK8(mQUzVW|zqTNafW9=>AjzmcN{MZi)%FE03*VGQq z{Hh|Ztj5VEZbn^nAj~H@HEdM(wY^;!?%pN17P}Ysc(P5U0vAX;^HZVxVSi-#(G-NYVM84`ERiT zR!Ra(fi)Y*y8&L%%IaF+ZJeBh^G)};eiPhqhIs@)+Pa4yOzI!s+uJKM=}(D%JULmB zbi*h8_bNTW!jywQe-86mpBNtx2dJe&xs2)+dP>wHdH`fF7ySBWH}wn9UgtD`aZI0j zyOh6wA9G)ihMF2{;-9&n|NVurPz)_C5rJ$;Um+zf23lIswcP;zZkuWju0Qdk{6}KQ ziv_E>Sx8toVs373XkvnSgj>EIf(=6EedT|+z|@v_up)IW8@&1GU@ z&Ot%?qLPvflfD$exslRM&vrH!6@xQnDaR}0*J;s8k&meJe;u6Zn3{r*xRQHk-BUPV zy46niatzlUEG#U(h3x*mT}E(c5=Ai6p;a^GkP;MSxw0U^r)#~5Ox(2j{8T#IP4zzl zAmagT|9tx(hlz=45#RvJfB*jXW;6S)MQRS~{{1g5-AAn?5 zKAI(+$VePO54=fNE~C94QfohvcST;>*(gr@d&tPOx=qMn@G!ITWCS`nIgzdnWD~M! zWr2YCb`$(%YNsn~(su&R8{p!8%XIURyA@uamaE|(@dq!~a^X^br(eMFV*Q~zv$M0m`l)x+sIhPaZJ%dt7DqAmHnYXBWZ-@6EqhY{KGWPk z+6ddd5jx2zLfgAo7K=fKYU>;(4h>H8jBI!Azk^YagFf(My|1=`kef89L7K_$%ppJi zCOY~=Wi2s|YeiE-0D7jaU+EceJG$ANnk-*Ao<3^klx#m@UL*RaUE8ZKo%b$ajtcK^ z9Dw!-`{D$$X@`wK<=aJ`uqD$$1D}P35zdO zx?N)vtoBOr$5e+{z<@ z6=`on@1!HZr)+n0b2gHFdt(50P-JWiR9^Jevo)DtqgofN#en zyqCA7d!e?kU7y(ZmS|ca&c#eaYDF`{F9{i9-FWLNWzf1W(@*#3*-BHW?8d=L?#h~B zJTtcI9{mgFRsqt1)OvW5G=XOv+>7x}8OK6nYU(_IxOyP|<)$mXr zA9dQlR8sbNEm6k*BBei0q86-dXMrlpZcOW40hm)yCA06R#_VngpYAbat2)Y<6fv`T zXw5I*Gf#Xz)UFB8gasqBuLcTww%zR!o+6OB<>Ye=ZQnIqhGikS1Sg>{&zrp3tQL>>8wcqHq_o49vOijAsykp0iAjJj?+BAFnvzeyx}{+wkHWg&7jU+k_61<)v&ctVunv^d;L= zV$cg-5C!~NtVpM4pWMso+*d0BRYm0@r`Z&%&eE%eF)Q-^rC?WGDW6U^1))VsV`iu6 zXlq;2oJB*FOvI0mwJfd&oF2an4-2y#R8fzX*pB-Rf_HTE-5F<;652s6c{^G1PSu*- zd6sR(mgL)ssAaeLR{wqPJ!be8(KpItKjjl-vi3l-jgvzfpO~0fMW9}tMW9sd)8?N2rVIjS;tPemtbiw!ZL zdEHa+*_`F#e;22KeT2ot(C;qVBhcnNldR^giNy4_ge%G~`xI_fJY;OtIT?L5asQ9c zT5odiM@lxWt{Pl{c~-9hEtDyxBdR zTIlhh@KElt@tn?;C>7q03CR0=2tQ0*2zlvB>ezR=j?0nweqC>5w+K9&z*xnAHCWur zeWblk7j-_&(}w}yk=LiZ@^j@mj`{vD02qPK<{l+B60UlcUVVj0X_@!4Bbcu}@G8~M zE5~|cuuORMhw>adl++tSx=cX}rSW!Q&Q!GSrJKDYtlp4>Wx9d}n1*T2ar*GoEeo=T z|BQB#d^HhWrX?_9D^*n+z~ zR^C?BLf4vjdV2&{)Gwj5K^#7qw~AlrP}e}P9p&MQ*}atXNwLVz$&{+1%OPT^_qN~E zCeQzR_fiuaFa2fX2v6rZ#j_cv%S%JeT|w5v_xcgW{5N1-SCk$rUxtH~Zi1>ZD|rU3 zJ0I5XI1HS-Gg1=3cz2i1yOJvjTmuK$((NNKD%PP4s))d)>CCyqw<-h=hO;OrM^{cx zmlJwaop;!pxsqo!bPjrEucwcOm*fVB&3a52Cmw#e#hx1#z`6ugOK%TXxhTs;mx)vl zG#x5~YxXa4FM4woYJP7!!F`)=MWLks97qGqJk8sVPBG?X35=3=cRug7rfYBDh~xCC zk_XLS?sziwYM#xXb_+j$ywiLzpi)CG=FX0g?jluIBV*CH_%i{&)MuuK+)3YK+q@Nu zSHv*LCz`PJ|Enq#hQOAa4560`M#)T$b5l5t<6nKLaY8g2Ax5{!4IdVSi z!G{ug{5RAW6Ry@13P`SbDmJ?TVzUh!&$iQ;Hrj34pBD}A^9CF1wnOzcs%=sj2f152 zg4GyFda1Mqxl}>uOx|Or7mFGw(2q5*1t0fI7UiBs<$|P7+@xvxmG!Gy6m0TMP5+<) zN-2w;=W~Y~wP2ysS+_yO%YyG2hi3rYXm2V1A%2t>Ggw8iFXGunpMERF6);Pj!w;b0 zj^EY{C^9__GX-6b%ER`@s7D_7!FXPE(-Pf@ATe(nWl5|&nTNxf4-rh{^}Ii7;D|7( zlvA^`cIq!4l;SIt2zgUet5PXWG8OPo2om$ z5ldkkC_YG0HwsyW|2ct2T+<6jy%@0?O}N^y4)|sLd|ty>p54Npo{nXhCvRe%?sP~C zIUsx4sO8^r>&#H5Q?x2v1Gnc9&!&PTRByw=h7GkK8N1eT*Z+Bb@3lPkNQrM(YJDz9 z)0RAX3ttr*`hKbTgsz@cNl(WlSxOCFcB;Tj62Ejie{QgfjnSPuCKc3fi`jtm1yNE}| zq#J*;!z(l(5pQr$3jGv6E7>77;{xC%q__T-H)qx^j(IA9LNX1{m9be0MjaO> z5ItL_uTS_^3*L^Ad@gMkILld^=TGY!usspLHO=cG7qBA7nDe#5mdBm(qJ!MwM**!v zssx8{Z|bHNgICTg7*F3)HeR-@>AJPoZa#4m9950 zAKrs9gEmGF)CeIX1te7(F}n?gtcE}g zxFv7zw;}-_i@|^egtc9|! zLYYMaj`ZPz6*v((OfF!`6S9O9TzoHGW?USs7*dEg1QT)&nT3Q_tLIoGNhS&}9PcN< zB`Aat@D+SRwP2#odT2~vREU@Slr$M`)X**XH1>s|0fr0a>)i9%HP{_25=7{zD7h@z zEiyEM1fe{O9rWhO*JNpbBF7W(pMCJ6|E{lTbA-<@NebTF!mTN_8C|x%AissY?`Pln z5vt6aM6VDpCC;l8{5i)N2VmiLCT{9%4kw#*eCDOG@yFLT5AiM^hv^g<7OErx;JKz-4Hp=H&*Mtr9 zg2lT`pdCYs4w!u8GsO-Ml-ZEEYgb36e*}+3Cxz=38HR{=f*?TOR#mY=MRgTqRra$5 z4I+heCGQd-*}yPT8cYm%rHq$I{!`JZ6pW5+(IGvgd`@w3YvnS=TI$tci?Dn_qVy%x zv7&e&gC(cIL#Hj;Y-_m~w^8B5{M?Hbwq?Pp!h}wxQaY6U9P33=kDFcps7WoM4{4-J_=)Gy&WBBP}1XD#V zr5LW&?3b1WjPaF3-9FNv@|EkKhYa0=x;y|H%0K6A32oAQL8J=COyFr8|9)i6nWEbNo4daXMnuYw7`ZA0$_WJdSI2uk|5+V&Oz`;_r+6CqCdo zSw95i_HNT!jz~W7Ss#vMD8ULY<%yRlUsDd!F{eWancRy?fh6ujdVDhhSc2T&`E#)* z4PFf+>*$xdH1A!J=pqWe8;airDuNDv^unYoY9(_;#A`I`Sz8u5fao1)_`HTRF$e%Z3+aWNLAq>XPTKxlx_$w2_0dU<^sC>G0UZ1GT;qVk(-bhYA82{S3yn#p{gT=|N_n>bT?3AckJe^}=+t>gI< z3gMLzjjyXc)iKD~-M%8OnB;N|)>i}K1tq#5wq+bN@=};zD#+Y+W}o3F#1v^N(OV5h z-$$!XhtwCtFALDNtv|X`)ISGpsR6+X+{E&Sm(BDK!s zQS9^rmZEs?(E8AOl6e_+R5bY3sf)2p{FUMveQ!4sJF|njBf7bi>C8M?)rq2F;=Jf3 z^H%6pmZH(&TFRda&zAf3m|}{iu|Li2S2SB_*}QYmh0A8&y}K1bUZ*zSXP6u#|Xr&za_!|Siqlj0Vf9))p3 zcxWn16_ld+MZ!&&{s61FZEvn?-k!dBnYX0fj}4x%m-9#ysHOoge|~`BleZ{$HAdtEA8-tMfXY*}`><;$#GiNO zHnXQmQ$un7#Wbgt!XKo~(A3=}7D^m?mvUX>wS2vdyNrYm3FQXz)>${RWD)TyD~iGu zYYXx~#p|=2v&^gx4eK&gpvnz}Nt&a*f-$%!o;W>=Jr&=~EEg7nX^FXlTZEf@f&GpR zNDsk5Zlw5r>af1v5%V{EG4Vs!bk-5JJrlivgS0OhCa5{-c%B*q5E{OP)Z#|X;0hh5+vaQ2>Lb>z!%?3Q27ungO zPqPPxe{s0PpHuEDnFb9ktEw60m(&WT7lPNJF?L?zC|iErCWfKhywB@OcJ_xM7Y5%t zmKZmKvkO0_1o_K-xLgEZnLDV<<$iR=q{wM51ryR#(X?88c_v?33QT0Yg0cCinj}b} zZAKZ;bjTyiwo#glVcE?jinBm#F>TSq1VrOXZvln_=G2B>HPfcrynLh!n#eNHeMJh* z?Vcq8I4t_evjo2tCYMAUoaZ&~6)I2}XxIv~^xj&NrFPrZ?>0sn@jSwXG-?u=y{l^) zi&{y`6+c*LqB#@u-YtDr9H`t`5xlcI@lH!fATIVa;`gETr02-uh>vspg^j0s-l0^5 z3jz_V0v?I(EFg4$ z6XKE{5Ra>&z?!cupEe0h@yKgEEQz&k7A^qSihc?S7%E}HK4RvLihg+k1Z@tryju@e z6-_ay{obP4rbK&W?^RMR<5}P?v--Q=ZKxJ?wy4HR54@9$)MTVLOLquAUKJkn_J&?5-CFfyiir;5?2w2Lh3Vm!f31q=A4#LO2T*TB(b`ToDLS5qE|B=+ zBItEa6E*WQ3zQ_o1uIJ@WJCCD>GmMA@6+n-S%^PPeG6==y z7{k}a^oDXl$VLM8v(`j+LfQkJWhxHoS7C&!vIQ=#*6Oja^APK`jz z0{X~Xs6c}tmC(jeP!K&tR!N3chD>Hh#({Zi>louNVAH1_LM&OnVDP;ebGF+d_KB}_(WHDI#>dcc9ke5mtIqf zLEp|Lscz#10)s?$s9(!a$a@XHT4%#=w)v=Q ztS)xP$>5AFdwCAkB{&_Avwv$Uk~l~^(@{)^z@}v9bzuNneF9Fwvaq zf)6vem=NTm?BaFAFU-L75+SibT7Rx+{_^KMae`fbXP^VsdB-ip?GGHJpa1*-G9n_w z-B?(gII>L-S*LZ4ZLKZ+ugg75fkVo}TAWYi8rDNPpi{4WxPx_$fyeU|?c2qsdjJcf z6Z9=)%iqnGy44`OL6}L?crQTP%Qmc(_QmN`vWZShogkeL9)2R~e=>b^Zs^I}4 zxHbC{J{VI2Zf4<{sr`8264?0(QmNBiFW3x6*w%EH=xOEK_23V}oO`TnB1YE&d1Kbv zLyi|jD_ltZnfxiX)g%+~{1?!H4k-bkmUg4u{WpAGb2sZ=si7FVG8f;!oD=PaH}CG9 zknIMIT{liyy#I8wp@Ll=qDjx+OE}fN!bSN}gOPu6-4bV<5|cHB62Gg+6*Z~BC&T!_ zCGI8P+2G~Gn?tP=w>as^5&sQ|Tw4kT80ixAQbv>ul7u1#RE3YkuzXG-nMfm{KBsz% zwK;<};#pv6VB@M-7ohspBpmH4Vn9iukV1}l*RMjB=pnU&CaeY#CM_m9h#7?dbumkO z^PZ7Fv3YwGB$;OeS%0a{rXlS&gT5gsnXizFQV)WkEhh7wtw| z)zC(#*@M6D%}iwdOb z4j0vhX;0tv)tKu*7#6=u?iQ(6%4-?YN2%4wG0QC_;-RsEde|uCYoVVs!Lo*vSAh=k z5;jI#_r?e>S1$@-*2y{Mrjw+62pasEpo=d;$dE3NzQQa8H54Zvz99$Re!++8io}tb(@|)|5U!<`h%@&F+k8Leq)VXj znSV;i)zF$A$t9Uj6yw`2w=DUdjh-QvY1R!~@4Vf0JV!(~PInqJzvFlQXH0e=$DsIp z`&dJ=CC()oCt&==x{+Rie--)4a}6^id=yZ(+fmP5XFAH4n9d1}P3aA0m+ByuD8=)D zz@3ZRa4SZP5XJrf{Czj%7{ce*=WvzV2c|G)p zXR*@jk|eft-KfG8SSzjOuAc^!lU)cz0~{0YxF2L9j8MqjShAe2cceNaTwTw zq!G&020g5{o(^u!s8`fRrgeF4s$Saajnu6~(fkv)vST%4^Llp5S zsdh5tq(nCmW&dYBEYJicvkGa)VNCYaK=YI1PX(skPHqNZYYVyANV@8#f|p$I>$d_^ zg9_4=qqFeBE`NHC;`1K|2v#y<1ZJ@U5wQ$OhEM^Ptrd`urEJVOVOSqBSYXJ z1SE1PJi@<;aPVkI>>x0`5e#=A*ud(Xg=U@YMM%@1d@OM&pwz)b<3$Qp$ta=n11{bY z4Y+{e?DCUjNsPM+DkK!EvU}v+cMPEtNK(#HX%7HVELQs0@JP{@b^ zxD&91V8<{A4(**)aa5lD~)0Lg zd#>w{pgTXgqhASF%^>yI7m24jfR&M4V_uaU$8qb!a>M+Q>4Ciaxm)^Hz?G^dj(j~%N&)bO^ zVHL#{ns>*p#bmykFK{4i!$oghXLu3 zl!hS$25C@0Nr&!ILK>t5q@=sMhekRTL6Gil7zCsRq&tT0-^2SF=bY>N{`2x0X7;n6 zweEGVd#%0pdphiVwm81hmzx6(p)#cMOLXE5E6&i^1^INb?}I!oQ`8nLmH3P`__(W& zqq&~bGUnQ1H@77^V_9d`gH6Pml=Zr+G&jch`Z&%A(6UR-WNix<@RVXnPGEN{Ag61k zyTYdSXdHFqt*A(6BD+UobFcjn(IAmc1hT@A`Y1j&qG@yeXNycbNHH^IGEd z;lTYn@&^%FHc8E8wMl}bXVYlkj9%O(`XE21LBx<2MOsz#DJL}6=>E#pmvTt9oc0d8 zB`Nil@g{5hpHC3Ph%)*p6C$$ssRYEKOQ~?vLBGf?GQYrhisp-_o{KD=6=6VS=*^Xt zB??xWZH$RYIj`jA zC5X3)a*xGYsb!I&68a`{$8)+HUy$<^xw!|972m17zr@~$DibGE_t2#oH6c~IN z+LzM5`Dt>Y7d57&vWMTRZ$T5eD5p;cJ7(H5sTjcZI`FqbR9whm_rtNX%Q$Jo=xpg-75_AuJvX`_fsDZzg(UtF7$o2%5m6x>Y|GGQ_4@D!xjAnbfyLNWY~%$xPER>5%i5dGz*DE@}*_! zi80B;h|!OgDy2t;6qxjT^c)@=_P6(i1o$&eDx=L>m%}AWwh2#gS7?$Ms;u~u==au6 zgi0+xbNg#fD`tw-NNz$B?Q%*L>d_S!D@rC$=+-ZlMWDoK(d@A` zUaX}R+8*bjid%~pB&0(ZRg^j9;9zaxAiS5`JQa2kdNrMdx)g3HlX+*^P+M(tNz7kqg;7c?;vjxRdxw zf)9!W;8J%Xk(P8Z`b4JSnI*j?34B3|(L5_Ef-u1hg-XxTWvy5JPnK4^F8K%z%?DOe zgvIrgKg89T13bX%7bIQc6kp#?f6^h`vR4DjHbpcR>LMK-X=zC4F-2G#+^DLaVRs$1 zoZfIWEbz@fF%%-`Zq7HZRfhua>z{D#(`!!wTt7<;AOi|ox!~;6=qxy zJ-C`@W}MQ2%Z^YlOg=|ijGI+z>=}mF)3eWzUcA)_$>+O>uC*8t9KeUhp&CoVBANmYFiEyqt9#^y;7b>uLeP9s(UW#t$9ylIN(w<>CtA)t}7|B zpvTsw#`LzjE8#-gP@bryg5|q=Q~eL%XU(B^PKDT!*`vP&MR+Eo_w&cwFn3G;Ano7Z zE+%KzX1tFH|M|2sDl*xqJ0lk4iOt z$vS-{sYpL(zdyG>?sqW#V5 zocm=(a(0#XHTU8eCpIfl=Ig$n$sYANqG#?kU+v8mgvJYw5MxwYBfkRUGBdd^(dj!T zq+Nvu`>3XPNO!XpD+4fTy%e9>6Z~)@%0Fb z1MvzHZpeYZ4X`P9PrVzUSTC}yJ){`^uD5i#s5skw)P8{+X6L;_AGMV60bNIpoDSEn zxzuvWV-B>s=siPBt!--;{aJOMAwBvOl73zAuvm^U5F7e(6jnsgS43b)wo!siUHA1T9^KJCaU28}c;0N{d-+bq{A|N|(LhVxFVw z77Z)m3yqm!`{hMPA;EWbncLun3pl}9XLGab@?{9$<>SqY!w8x(P9sncJPl?t`&*E+pdu#y?>TX ziwrRjJ$Tqf;HSiDMRpxjfx`ggp#I3IX$T+#EA$vKQr%QW>%>!8^lb0q)|6%RPbwLs ziRDpW*v6&!_1yH2Q%08^Z$Ktb*lVTJ}!TuDx!QJHVa|`MT4e0LA11Vz#iXJM{Sq4hJ{3QCp5g zcmCe@|X&mTVnE10|}E9Dx6NQB>!rW z&*IU8$&O$KyyRp&!bgjc^c@TxH8-1bp$bZbGgT6>@n?l>rP;7*O>OrGVJU$i3oBqE z*w?n`%R;IwaNcbWjAZ+&D>S3@n| zAy*_zk`VK(+!eTct{t6q$- zylYep-x6~VUjO9`Tv9u%!j6iK(~j!bV^F7^R5e+p6q$3 zbLh;)<~3I8QgC>k_mGSP-ngpO<2r-tnOHFrWg#WVXHhsVvMEvLkJw`rUTLA!_`rff zhvXvUdNiXh$l>d<;6B34i+!<-N3n{XG8z1^tISjJ=PtvleEFL_LO9ceXcln~Z{n*J z)AFwy$5I}PWg3l=Y<3VZ;u}acyL#K}L!b3iPbTb9#5tD+l3WIeHwrU1Hty2Zm;9q~)y?7&8|Kjh z`oHv~KLEi`n8-zQl{?;XwLd{?F`9Fp#y9aX9@5I_Q+$_TACTcQkR>_{KQH)z{N?k0 z6kejjfSjDHr^6HHnf5dWQWjCFB-zi~9gtSVYKMu#K&%&d&AF|ju0DP!*@8&tSj>na zJOP*2r7W%JQQ)3(N=X@iIusNXSq!+`JbJoVHmnM)h<7U``toH;FUS|yVmOy5uUVN6 z&ZRJi42OLKBH_b+cq9ei8lX*j&OA85Mw@t;DdK(moPl;z<%|_1D!Lhx0N!hG%?Jd( zSF$omnYcahybtSQk-FcX4>7}c{AI0W!5}!UmjWi~mAiZNwj(Yz}sAG9D@RhxOQZ|NGjPb!|7p9&Ac1Sw;V6X^ec*-%VXb}Jr-*E zsG}}1ioB2IOqu9`$^;cmS%P`dqif2Fl2-+L77gjq_M>a&BqumJ?%CVRbuY;H zB@<7=cgVPm#Jx^|wh1!0OhbfEd!iZP-ngsqkMyed+5168PfO|9rfkzI%I$<;2r~k9 zBX=PJmxQk3#X}CMUJ5PC(+FzA2@XXp-q1`lEDvT}6X4q^vV?5)8`E5f@t5lKXHJ*A zPY)ZohT9+NURBuVe!RO{!=Qd=Z85rjaSR z5=AP5WCx@2!X@)a#Dr-)`1N7^r49(j0>4sD>_DMIGa~dj!jV&Wu_1s<`&sa%x2`%5$^heE3!TA345&iiS6-wiGQo?m z2W4lyL}HVmfnrwWle9YojOqjjQdlQM^YRKWDx=bkn2B*J@av~n<&Wv~^rBH*i1#Xb zizN@c9Su@4!Jueu0ynYT)-Sdp)SnL@v8cZdr1d1or&W*C5!1oJXrtQ;ziuV&BE&pd z&v0k=K93WI`5(}=3hDUMp|PCbcTI|b!eHod@f1k;OC7L_^4oxXuGMgl80XtyG)$3F zDg5>u9VIQ5_N))$q2FwOwI5#}!3u+czQJ@qzf+&~AWqxG)^z<_CPk!vSE5_sl+Lg< zs^zY0~!?+sRviK#6(IzML zy@l2h166_6eB{s9O68^D{TyMDMi`& zOjKS+f?4|A$W%ljtnn}B7YVPx`V2e8Qd5U>(;rUjA`fEh;X8|zFvW~R`D-5*Uo)|B z;~lvH@^rcA$@RPLIXNM^>%7~wp|qr`SnjLAzm zxKm9dWjM(ht~2XNNw0{sPo2@k$;c6)oOm=JEdy>8Gp`ZU2a;)uj>k;O@Zb-9gpLD} zX*gX%7ygfKe2?oAuMer0UGa?LYnvZ$VcoiCbK44MXpE!mOT$S#)6R$psW!sLc_?7H z8}Y|-M0bKr?>>iPnT}xn)D=3vmh-qmQ!$<-yE67 zmjDSpTSb~?Tuk|@9gE}bFM5bqKrF2^TiuX1!^mS~$cUmg5J?RpMadC){LG1lG~dzJ zN}($(QbT>gY7m2AJLK7X-=~mlb?rBHLbBXY_8t0YJN8>#i8t4vbz_)a31y$uF#{BT zxjS;8AH+yYBU;D`#YF*zPh3*>S2JaLa5tSVg-_=^{CuEXgfC*33;q%LKHERt_N`AD=;$KQyYfy&}g1QUVi3m7@<;uodtgZ^N@hbGi80wR{0bY1$C zda+QIMl=)j{%C-&o3X4V>3cnAfqYG7@)`|z&`(d4d+;k)5Ng&L97i2U2xBe{rh;*8 zJzPCVvuRFA*wplNV8eVioa?gcReN+TX4h499famezhB8rRKZH`WB(S&9xwR&z4`~A zInTSAo$C0!2A_@U^NwT;mxt!NB!j~%CQfPvG z_g&Yu__U$)o!Js9;qbxJwzohtTl!biLeJ$dzIeNF3o05rb-Y_&U7{B7Yoo65WM?0) z^Q&ukh1=QcHfGjFzX0YHD^T3r%U>m53w5rQu6|L%#OK?9$GwZmy&5zVKFT&DAIw>> zRq}-B?lv6jT@vk+&T#LuG0L_Q?=^BPMxlu8<1>C5Da{$Ow_XYMv}%j+)b+K@{n_Ja zYly9o>U}Kb4NVzJea6zl^juQtz-#G7Y(9BWB1=hpW(Nab^n_XflqY zHlAt56nwPV;(co7o#+Leu3K~F*=NgW5v+0PHtg$0rsnOY=Ueb_C>^_;kl_NY9yF*P z=|0>U{4Km>5nvox_wYyCkap|K4@b+KMofNsUNlm+HdAHwFN-Bc0{7ra(qD^BMJS6P z!_aS(TWO9zpZeOenG3$6!Go-~XNTXCLA;?QWsPuI;*kaC1zcT(mOrxqJVC0eBa-D# zV&y&q4(<01&8$VZlMTO0DHv3cOJ?!arRMQN#=0*?#EL2U<7+d7Che)#%Y|2rW1dw! zCq_E5O`_ZjqQ4z=kxsKz+51{3lD(0mluh}P%WssLffl=+fl?L|Y7IV8L0a&>yV2T= z^z-rRmwGapMJnbaVmg@YfSGPYy>*p#8%eiU+OXH(?&Z}HdVMJ9!v^t+%1(yRhWPoo zF{47!=ECLli7t_mw>{*8ep;9ytTxF_^5x;E9EXV__zi#bQp$&7EFusz7K3p7Iq@Wv zu#5ggq7JA)@0;#|{OqFnv!C6cj~zIX=; zj#c%ys-Z2v5IAZ_hc_pyPC}J2C(^4{0wBg#mbCt%6DRsCCrGc2NU=tto$2S4{dfqt1SOw>FH{Q@OC zw0LJ>U`Nfc-ZPphlL+#;G?$wZ5MnBxX5JnbeuF18cQ>ta5BpH<`dzLHiE6Kqsm!Q@ z`7R{u_l}DtoGHSA7B(VxXm+ z9(Mf2Xo1-pZBFW{;AYI!VtvK`4DV#xRZ8<1u7iWe`xkch|7XB2^(pT}CC(G;0L(Z6XF*3|S4|BXEr*IU@WbiBvW`?;g zJuZXB!_^oC*ADgok#w>DrZLI<%9f6ODeLDE_0rE)_h8<;_{{6ag)%J|fx`QATY-2m zxzgx*dJY}2o5SWsepg!E3=Vm}`sFAAd-8lo*^9-&2Bt<9k3EOX0oSYrc!c2+*}gTr z^{v1q`Ay6z8R0`0oA~$gicb`nwzB5V5>of=*Wca#sWeFX91<=wcgsegkufdRMdM7X zM4$|?Ehwab9$hNPjMe^&yeN30Q++{;_}QQ^w19H-NBBE*q#aLcbdYx+`BZLIgs3J) zR*yjaRH3x!X)3n4ts#B%z>RL`gDL^pAC{J}+ny8q-JROpB_`DCDCvMJ@WgXP#iSLq z8E-?PdF8bkvlEFg;_?~MX?c8XoinD)7^S>?BCi(co2d$z>OPf*K30P zoJ5zJ7jz}-{zUm07TI|;Gy#Q;Tpj7g=yQDnn`-KN#VjBl?`%9wj1u@_@Y3e}F^F$V zakz$z5AhCIeUL(N0!?j0&ie>4*>s{8fFme%Rx6o}xd);bs&9c}lX4-L9?TOKvk!Eg z*I9wn&}%g$UBj0|h~%J2jrJT9so=-T-Gm16w?$%b=~>9HHYwrB?4q2K14dXSMt=Yt z*#zyRO)^dFLQFIz8iKpZX!6*zlnDne5Th+x>#TfHIT|W?J|1^4|LX%Cc`^UWsy+OQ8kWZ z9a&GuaUHciCAA>gCO^BLYSi#}L8r$Pc|HN;!E%M91V7+wmycwxJ*Ot46tl>~brxknF^hij3$DB4Cf2SMW2nKAo;t|RY3PmGBb z|7*fMpnq70>G=6pVCzxl@w;Kge$i|hK-1i#SLp9rp_&oU*^pA{sk}MJLLy{*!etnW zfpGk6l%r7ew%ED9LmYMMOXZhVzje+NMekq{Oi#wMuWkP8j>lNF-!(#_uR@|lul(sJ z$JC`s3i5a3?tXPP_}BY*AL9?>gIsAJM#ZkHUoy=Rawve@WE8Q7yH6QXC}>TV^;8pGesY|lj8Pj^aM3(6inuugMQ zOk=Aq-XL5F=g*brTz6yCQSpjOLXA=hKHdyTv+r(5UKX_3&^~5vtoH!m3I-D(f?MIc zFdod)vB8lkmi#zQBt=5&mr1RCD;BAO%+SwlJ-P7E&RWyXI3^vatOG1BGHVSbs1B*$ zR-oGTd<%2S5v-Jp0!nU41+V36(!JEwc_H~Lb?N6RB>&CKL>UMSbUHef7|kjUsr=`B z0B!bLH6HohqiNy|P04@RTNg6k8f~u_Mp$d&^cQqtd?z|9K52wD4%xv1%t|(>6M8?s zI{i~A--yvHQb?>1H=e|Z{>=}46Al8f1O!8m2tpqs`E|gvQ)*VSH9QWHWnbH->Diqm zXEZ|ND<7DnW_xxkgI>S}CDyMO{R^P$MKmotNCrepZIH)RG&V9^`%*=-m9CSCnkX5} z-g2{RW0ud=Z^=ul=Cw!b4Sv2E55A$xOb_n3Z(3Zd>|5vphxLibvOswbQn`#J)xC}= z7wIp6<7>h_SX~I9o;$B!v*blB5_G9;# zcp?@!bE#S>Z;zcz_EUD+T&G5EHwbm)<^*#?qMcCqhQCMM-Ynb+-4%RkOAuDZw#`x0 zZ1+X*-r|`db~Q~wo_A>UmKNA*BE@x-oi&D_z&tV%bmRnel=SY;V)U@yF7F@_^x{?_GyTI97~)ZdIZ^l`+rH@ zS~LJ$y|WzMRy=n2id537Q$iOXWT&Rz^&-?g7X}~B2hLmL-qP@7=|Gbr;n{hGUbR7I z*o1;E)!&msNUHO?p5+bQsq_H)0QOOw7nB$SS6E^NpUpi+U1!MguEyBXB_caqWj`Uxn@_sR}im(kA)ZU|1HV9 zLPC7|5`1V(Ce|$zQM@!;M$m6t?png$*WNXH;PuxdM}p94(8XfHeeh{{*!}T0xWK%X z)=215(|F17@8ho!X}KZh0Y555Mn!8QvKmPFqkPCEkT8*nB*0mCTk%Y#gF{Z{yXQTUKp}}zh z*IAt}dtryl=dEGK%0xs*;`O#`4^llkf?uqcqSb2y#JgU@oK4E3=qpFumvIqU*Z*iJ;V^s`5nC@*pqdmSva3ly>jC1^=J zBWnAYe9x8Z59PDxU5T?RO<~UjXQz5W7p9=I(f6Azf^vPJi^Wv_OhWTk&?WBK*m?*@ zZS2Bm>+{Q3#}t=hV9R1Tmk~W?5XB+!@-M-g0DGw>JJ!-{Y(bVH%M8zPp2H4QMap0- zI|ro$+Fg6hO0*1<@kb{_CJZfIP72KznY=`k9f@Y7uv~MjITDiyq4g#Hvt03D>&hDQ zGzoScm;GjSWt<4P~QREVqmkaxc37zN2uO2iLm z*S}FJ#o*;#u0r=wrb}o`@0aAHqZ`I~7tnG7&60s1iid?-9-(zcH3iI*RJ@tLJC9_( z<{*oTfW&>?v-9P`FC7ai2ddqVPIB6dGqp)V7I?U4?Ez+#gOF?xA&o&-)ygy8DHMu% zZymYj&}cWBg|AU&C}(y;+FZ6EWBLr4m1t2)t8off!%+&mc3+o1fx}odc=xk$wgJe9 z&4ofr9TPwC7;DV}XPB86!%EHEdCG5X@jimhb>zKEMC#ZTHWunuw6Po=F(J1Vf?2qiN?(YE&GN2i@DRQf>-0V@d}>gm zu#|Bwi&YgPnLx5&#QhI01^Z>7h}o^hpPT(DOdbYGd%`6@b_*S34I+=4=BDTAPNKP1 zg7$K$VkVUbZKL2&R80q}O-a`r-L5JyY7RTU#wWqh?Ou&>V@i6^oE+txwl?+B%)4o+ z+2YTF--XR5t-$f<;}2w?B009z9R(hp97_AUG2BY$K5ZVod?Exo)Y+&9iY)P>T989B z*Q~qIhjJYkOHs#i`^CF=wbjjs-}R<*fZOIE<#Npy-_mn+z=+#!r&$PjgDQKY9tlq< z`{+H%@`WSJS;lc(qi!|GrJi3aJs&=!Mn7G7^!||2pDN7OMRm^{OUI$P)p1-(cOPq% zzSGgM%duI|L22d61E`xwfgrI%?miU<^7P7*@IJ?UUwiwET_drTs#5On8NF)YuNG=m zCw%ai4W+vuJ+sX)&s2wx4#Uo69=tzhCR#dXf%kCDtB|~VP-RE&?N}bc`?B$n{V_+r zuQP#T$k(*mUXc7RiHy3WW^^U5j`-Ul#|Sj=RUlk1)l}|Q$%~oZ8hR#RQuM{T`fY~1 z-0uRRZz8P^HcGTH>uL};Na?-2y=lpqx*z6Ewdz=++P@+qo+v_)3DtXG$d1^z+0nmGe8?d^v>fz|w?DkGxPbQjID)l5X&5Up|$S?WI66!($%Kpcvl$Pd2;jhJ(L$^7I^jFf%aDAJmz|%S>NCo4 zLa!i`dPR+~(Jn#Iv7W1C9Iv#g>gC&eGcYdBj zpXIWaTeo@1Nb&@xf~*lUR@>})^U}sirg`PH1lDG+u8k~6baSp|@xZj@#gw!IS&EK5tyuz^9e_L@P z$LL0TPJ?z_Otf!)#0j0IS3+6wCp~A^C_%n(`-gyuFJutg*;lUSnAwiTON$v3rds_m zFU*$x>$pswM3&Ls9kIT{#@%a($qB6pSX%d3eP=c6r(wKrjh_3i?$pC^B!)XtOt4Z5 z>Kste54#|J`kFj)({g=4WApjtgXN$Jmqh4Ve(`M?uKRqf!lSKtJN3F@|mUCNZ%%Fes$iTe`+~VBG_%VNsxH6@#C|`DPtRuCln}bewP9b zNrW(vB!`Fz6i}{`Cr1Dy@ZdOv`{(vU-!A^_K-M8LX%c5Bu8FX{Y&VyS5hOO+QCKf% zMpZd`A@SX8h3sFg`2{)+UdJ16pwerxJ@Li0+ftMA(@5EaHwn~|=JG$ssK3IEsMNj2 z9)6X!9vZ>(b+TMLf>Vhi9&+13*`A(ZhU1r+vesn(R zC%BR=Zb|I5$-}>rHFV&*C@H9r)H3qs(n*ES+Ycy}TgBE)k-(~sZ5V}UrZV{LjHqjx zZcb;l&YKK7f*M&7sFSL#rsLRt-XAJsMF)v^c{tU8;#K>zDIM*^vb_%$+XM}Lxt?U8 zy_sc!=(?WN{^_z(5cA28JOGE82+Q7Niv^qJdsz+?rWSm_36}`;>Tq$b`tw18B3YzC zH;G~qmxD#YWyj6Yd@a}6T&d_!tYv|p(h&S~0_rv2(Xw{+hdYf-mXGNC<~{G}@FyiQk`=&+ku_8&|)h;C?GT?;xa?@`QF#1v^{VSgpG#;`Qqd z4aiW6)bF%u8J#9`>1T`A&1I$4bj6MvC{S3h$0)R@yGtj0c%C}6htR$v{S?#`~C`e>_7fW@+-2h{&Hp2di| z60|}Krlut-__o zB0xkYvLJXNCl6&kCnh_8zOXE!#}-GQB1Rh=3Ta}^Er`NLcHW*~`}N7OCyL6oiF+=c z{I6i+gWMl4D&N|r3hELzt{?s=z!dN+VwoS7dK7U4In=V=h>?l5)`ShO-M%hXuNCltLTIE{_A#6G7$*z zwe-*~9!oOb17!VnX~SsNOaDXqfN!Bp{=W5B*@w_(&T>DIrFLHb&%yZ-3BLmZwd4 zFJZrb`Z0~~1U=sJ<;1|tvBHRa>I_uU_=yk#9*x{11v8hN#ozweq!=@hD*#*JEvc5r9~X~t2Ev?Xp6}w zZ2}m&#E4vou3*;{7AS0)z%BPC(CefIQ4ajqQ2Ij=jFr1{SkWXmfa+ZTMrF=4bfE_gqlp)ZM2z1k7v8(mFwvSgM z{hUX~7W5Yn%`uVCJHLJ~q%YBHdeKm4L=%bSrSpbPd>eRRwZ~?ZCh`cAmnCWwg-V&% z_*EY^M|a+XBt%Mwrzrl%A|H?FASX*l5P*^ztZHYvehOoHCi%W&-|A-h?;AIFMY>mC z2qncE&-gwjh;XNr6%;Vyka0hzpeQFY*T#LbQFB6UaKZ53W^#g<)_rtN7xo}va#sN` z2C+b3ua=(WL}kyoIC@r2?1WHMT9%^rR}e)-O^`ntZUG7wao!j0n)++ViADE5!Su| zCSXa>?>>CD@Oh-{l)T#G&pu0MWgyG`e7&@XDd!Pj3XHN;3MXchP2;ms1g2$Pi$+*G z(%c}Tzdpx3aXa~;vF_O49YGd9`9!zb!_}z{R$`%({ax}eV%`6`xhzry*TtH_V4WE( zqtd7=Y=^<>c;mYT5a~b!JA5WH-3-5dM)ZgfoWQ`XvJcp`#qLa%#dL*2tF_a-B(4c2VHLzq*|K(xc zKxum_zt}hnrl-!{+5Upachs-LX0yPsPvTObbFe`n{nPiqRcb_xN=GCYWU*LSvI8(^ zdHRIC^pq@K&-tgLD{xl?nbvQWL6qS?EB!B${Av%pXc95%46!l@_J$x=5*5`Px0 zH#ju^+cxf3s@#NJTDuh1D7kt+6?4bbdpQ01^b6CuTD$2ds5Kh9vo%WTe6N^%2iO}} z%amsF<&p&JjPD7|Jy1cyrpG&iag{W59bY>V&#V5=^`awoCrB6y#Y^&8O~nv%=%oYb zoRs9V1qAV}nJUZMhrh0JT|C3zj*9=WW^;Qa7w=AP&@%ptf=%P0+9$^?rfbe zsw{g`p+}Z@>7mS}eOX+X(GPhg$p2w~zNuPU=wBZTfYy@u1~@-~M_l7#^7CRO;vqJX z?{^OQ6MKBOXj&gPE2Qz7JfK^N6mZ&+?g+ve7!a8lAJ3Cx|Nh-$yb|+<=GVWbM(Hed zB=E7yOwM2z3h}lUt@Jhk>GwfV{e03b7wvNpg8KObRBUOWgUPaV|9;fdv~1?dpzT03 ziU^@-CG=D3lNy?T4$y_p8Pq9z2h{E??rv|UpMbEMlJwk|J%M8SP@BU8Z94BjI+;uEvuU>5=X?P}6{6%!-MC8&& zc)wtlX_k=l-dv@}1>CCK8;C;{gJmi2-XMXuwaTCj#OEPzn%o@ScFKDyD7;Dv?o*4& zr)+MP2gaW*wp*wEyv`WWXZT<$mgc+LD+|D8@4e>2eHozC3TJZ;O7(}`6k`DxgcSq2 zUyeQ(qi7QU=4rCMP^Z1QlqO#QP(>6{pE3_*hQS&5EkxtuFg@KP{-S40t1AYLRR`wP z<#rkDf%U{U4|pHbw<_M!a}{{^o9*?;-uOpyK3d;3bnGP57jXf=8%pM)r{cGz5dvnj zZ33IINe{Y^cJiG8;+KQTvGFz~ruSb00Cc3{0gH$0mcRS)NwC=iz?8A$&9S31RAZ&N z-M;`_^bo0+43_>po|Am$o0*bR9nko8eLdgvQ+VI=t#S}9fpYfUOX^#uztQ)xG8Q8A zw06?$>rjLiQ6u^se^7$(#4Oc|4@IkrxUVUE-~X&PL9_%2+Sq--`vrkaf3@JCl^)WOtU2*16rb_uwVclVg$Ij=R6_@BVCrfl!BNDvk*o z=1toBdS*7=`lr9h5XmtMf^I@ zD?z=v>rav-iliWq;48en)_l;8wJET0p?G@z)D^z+)TAH!N=@yE*4L}p#GBBpXXDTB zo0}r_64-qc0phn{iVd(Mq0ZjmBdyc11H=234tCQ2bq!G@N4(Z26f8SR9!rFqK(CDS zH#699|13cE^8qevHhDewDeKEapVzje``AD~jH^@2eG&gSq0ED!CU8>Eovpl-d4Olp zFSEKm)r`GI871L8{-1Tkh!WzrcCi!sO@I3^)}O#axZJCu=gROCn0KX>6`i10rq}eL zW>$PKQu4pZr2G*1prRuv?WShIOQ7i*K45XQHnbTfuqRE(C@tYS#W4AO$UCkW0+_o-1XB!p?qPR=1W~GWBKE3HLQVBJ>i7yTd1utqC%e z3zri$Z~|@_eGL_nk3$rR_1^-mf=)Ad4SAg;_uTb#HLgmEy-23BW3vKAa!? zYBXh^Z#ErHPr0XWffp{`?G(ui1l3f(f#U?_uBnJhLu(eh}ylV2UdW?jOi70N5Qi@QL=r!8tg<}HP=?aq2^ zHkce+@4TP!zJ9Y{hc}^08GmVSri!H|{GMdGNY0!ng7xsb+r#9kID5v5bhNRBGD=O&V77NWYbP$ zgHM#{XWnD45WfPz*M2(9T4M}&%*3BRkVq7k0L|gD$}9V9leBR&$Yo6L5w^g z&DyLOU>{J|tYq4g>VpaMMzM^18Id%s{=;93-XKM6CNB;Ijb;^paXS`ao_94an#dQVKm-Cuh6iUhG6I|A(?C4bDpUZ@8; z*%C06I_5n3B;O z|1zZK4;#N{XnM%WwtajEr4HrQ9mbOYD13Y7wNpOW^Fw%mgR6}&@SYJIIg0_(hANOj z9(9w($fW;`6`!IJj8VIhT(-2n8oazu>FO`m(vI?kS0r8BKB(&7Y&A_kx_m{6;Pa1-7l@6wzumFu1(N)+vCaX|+-v5F$DKvSWBN8alQdxCear3Z`4UV| zWH)rT4ivSUZ>tG^USj2IB(C=cWsnx`H;BX+wFBatVMuoXCss)naDH#}^H_N&C;2t4 zHrdJatGZ722Yzp$CmvbZB|T5D+5jf$el$~DYanqxz;*iZg=2r>rRLt4skwG%2OmmW zd_dYKrwFOPy!B}W!h)$ppfGja)YtYNa*#&-wW&_eihQFZ*Tc8iy~$C==zCg;o2izi zea4MJtF52^+BOkVq2kB>d3RnwElHYpT}v^8Pb~t;f*e3$h9#+=98svJ4SgD6VnKgT zwqqD;{4W(Dp=(X{RS3Kdlum%T5?yF&Dw_{gmYSjLg_%6n8j)mE<(O`5kL_ zk&QfBU3_r>X_>kQdsX*H#b$-T5*Vcd46KGtOq8TWjqHW7l=k-DQVY3hX0GafR7e%L zWT)sqAJv-FTyVhV`&_#w0^EL3z17~o-E=lTuw4$vX$u-jcIr0$w|xZWLP%YQy7G;0 zOJG3|kd2(?f^jJ9tz!3`%MSM+NCm`hgCbuN$rV2UXJFLiAeTj7s{{YDj2!M3u!faD z0J+AfsoF*l0`5z}gkXaVp}Xz(Rdxxhy8qok-*=3y2oJk-Bgm9jibpu^$jt^du)*)_ z%KB=fUkYdgGy~rKV(S;A$tAjFmKsrb-nK>7z4-ZdQ+83~`g1&4kKUqQ8~5D~fe4J5^jd!A?Hp|W53Y#L(%{+aM(_ecNvwLA-p52%t+;z49|OP{?}|KT!}0)k9U^|Axo7aDWAP`V`|1yCwY6m4)*zImKUvj33Ut4=tO|@p z>k~i#u>dmR^|{^LIWw}1dopX{D*Na%L3b%}$n)EiWC+r9c>2#2;UfRyT@24A=7B3#n`=SSi#)_oKl}oQ*wk>ugclUI529x z+8_x$8cHd!`@8ok$n9)u5oES)Lytwf34{7+ML%-kKgbtOyaZTauN;#g&?|k<4E~eK zxwY8KzE%9==KsU&{_{`YBmCB*C#9$Qo+m$^nhmFybl!`rr!%44AbL<^Ed{w$mR4W6 z6Ty3p;!b+0s5}4+Olwk0{ikdD;q1R%>=~hfN9*7aDbIn(10l9!mTwbw`NK0CE^iEi z_LjQB$L`r7Ai}5t_)^ghvh?Z>{~JO6^5EZOBnysCa|L9-nllw9a`ytE+wH~r5j>6b zB7$1z#mUwWmhCW>vbU=V%cie4j8&Xh6EsX;vL}SjdOlGH6q0914!=PTrCw%Jw1T5+%lBLS9ssP-URPwsmlOTfHYJb@?*q6VPkP7 z+o$PO&VO9*k6Hg&A_F?Ke?Mlq^i9tIR*65QU>@OmCW8U`D0BU0QfRO9p z>j+@so!ppw^Df4vlRy~NumHkcotNFf0-y>zT)a;4ei$h7f4AAHG!pasPD_}NccVcz5f0v7y=l>(yuSD_^U zGqeVX=-rp}I~agvrAb|9-PK2f zlz)8X|GvC_3~2rI{p~b*dV~W24Tu)Gb*TqbgfT!p`Hy69s94P4ok0KYbm`e=2x#C1 zYiV+}Z`DuV2WS;pdRRB6Wg3LPedrY>VmDf?DG-Ki+m2M|n$H0*9eBj_x9xyZb+h(Hndl^8O>8E}kjsOwX6kOX6A~aVI6h?B< z*;{6J23XMaZZq*EPTAxA-z%;}LBd8Y9|1~4-Y;C?Z>hx$rXveMVkQJ3ZC)$XHdw&X zBG3C027K`r7!@Jmb~W)i34)UL?%m4Ut>Tj zvzRE++5|2lk_H6rVIB`HQ^b92e9B`qjI;mmy}b{*q&CK}F#FW|bUsJ`*kXnIVgsO= z^>Y857|?YroC5+Ba`nCbSY2x*iF&tepXvDM-1;AcN+5yXmk$C?=}e7qx--qAZO8Lc zIsbj^tJT{mx3^l1-NE3$`qi*wv`8g)v^SRi2)@1Ll~&`Gs*oMsO6?xb&5*#H3aNMVpoqNRgZ1dJ@j1Yr8Ue{!>B1W8mBKgXY3C-| z+xE=!@>oWv!{#4u{afXK>~G{6SrMq?tX6@Kk^nZO=e}E2a@GY#N;tgB*`(}|sEm%v-jPwZV@60B*&!$M*ko@R=lEXl zN}ulgd*7em|G&q#zr^8vy|3$ft>^Rkx-I}uXMqCW%5x;Pb~Cd^Yd(@mR-?jkqy$^B z>t;@J%H~S2A32|l9^AI*Sfo%IuI&YjS2;-U${JY zfgO}jthb<4;=1G+RDKCeRUZI3hFMSZ8pR%>F z;tWmgYOtW+!S_XY9f;-nw`iI~R8o&yaI!&?z}hnb0|mdo;BZ1Vk(aliN^RcawLbs?7T?&te}Ml@xNcVk@{tph zV-m&^I`7=HoEsxX?t24-lO97%)3iK0sEdW=(t+V_V z?lp9WMsNQ9(x8z4iB+aGAYje{ft@X1AIYkEBAB3gZMa_HzgV$YpoSF|GM6ls#GVqX zww~uKN+tFuS+I}EnIR9O0a*BwVI3>K$#~)I&eNc+CZHV9d4_WWiIc$bM06l`jyM=K zIlQ743Fk2>op}L~kJA$UgPfbWInNjLskpa_>$6pE$9E|-&VR{8YB1tUB17Ui+M8uT z_Giz$H8pSbFAg~;42MB$t%xCJ7dob?=?WO86395)TMxjPvw=ZWD&H|amALB>#t!88 z<}bSjv)dQbn2N9uPVaRXRm=Y}4WJh~K^u?xltzAkKb%Ib-~5S#jUis#$Pn0bHG-6_ z-mLDYW8w|f-E8&7`Z z(A3KDWH`J504c^GW#;`wTi41;;`CmniGrD(O(GucwH^Xm`j9e-)_rg#b+SH(d~va$(mGc>XbA=#C+d zYHhnz31Ki$s;@Isx7njKuzCj|%LA7oRS>b2gs74D>vF#~Tk>E(D#|v_ynK+PN73Wk z@f*2y2bkQuZ8@I65I~xK#k8|K;GI5 zjG`B+YXC%Je7Y>0?nW3W9x;KLexRJDc%Ww_^6+`8klXJnu#^-QPTY`8NrIsz6B$A} z^!dvwKDp)#hc#a&RfZW?xmp<@;VPn__!0HpyL*qUzs~>gqsFbqOgcqt2H}gwg?}Kn ze})&SGIFVurjnQiRG}*S`fPjri^vM!3Ch$P%<|za@&j`&{4F{9J2 z`kAH&)C{Nh+X;%zqEtUzV*9n!GZzDbArFBxk74m3IC(bC+V}FBDvQ0_^TL|S;&vxg z!N^rB@ixJiQ_UYfFeAjCpJbFs5^j2~w|W0t&$JO!m;j>d+~%XBp#QfS9c0I~yu+oF zcLUhB3VBkdcdoWn5Y*#Ju2FTBIT!5T6!~>x}F& zP&q;2y|bLG7fZ}1K|q{@z%r96AMDYcJ zjX(&5Se4R^Dx5HVqs$8*5tDCkkZLUdDpkM8;ppxsc6Jg#2IMuHe7}S%8|Z?Xa4p=m z-H@>ag{nT5X+?}zT`fn+&WQ>_oyy_>9`Q`NX$UF%QZC8R|6ZCSS8`P8=bx&t$EVo` zLXgf9y>K%VP~6`=#OzqN`B3cwsex)s$7-l8yAv!wy_=9&Mz7zTR^02Zqw?7g&q=t% z!HJSb2B5_l2+CC};r+^c=2gjnGO@B+1Sj?x_y(6i2>?ETAAJ!5DtY{U_5&9} zGv+rLGh*C7{dLYM*qVf->(q@wP~oJIzXfu`yI_K|h$&g8wz~D7HlGg+p^$p5THh$a z$OI~#PfFK1lCKGOBwZEY+PijlE^=gDz$|LvYn;>sE%IgQyFbJWe~drPhdg4%%oLfNK{|IA%A}mowWYx6)byP!=qc`O)>H*4?O7=uMXMMW z2^TVX?}lSk4)Ym|7@HJ9x|H+s;k3`70Oqy57;pT9x;c*j+pF*}>!U*9Xi<;$vKkw% zWzig9ent`?jtgSDDgaaX3hHzI!OTJ;7T|z1P8+f{u8V)ZL*mQ5I&dlr6w1PdFO@R9 z0HuzMq_)f(Nb~MncMzLV{sliX!aOFW>L{YHN{!=zr92^>xaS~rGL+XA@mHJEl!0FimIuAI5p-G}#Gr0QE%VhM^Z zZ=Ht6AW9MrRYjn5ei7?wE<@aZptt=OlKBsVRI|l%Mj|fwgZzY;Zw^Yx`gZ}0t3)QY zDwP0yBOS2tZG$Ju{c2Ts2F6f!Sczg3y=x=; zs=zY)JN1+V9{T_saea)UVy9wYd=s#VuFeDI-WMrLzd=n^#P-A(qT{sCI!kYd;dO z4w77`%L#>Kls4|cSO|_8d1-!54jk$w3t_gs0J=bGQ|tKV6^0p_{0>^tvN&DWD!t6r zKGDtKx#6YNT2?m$RfJ!n1f2s-KpvzaZ~vE6UkiD@ztp6sMjX{5f9w(PWvL+UloqW5vs)uGOG+0iPyYqfwx5b@Spm|h{&yzs zU$hxpO*SV#M$lH2be2m;}k{WAplmvi@rpEc}X^wN&nZ8bE^C{N()Kr8ho@PF=dcsu(J#3Oa?)d6U|`7H z>>i_QmE0^7haJ*5jbg1nS88O8{V`hu=7%6@w*@g_AQ7)k8t8GhTfe_3=Fq|X{-b|0 ziBbYw%lsC7ms~{lO`}ERtBWQ5-+HrWNegpYiX%JjB=yjh^&Qy8M1x!^eCuv;N`nkz z1vyBOI{J47uXFFH&(Y-XB``kYIGP$YQ;7$h({vM*7G9i)Om$c}jm0fE_oUDRml>#_VT-<8Mb$;FEI(fRHA!nwtISO7?}6y& z%)67jI^!!2gHge6#J#tb#l1FLLIYYqIusn`S}Fm7GjFtW*XeGtZ@D;h)>DL8 z`yo@Rf?DStk40;VHYFRsz58iWsVQDroTDC-5u5Y5g;@}U;(Z-LKcJ%{e=uZ~E|VH6Dk|IZX9&1y64_SxOkq~j zu8g>nxPi7%)wQr>&b0NBQq@uk15_!Q0L$iOa^^A6i{>+N`=!RTp~ow-oJsERngYhZ$__9(EQ3AJ>DP6_macR@%nvM9PK)SPiV_XsKr zjA2s~4Wd$li_MS0Q{S_a8~~wC79bO6aNz*KG>~|a#U3b16jg2-wFks49WPXz>$+a` z0Ko#djM+z^;v1x&ufA$=@M#6Wva`i^05H37gM(rj0hy5arky*=I-R2K_xM z<5NIUxkOGPL<7<|a$B@A?DhfGU9w~C?hI7f*@r)PMiT0CB7@W+Olp8*Gwie`kzw)b z2SpOyT6Pk@^%tpA@?l)W!|9igH*P5p>133Z{(KPzJP%=Htq4*Vy;2@R#G5StNz-2n*{Nk zb1m%R(CA8u=3K0Sve_9So9;CGVniC%{n|=&bLcz(GV}+!2FV-MlBm?gmYt4jYdY1m zO^g@N>2CHLI$6=|7uN3G@dDzIo**)bILA87wwN82Rqe5krj6~+ewF}wEa2z?)F(Rq ziNoUw1nXeyp?myVB|Pt!Ib#uap|OlBzzD54}xg#)%s& zxv&YY=dEjRwr$Vz90b6h+q2kPBqH}4e)T@#5(_3secOjxmA-*eLKV6;Ywt^;Uo>>M z$X!4ovcMyu^xTj;cC>fy<2!X2k8%L$AyHZ*aPJU8O?}E_-;KZB`Utf+fb4ba0(#~k z5-vfK%(H3uCx@qh`CmsHgo^)psod;)cbJR#Jqw6Fg_?~MG(ok|v}J`k^I2&BPT~II9i)aX1bF+Nkd4e{ z0ODtWSo0LWngrz}MgJ~su+KD?>8BFb7$2z9=?d@rmNT-HL3j_O8re5LT@p|~^>o59 z_2lYA7+)5244o?AtUFH!g2t9!Lhh}M$fE+E!bTJj0Cj++9}x8f(c2b+)CWs#A#?I< zFt%0fJkJAyeY8A|9j2(K5HwUlweYsgdxd@=JSd^ZHZ%H*RnIgF(IH>EAVS*wmbG7+ z+6p=P{Zmy`-$*V3z&BB^O`9t?(t!xG7D&JVfbyRGmAX_2O<`4zi+q<1fG@E&ZT;FP zH(m=bm&M$*?_~z*q6lI{1GP% zf^d$h!J|rIdPAwXdLY!&eu67leKv<#QfrqHe#Pw06mX@+&qa2;%?!dKMqzS*L?k_N*6{Xb4&?Jb# z@ zR)S8(_~G=?)s+K$zNWEQbbp-w=sauvWmOO$RG{Ew_mY1yVW8h9sUuZV()+o&K1oct z`D=FW{eg|*Cfa_NJMI-^N`GkGkL*fnh$-MK)#Ov4jL3o-Rm=oOG3I~9c2sgQQTkO-!hw>l8FR068g;WM?n9Zqm*&U1tn2YIG+{aVG6 zj3>H|s*6=`Smpf-s|Af65(SNQJMUI9p%#w!Y)T_P1St!sl^x+-C78oQ97bckQKVeG zYbv&Za2T9t6AkfOKM1(bQC1vHKwlzmoOIQVweV3BAw5%#z6devjkibk`j_}LeG}*E zNqXE7W>4r$t5xW{jo(7z~TyLra4o*=3gH$3E!>{fO`FE;B+Ru&Sgy{ z8gD0@`Z+JV{!{33R>!-QA{GyVN38Q}gq(y4-RGMnRFgpOQPNJu$!vj+sU zX;QLrTKKAD!505xnfC~8LZ@-=50A;IHaX6!B>hJP$Cp$k0-O_BgCR+H|dR`xFVYaL42(6Ot|6N<;KbwV%*QxN;|U`cK(@)k$OjbK9$&*NqCJOGY+P(gq+`%-ZG0; z$}9pgO5TV8WwIuaQ1k+&ES* zOn_SexcTHvg2JsUN~0e0K8u)s$6qh?8qrP_ zWHCV`yia#hxaMR{h9BOWrfG>rQYC586Rn=ytMTW8ay6n(EkeW&1Wx*abLQCKy|-~2 zQ{n|(#8D-+_};&4Fs+Ap)$e-X(&h1p zK#mnv@H^di@n|h#o(i0)Zla}fqJ^|&CI|;WBJUo1j!>k+`Y5OOHNQ!Hay8t{Ma9d?|} zh`5)DJTk=96kq1=M z{bVJ)LXm?9^HJ`h88C0)5U5ul7Jx@sz4{)}lfuub$Gv1?nB<%uGhI?* zNFQ#d4VtcAvuuS&N-0s~a304D)|2*E zjdX-w)JBDji^8l)Ly!5Zm&(Z{&3(G&JXIg~oscvASmVn_tA6+EkKMFFDG0^DwNcTh zmRnl#=JU8Z&T;h*de4I3jCdyGE5!wmB67HAAzaa!R(u{$NgcqJDVffIPBlXkobWGLUh zZu9NzI!N6?u7{ab>)C5Z#02hx;QKUl*Dzup)Z^j=Ikn&iJgam3^0SZ(O)u6sH}SQW40t7h0x3R7SlO9k2~k^U2n zfQDP4_3R}qi@(L9yI=3v7eTh{uDwGH9z9k|BsftDyN&eXnyRqZGR#mpZcqmR(n+ze zy9E=b0zQcyhKBWnJ9n$e&pZ3$(LEd_TH}@AS_B*-x_MsHw}4*1mSvaTY&7`JnjLc6 z(DRMe*q*X*eOWWz&DzgX5$t@m`9hCpu{CHD;-i=R^|sF5fjU>Y2?y=>2bW_R9nxhh zp2n)aKB;G1WTbdC+LdWq&EVD{Kn9wX4_J3&*lcyMIue4EhubT`*4Szoq9hGXSVgv3 z9@Fz3+&5FWhaH3S#)vF^Ffhwl;maTU>}SZhEWc1m4oz?1KD(NFp;bDG+K?Zp0USCL-UGMc|__<%#>5W z9pnxd_C8mNgPrr8AgwS9-BqW$E`R((UcHgOt|E9rvYTl>H+MTjHw{JWFe;%o53X0e zIA>=rTNMes2qtG==vZC;@J-5;*03ual{eolp~|BlxiCB11}a3Cp)b=XCJP?O4@aF{ zT7zG9DD8x*4=U-s)t#44O%`ao!AI2%3SCYdy}p$IC?8MBi-D$e*&xkLRqkE+gZ{x} zw5WoRVZ{Un(kO6uj8x?r3fz-CSpATZhN95m`8;xB)S6UdXr+1qwY)=qe)Ry>nBai2 z{;d1ZX-HQ|JC0A@c-TP9@W3Fj&T1;uUwFPo`VBx$=Dz^-s!zB~;aBwI4Qz5_MI&;* z!tOqKHD>lu=>YF<>nk+|4|Ju-rlfE6y=T8P?=j7qP&7o6nQ!^k@)4_u(7?;`0~>s- zU-_{0?sFgln{5fRZ;&mkU(a;lnn545iph+v!w`-kSY(UggN$dQzN-s332S|XwfYeq z!+cBzC8ZbVB&K}l=!uG~cK7Qm^!+CF8=gYTU2jZG_4vwqshdultaj0YpOT_>3s(SU zqe~L;EISzuu~)fd;0B@ZCv!;rNN)_;kAw!or_f)nP41lfzJmW296af2XySOxk8VuU zXb69CFL;n3=N_(6yTPIXw_&Q9zuIAUeIW0>p_Qvk6DcX6M#!I3W=hQ>lCRy`*M7yfa$*ug-y&j?kwQn5u1$rhVP}S@$yU`mP1&@d!L!w^Lqi?^T*??q zWB$XnxqT&5L0m9B9t!j$z1)~k7I%^n$>j0A@Rra+cRZGB3l|6Xuo0wqIn11&tMZ>o zFBOig@eG&-S|y`M`P$5&neo8IBQc`K(;;_Qf`8F@Xy?E5bjP{^-G1<3pi>nendmaq z(gQ=~U+irkf_(w)c4wRKTw4LI1Pnb?n`>TJ@m+0(gDKM&5(dMRfPqpb(^jeeSlfDe{R{E6rIfdXCwU08+JllUdL6Ih2@yZ$* zKhHi`sQDUcHSXI0DWoaS%iEN0Gbn<@9+bDwTYjiED)ZoOA^8rseO0htmb$-h>^|A zYK+}F{>5S6&T*CVH02+DYp7ITCOv&e$}VGg!S1c;VXs@Ld$mXbnxk{1+-g45cHzFL z$q?q8VRc+Zs{W!Ox)0;GV?MsegZVPKd)Q~H_@7AmW72L{1+Sl&zGA1Vkjv9m)o?KA zNL)*`FTb%!3X7E zy5HoMnHutz%J|`9pGIpsGq2L(QEjGf7?0+>6itp`HBiuD)5_Mu&6@E0)V=L(BB?v8 zYhH3PEB`v2xWj?v(ojrIRH;v=aC0w6FPsthI^8Qt#R2zcAC(=q^mfG0gP}U9@!vR* zp5$`Q7tx6v+D#9rnB5$v?h>8(H4}Wv+p-H`^SN);R@TZL%c|L(w*7*!q&7<){H`?X z4&oKxE8^~9zL0D;Hf(8UudPgsJ>_GN;F;O+-t%?*dp=diT=Z58g?4DOEyzKaVMF&& zL(^i{M*F+C`HB_}UE{b$bt9eZVtj!Epo>vrmn<@paga1s$uA$4@jNCBLr6agiHH*A1xfsPBOgeokpKc5(Q5CX1MN&4m9xi@5NO+sUTqCPd%*udW}kLoRQa zIgmQ@)^R=j*Z67sqA?`v5xhK)^Nn#2!KqqT;bRp^TKE{hf`GE22NPvGbE?}Kz%SLq z!rXS)xJQ@1n~$0gPYl45sk91D<8JR-*!!0LOD__kZhDC257yn#jK|-p<-t3 zS$fK;H}}Oyyhyv=@<^`bHJ@c(y>Og;4!u@wNKs-r^UXe!g-1z;*QH8bS(t^(X+CfH z`}CeWG|{V!Bvj5Rj){S9<8#aK^XVN7P7Uiw89uAam#VBEfMQ}S75j{FU~Rcag7?>45bq*QoFrrHJDC%6HRKTz#O>@cH^4mgkT|l^II? z2ziSFDkUxU%Z`W8(9)a$`XK)IOUL{t-}%7!0_x32%eXpI%a`~@-@O*k{OWcKF~Ii6 zJc3uiTTZQajn6K$Z@x9ui|!b>Z<}CV5^=m|K->J;e%rnz+ut&AFsjr>y!TXN1b`o()=AKi2gRD z|MkJjO7P@HG? Date: Mon, 27 May 2024 19:22:19 +0200 Subject: [PATCH 27/47] added how it works drawing --- README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/README.md b/README.md index e897bbb..c789418 100644 --- a/README.md +++ b/README.md @@ -95,8 +95,23 @@ spec: ## How it works +The diagram below describes how `rekuberate.io/sleepcycles` are dealing with scheduling a `Deployment` workload. + +1. The `sleepcycle-controller` **watches** periodically, every 1min, all the `SleepCycle` custom resources for changes (in **all** namespaces). +2. The controller, for **every** `SleepCycle` resource within the namespace `app-1`, collects all the resources that have been marked with the label `rekuberate.io/sleepcycle: sleepcycle-app1`. +3. It provisions, for **every** workload - in this case deployment `deployment-app1` a `CronJob` for the shutdown schedule and optionally a second `CronJob` if a wake-up schedule is provided. +4. It provisions a `ServiceAccount`, a `Role` and a `RoleBinding` per namespace, in order to make possible for runner-pods to update resources' specs. +5. The `Runner` pods will created automatically from the cronJobs and scale the resources up or down. + + ![SCR-20240527-q9y.png](docs/images/SCR-20240527-qei.png) +> [!NOTE] +> In the diagram it was depicted how `rekuberate.io/sleepcycles` scales `Deployment`. The same steps count for a +> `StatefulSet` and a `HorizontalPodAutoscaler`. There are two exception though: +> - A horizontal pod autoscaler will scale down to `1` replica and not to `0` as deployments and stateful sets. +> - A `CronJob` has no replicas to scale up or down, it is going to be enabled or suspended respectively. + ## Deploy ### From sources From a0d00050df90b325ec5d00e9d2421e67f3e54f94 Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Mon, 27 May 2024 19:23:21 +0200 Subject: [PATCH 28/47] added how it works drawing --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c789418..86b6dc5 100644 --- a/README.md +++ b/README.md @@ -109,8 +109,8 @@ The diagram below describes how `rekuberate.io/sleepcycles` are dealing with sch > [!NOTE] > In the diagram it was depicted how `rekuberate.io/sleepcycles` scales `Deployment`. The same steps count for a > `StatefulSet` and a `HorizontalPodAutoscaler`. There are two exception though: -> - A horizontal pod autoscaler will scale down to `1` replica and not to `0` as deployments and stateful sets. -> - A `CronJob` has no replicas to scale up or down, it is going to be enabled or suspended respectively. +> - a `HorizontalPodAutoscaler` will scale down to `1` replica and not to `0` as for a `Deployment` or a `Statefulset`. +> - a `CronJob` has no replicas to scale up or down, it is going to be enabled or suspended respectively. ## Deploy From 0dab8462ad1ff7870e95c65a86c693622aa0570c Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Mon, 27 May 2024 19:23:59 +0200 Subject: [PATCH 29/47] added how it works drawing --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 86b6dc5..4eb6bb4 100644 --- a/README.md +++ b/README.md @@ -95,7 +95,7 @@ spec: ## How it works -The diagram below describes how `rekuberate.io/sleepcycles` are dealing with scheduling a `Deployment` workload. +The diagram below describes how `rekuberate.io/sleepcycles` are dealing with scheduling a `Deployment`: 1. The `sleepcycle-controller` **watches** periodically, every 1min, all the `SleepCycle` custom resources for changes (in **all** namespaces). 2. The controller, for **every** `SleepCycle` resource within the namespace `app-1`, collects all the resources that have been marked with the label `rekuberate.io/sleepcycle: sleepcycle-app1`. From 8a886f5a1129b3e0bc1a9151eee07bb924983acc Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Mon, 27 May 2024 19:25:17 +0200 Subject: [PATCH 30/47] added how it works drawing --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4eb6bb4..7c47437 100644 --- a/README.md +++ b/README.md @@ -100,8 +100,8 @@ The diagram below describes how `rekuberate.io/sleepcycles` are dealing with sch 1. The `sleepcycle-controller` **watches** periodically, every 1min, all the `SleepCycle` custom resources for changes (in **all** namespaces). 2. The controller, for **every** `SleepCycle` resource within the namespace `app-1`, collects all the resources that have been marked with the label `rekuberate.io/sleepcycle: sleepcycle-app1`. 3. It provisions, for **every** workload - in this case deployment `deployment-app1` a `CronJob` for the shutdown schedule and optionally a second `CronJob` if a wake-up schedule is provided. -4. It provisions a `ServiceAccount`, a `Role` and a `RoleBinding` per namespace, in order to make possible for runner-pods to update resources' specs. -5. The `Runner` pods will created automatically from the cronJobs and scale the resources up or down. +4. It provisions a `ServiceAccount`, a `Role` and a `RoleBinding` **per namespace**, in order to make possible for runner-pods to update resources' specs. +5. The `Runner` pods will created automatically from the cron jobs and scale the resources up or down. ![SCR-20240527-q9y.png](docs/images/SCR-20240527-qei.png) From c7c361be6177392f401e3d951a12a51a8e632c2a Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Mon, 27 May 2024 19:26:11 +0200 Subject: [PATCH 31/47] added how it works drawing --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7c47437..46484e9 100644 --- a/README.md +++ b/README.md @@ -101,7 +101,7 @@ The diagram below describes how `rekuberate.io/sleepcycles` are dealing with sch 2. The controller, for **every** `SleepCycle` resource within the namespace `app-1`, collects all the resources that have been marked with the label `rekuberate.io/sleepcycle: sleepcycle-app1`. 3. It provisions, for **every** workload - in this case deployment `deployment-app1` a `CronJob` for the shutdown schedule and optionally a second `CronJob` if a wake-up schedule is provided. 4. It provisions a `ServiceAccount`, a `Role` and a `RoleBinding` **per namespace**, in order to make possible for runner-pods to update resources' specs. -5. The `Runner` pods will created automatically from the cron jobs and scale the resources up or down. +5. The `Runner` pods will be created automatically by the cron jobs and are responsible for scaling the resources up or down. ![SCR-20240527-q9y.png](docs/images/SCR-20240527-qei.png) From 960b269521f8ba86d5d4f07afa1f0761485c8902 Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Mon, 27 May 2024 19:29:20 +0200 Subject: [PATCH 32/47] added how it works drawing --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 46484e9..5fee6c5 100644 --- a/README.md +++ b/README.md @@ -222,7 +222,7 @@ make docker-build docker-push #### Build ```sh -make docker-build docker-push +make ko-build-runner ``` > [!IMPORTANT] From 8bca5e7569c3d55eb5b69a48c3bfd6e83941f38f Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Mon, 27 May 2024 19:29:40 +0200 Subject: [PATCH 33/47] added how it works drawing --- README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/README.md b/README.md index 5fee6c5..ec7ec0c 100644 --- a/README.md +++ b/README.md @@ -10,9 +10,6 @@ in that way you can: - _reduce_ your power consumption - _lower_ you carbon footprint -> [!NOTE] -> You can read more in medium article [rekuberate-io/sleepcycles: an automated way to reclaim your unused Kubernetes resources](https://medium.com/@akyriako/rekuberate-io-sleepcycles-an-automated-way-to-reclaim-your-unused-kubernetes-resources-852e8db313ec). - ## Getting Started You’ll need a Kubernetes cluster to run against. You can use [KIND](https://sigs.k8s.io/kind) or [K3D](https://k3d.io) to get a local cluster for testing, or run against a remote cluster. From 0e318bb35bf75f70d419db70793611a563cc9f85 Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Mon, 27 May 2024 19:35:39 +0200 Subject: [PATCH 34/47] added how it works drawing --- README.md | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ec7ec0c..38a4501 100644 --- a/README.md +++ b/README.md @@ -149,7 +149,28 @@ kubectl apply -f config/samples make undeploy ``` -### Using Helm +### Using Helm (from sources) + +You can alternatively, it is **highly recommended**, deploy the controller to the cluster using a **Helm chart**: + +```sh +helm install rekuberate-io-sleepcycles config/helm/ -n --create-namespace +``` + +and then deploy the samples: + +```sh +kubectl create namespace app-1 +kubectl create namespace app-2 +kubectl apply -f config/samples +``` +#### Uninstall + +```shell +helm uninstall rekuberate-io-sleepcycles -n +``` + +### Using Helm (from repo) You can alternatively, it is **highly recommended**, deploy the controller to the cluster using a **Helm chart**: From e78a7e32b7146b456bf2118fe3cfca163f4ffc77 Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Mon, 27 May 2024 22:59:12 +0200 Subject: [PATCH 35/47] changes to README.md --- README.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 38a4501..12f080f 100644 --- a/README.md +++ b/README.md @@ -151,7 +151,8 @@ make undeploy ### Using Helm (from sources) -You can alternatively, it is **highly recommended**, deploy the controller to the cluster using a **Helm chart**: +If you are on a development environment, you can quickly test & deploy the controller to the cluster +using a **Helm chart** directly from `config/helm: ```sh helm install rekuberate-io-sleepcycles config/helm/ -n --create-namespace @@ -172,7 +173,9 @@ helm uninstall rekuberate-io-sleepcycles -n ### Using Helm (from repo) -You can alternatively, it is **highly recommended**, deploy the controller to the cluster using a **Helm chart**: +On the other hand if you are deploying on a production environment, it is **highly recommended** to deploy the +controller to the cluster using a **Helm chart** from its repo: + ```sh helm install rekuberate-io-sleepcycles config/helm/ -n --create-namespace From b72dc103e3818226ca6d771d22d927ecb64ece86 Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Mon, 27 May 2024 23:06:32 +0200 Subject: [PATCH 36/47] changes to README.md --- README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 12f080f..a47221f 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,10 @@ spec: enabled: true ``` +> [!NOTE] +> The cron expressions of the samples are tailored so you perform a quick demo. The `shutdown` expression schedules +> the deployment to scale down on _odd_ minutes and the `wakeup` schedule to scale up on _even_ minutes. + Every `SleepCycle` has the following **mandatory** properties: - `shutdown`: cron expression for your shutdown schedule @@ -53,6 +57,9 @@ and the following **non-mandatory** properties: - `failedJobsHistoryLimit`: how many _failed_ CronJob Runner Pods to retain for debugging reasons, defaults to `1` - `runnerImage`: the image to use when spawn CronJob Runner pods, defaults to `akyriako78/rekuberate-io-sleepcycles-runners` +> [!IMPORTANT] +> DO **NOT** ADD **seconds** or **timezone** information to you cron expressions. + #### Demo workloads * _whoami-app-1_x-deployment.yaml_, manifests to deploy 2 `Deployment` that provisions _traefik/whoami_ in namespace `app-1` @@ -152,7 +159,7 @@ make undeploy ### Using Helm (from sources) If you are on a development environment, you can quickly test & deploy the controller to the cluster -using a **Helm chart** directly from `config/helm: +using a **Helm chart** directly from `config/helm`: ```sh helm install rekuberate-io-sleepcycles config/helm/ -n --create-namespace From bd419e742660815f85211c806c507e178d97a508 Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Mon, 27 May 2024 23:49:30 +0200 Subject: [PATCH 37/47] changes to README.md --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a47221f..4540eca 100644 --- a/README.md +++ b/README.md @@ -185,7 +185,10 @@ controller to the cluster using a **Helm chart** from its repo: ```sh -helm install rekuberate-io-sleepcycles config/helm/ -n --create-namespace +helm repo add sleepcycles https://rekuberate-io.github.io/sleepcycles/ +helm repo update + +helm upgrade --install sleepcycles sleepcycles/sleepcycles -n rekuberate-system --create-namespace ``` and then deploy the samples: From 640f475b083c405fd5769e764fc84162874bc4a6 Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Tue, 28 May 2024 09:01:33 +0200 Subject: [PATCH 38/47] added cronjob --- config/samples/busybox-cronjob.yaml | 23 ++++++++++ config/samples/core_v1alpha1_sleepcycle.yaml | 10 ----- controllers/sleepcycle_controller.go | 10 +---- controllers/sleepcycle_reconcilers.go | 43 +++++++++++++++++++ controllers/sleepcycle_runners_cronjobs.go | 18 +++++--- runners/runner.go | 44 +++++++++++++++++--- 6 files changed, 119 insertions(+), 29 deletions(-) create mode 100644 config/samples/busybox-cronjob.yaml delete mode 100644 config/samples/core_v1alpha1_sleepcycle.yaml diff --git a/config/samples/busybox-cronjob.yaml b/config/samples/busybox-cronjob.yaml new file mode 100644 index 0000000..54ddb30 --- /dev/null +++ b/config/samples/busybox-cronjob.yaml @@ -0,0 +1,23 @@ +apiVersion: batch/v1 +kind: CronJob +metadata: + name: hello-busybox + namespace: app-1 + labels: + app: hello-busybox + rekuberate.io/sleepcycle: sleepcycle-app-1 +spec: + schedule: "* * * * *" # Run every minute + jobTemplate: + spec: + template: + spec: + containers: + - name: hello-busybox + image: busybox:latest + imagePullPolicy: IfNotPresent + command: + - /bin/sh + - -c + - date; echo Hello! + restartPolicy: OnFailure \ No newline at end of file diff --git a/config/samples/core_v1alpha1_sleepcycle.yaml b/config/samples/core_v1alpha1_sleepcycle.yaml deleted file mode 100644 index b780c66..0000000 --- a/config/samples/core_v1alpha1_sleepcycle.yaml +++ /dev/null @@ -1,10 +0,0 @@ -apiVersion: core.rekuberate.io/v1alpha1 -kind: SleepCycle -metadata: - name: sleepcycle-sample -spec: - shutdown: "*/1 * * * *" - shutdownTimeZone: "Europe/Athens" - wakeup: "*/2 * * * *" - wakeupTimeZone: "Europe/Dublin" - enabled: true \ No newline at end of file diff --git a/controllers/sleepcycle_controller.go b/controllers/sleepcycle_controller.go index cf82518..4e9135e 100644 --- a/controllers/sleepcycle_controller.go +++ b/controllers/sleepcycle_controller.go @@ -136,7 +136,7 @@ func (r *SleepCycleReconciler) Reconcile(ctx context.Context, req ctrl.Request) r.logger.Error(err, "unable to fetch sleepcycle") return ctrl.Result{}, err } - reconcilers := []runtimeObjectReconciler{r.ReconcileDeployments} + reconcilers := []runtimeObjectReconciler{r.ReconcileDeployments, r.ReconcileCronJobs} var errors error for _, reconciler := range reconcilers { @@ -160,16 +160,10 @@ func (r *SleepCycleReconciler) Reconcile(ctx context.Context, req ctrl.Request) state := "Ready" if provisioned != 0 && provisioned < total { state = "Warning" - } else if provisioned == 0 { + } else if provisioned == 0 && total != 0 { state = "NotReady" } - //original.Status.State = state - //original.Status.Targets = fmt.Sprintf("%d/%d", provisioned, total) - //err = r.Status().Update(ctx, &original) - //if err != nil { - // return ctrl.Result{}, err - //} err = r.UpdateStatus(ctx, &original, state, []int{provisioned, total}) if err != nil { return ctrl.Result{}, err diff --git a/controllers/sleepcycle_reconcilers.go b/controllers/sleepcycle_reconcilers.go index 107253f..7072f0e 100644 --- a/controllers/sleepcycle_reconcilers.go +++ b/controllers/sleepcycle_reconcilers.go @@ -5,6 +5,7 @@ import ( "github.com/hashicorp/go-multierror" corev1alpha1 "github.com/rekuberate-io/sleepcycles/api/v1alpha1" appsv1 "k8s.io/api/apps/v1" + batchv1 "k8s.io/api/batch/v1" ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/client" ) @@ -51,6 +52,48 @@ func (r *SleepCycleReconciler) ReconcileDeployments( return provisioned, total, errors } +func (r *SleepCycleReconciler) ReconcileCronJobs( + ctx context.Context, + req ctrl.Request, + sleepcycle *corev1alpha1.SleepCycle, +) (int, int, error) { + provisioned := 0 + total := 0 + + cronJobList := batchv1.CronJobList{} + if err := r.List(ctx, &cronJobList, &client.ListOptions{Namespace: req.NamespacedName.Namespace}); err != nil { + return 0, 0, err + } + + if len(cronJobList.Items) == 0 { + return 0, 0, nil + } + + var errors error + total = len(cronJobList.Items) + provisioned = total + + for _, cronjob := range cronJobList.Items { + logger := r.logger.WithValues("cronjob", cronjob.Name) + + kind := cronjob.TypeMeta.Kind + meta := cronjob.ObjectMeta + + replicas := int32(1) + if *cronjob.Spec.Suspend { + replicas = int32(0) + } + + err := r.reconcile(ctx, logger, sleepcycle, kind, meta, replicas) + if err != nil { + provisioned -= 1 + errors = multierror.Append(errors, err) + } + } + + return provisioned, total, errors +} + // //func (r *SleepCycleReconciler) ReconcileCronJobs(ctx context.Context, // req ctrl.Request, diff --git a/controllers/sleepcycle_runners_cronjobs.go b/controllers/sleepcycle_runners_cronjobs.go index 8fca54f..bc03324 100644 --- a/controllers/sleepcycle_runners_cronjobs.go +++ b/controllers/sleepcycle_runners_cronjobs.go @@ -69,10 +69,13 @@ func (r *SleepCycleReconciler) createCronJob( annotations := make(map[string]string) annotations[TargetTimezone] = *tz - annotations[Replicas] = fmt.Sprint(targetReplicas) - if targetReplicas == 0 { - annotations[Replicas] = strconv.FormatInt(1, 10) + if targetKind != "CronJob" { + annotations[Replicas] = fmt.Sprint(targetReplicas) + + if targetReplicas == 0 { + annotations[Replicas] = strconv.FormatInt(1, 10) + } } job := &batchv1.CronJob{ @@ -149,6 +152,7 @@ func (r *SleepCycleReconciler) updateCronJob( ctx context.Context, logger logr.Logger, cronJob *batchv1.CronJob, + kind string, schedule string, timezone string, suspend bool, @@ -159,8 +163,10 @@ func (r *SleepCycleReconciler) updateCronJob( *deepCopy.Spec.TimeZone = timezone *deepCopy.Spec.Suspend = suspend - if replicas != 0 { - deepCopy.Annotations[Replicas] = fmt.Sprint(replicas) + if kind != "CronJob" { + if replicas != 0 { + deepCopy.Annotations[Replicas] = fmt.Sprint(replicas) + } } if err := r.Update(ctx, deepCopy); err != nil { @@ -226,7 +232,7 @@ func (r *SleepCycleReconciler) reconcileCronJob( tz = sleepcycle.Spec.WakeupTimeZone } - err := r.updateCronJob(ctx, logger, cronjob, schedule, *tz, suspend, targetReplicas) + err := r.updateCronJob(ctx, logger, cronjob, targetKind, schedule, *tz, suspend, targetReplicas) if err != nil { logger.Error(err, "failed to update runner", "name", cronObjectKey.Name) return err diff --git a/runners/runner.go b/runners/runner.go index 239c45f..cf57ed2 100644 --- a/runners/runner.go +++ b/runners/runner.go @@ -81,14 +81,17 @@ func main() { isShutdownOp = false } - replicas, err := strconv.ParseInt(cronjob.Annotations["rekuberate.io/replicas"], 10, 32) - if err != nil { - logger.Error(err, "failed to get rekuberate.io/replicas value") - } - target := cronjob.Labels["rekuberate.io/target"] kind := cronjob.Labels["rekuberate.io/target-kind"] + replicas := int64(1) + if kind != "CronJob" { + replicas, err = strconv.ParseInt(cronjob.Annotations["rekuberate.io/replicas"], 10, 32) + if err != nil { + logger.Error(err, "failed to get rekuberate.io/replicas value") + } + } + if err == nil { err := run(ns, cronjob, target, kind, replicas, isShutdownOp) if err != nil { @@ -118,6 +121,10 @@ func run(ns string, cronjob *batchv1.CronJob, target string, kind string, target if shutdown { targetReplicas = 0 } + err := scaleCronJob(ctx, ns, cronjob, target, int32(targetReplicas)) + if err != nil { + serr = errors.Wrap(err, smsg) + } case "HorizontalPodAutoscaler": if shutdown { targetReplicas = 1 @@ -178,3 +185,30 @@ func scaleDeployment(ctx context.Context, namespace string, cronjob *batchv1.Cro return nil } + +func scaleCronJob(ctx context.Context, namespace string, cronjob *batchv1.CronJob, target string, targetReplicas int32) error { + cj, err := clientSet.BatchV1().CronJobs(namespace).Get(ctx, target, metav1.GetOptions{}) + if err != nil { + return err + } + + suspend := targetReplicas <= 0 + if suspend != *cj.Spec.Suspend { + cj.Spec.Suspend = &suspend + _, err = clientSet.BatchV1().CronJobs(namespace).Update(ctx, cj, metav1.UpdateOptions{}) + if err != nil { + return err + } + + action := "resumed" + if suspend { + action = "suspended" + } + + logger.Info(fmt.Sprintf("cronjob %s", action), "namespace", namespace, "cronjob", target) + return nil + } + + logger.Info("cronjob already in desired state", "namespace", namespace, "cronjob", target, "suspended", suspend) + return nil +} From 607cf7eebc07a7e5e55138fef4ef9034a1cae5b8 Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Tue, 28 May 2024 11:03:36 +0200 Subject: [PATCH 39/47] fixed targets counter --- controllers/sleepcycle_reconcilers.go | 34 +++++++++++++--------- controllers/sleepcycle_runners_cronjobs.go | 17 +++++------ 2 files changed, 27 insertions(+), 24 deletions(-) diff --git a/controllers/sleepcycle_reconcilers.go b/controllers/sleepcycle_reconcilers.go index 7072f0e..4fda60c 100644 --- a/controllers/sleepcycle_reconcilers.go +++ b/controllers/sleepcycle_reconcilers.go @@ -32,9 +32,6 @@ func (r *SleepCycleReconciler) ReconcileDeployments( } var errors error - total = len(deploymentList.Items) - provisioned = total - for _, deployment := range deploymentList.Items { logger := r.logger.WithValues("deployment", deployment.Name) @@ -42,10 +39,16 @@ func (r *SleepCycleReconciler) ReconcileDeployments( meta := deployment.ObjectMeta replicas := *deployment.Spec.Replicas - err := r.reconcile(ctx, logger, sleepcycle, kind, meta, replicas) - if err != nil { - provisioned -= 1 - errors = multierror.Append(errors, err) + hasSleepCycle := r.hasLabel(&meta, sleepcycle.Name) + if hasSleepCycle { + total += 1 + provisioned += 1 + + err := r.reconcile(ctx, logger, sleepcycle, kind, meta, replicas) + if err != nil { + provisioned -= 1 + errors = multierror.Append(errors, err) + } } } @@ -70,9 +73,6 @@ func (r *SleepCycleReconciler) ReconcileCronJobs( } var errors error - total = len(cronJobList.Items) - provisioned = total - for _, cronjob := range cronJobList.Items { logger := r.logger.WithValues("cronjob", cronjob.Name) @@ -84,10 +84,16 @@ func (r *SleepCycleReconciler) ReconcileCronJobs( replicas = int32(0) } - err := r.reconcile(ctx, logger, sleepcycle, kind, meta, replicas) - if err != nil { - provisioned -= 1 - errors = multierror.Append(errors, err) + hasSleepCycle := r.hasLabel(&meta, sleepcycle.Name) + if hasSleepCycle { + total += 1 + provisioned += 1 + + err := r.reconcile(ctx, logger, sleepcycle, kind, meta, replicas) + if err != nil { + provisioned -= 1 + errors = multierror.Append(errors, err) + } } } diff --git a/controllers/sleepcycle_runners_cronjobs.go b/controllers/sleepcycle_runners_cronjobs.go index bc03324..b9cb327 100644 --- a/controllers/sleepcycle_runners_cronjobs.go +++ b/controllers/sleepcycle_runners_cronjobs.go @@ -250,19 +250,16 @@ func (r *SleepCycleReconciler) reconcile( targetMeta metav1.ObjectMeta, targetReplicas int32, ) error { - hasSleepCycle := r.hasLabel(&targetMeta, sleepcycle.Name) - if hasSleepCycle { - err := r.reconcileCronJob(ctx, logger, sleepcycle, targetKind, targetMeta, targetReplicas, true) + err := r.reconcileCronJob(ctx, logger, sleepcycle, targetKind, targetMeta, targetReplicas, true) + if err != nil { + return err + } + + if sleepcycle.Spec.WakeUp != nil { + err := r.reconcileCronJob(ctx, logger, sleepcycle, targetKind, targetMeta, targetReplicas, false) if err != nil { return err } - - if sleepcycle.Spec.WakeUp != nil { - err := r.reconcileCronJob(ctx, logger, sleepcycle, targetKind, targetMeta, targetReplicas, false) - if err != nil { - return err - } - } } return nil From b85995ea15055394a857912cf7a4c4b06d3302c6 Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Tue, 28 May 2024 11:19:06 +0200 Subject: [PATCH 40/47] added statefulsets --- config/samples/nginx-statefulset.yaml | 50 +++++++++++++++++++++++++++ controllers/sleepcycle_controller.go | 2 +- controllers/sleepcycle_reconcilers.go | 41 ++++++++++++++++++++++ runners/runner.go | 37 ++++++++++++++++++++ 4 files changed, 129 insertions(+), 1 deletion(-) create mode 100644 config/samples/nginx-statefulset.yaml diff --git a/config/samples/nginx-statefulset.yaml b/config/samples/nginx-statefulset.yaml new file mode 100644 index 0000000..f340cd0 --- /dev/null +++ b/config/samples/nginx-statefulset.yaml @@ -0,0 +1,50 @@ +apiVersion: v1 +kind: Service +metadata: + name: nginx + namespace: app-2 + labels: + app: nginx +spec: + ports: + - port: 80 + name: web + clusterIP: None + selector: + app: nginx +--- +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: web + namespace: app-2 + labels: + rekuberate.io/sleepcycle: sleepcycle-app-2 +spec: + serviceName: "nginx" + replicas: 2 + selector: + matchLabels: + app: nginx + template: + metadata: + labels: + app: nginx + spec: + containers: + - name: nginx + image: registry.k8s.io/nginx-slim:0.8 + ports: + - containerPort: 80 + name: web + volumeMounts: + - name: www + mountPath: /usr/share/nginx/html + volumeClaimTemplates: + - metadata: + name: www + spec: + accessModes: [ "ReadWriteOnce" ] + resources: + requests: + storage: 1Gi diff --git a/controllers/sleepcycle_controller.go b/controllers/sleepcycle_controller.go index 4e9135e..f80b79f 100644 --- a/controllers/sleepcycle_controller.go +++ b/controllers/sleepcycle_controller.go @@ -136,7 +136,7 @@ func (r *SleepCycleReconciler) Reconcile(ctx context.Context, req ctrl.Request) r.logger.Error(err, "unable to fetch sleepcycle") return ctrl.Result{}, err } - reconcilers := []runtimeObjectReconciler{r.ReconcileDeployments, r.ReconcileCronJobs} + reconcilers := []runtimeObjectReconciler{r.ReconcileDeployments, r.ReconcileCronJobs, r.ReconcileStatefulSets} var errors error for _, reconciler := range reconcilers { diff --git a/controllers/sleepcycle_reconcilers.go b/controllers/sleepcycle_reconcilers.go index 4fda60c..d43e9cb 100644 --- a/controllers/sleepcycle_reconcilers.go +++ b/controllers/sleepcycle_reconcilers.go @@ -100,6 +100,47 @@ func (r *SleepCycleReconciler) ReconcileCronJobs( return provisioned, total, errors } +func (r *SleepCycleReconciler) ReconcileStatefulSets( + ctx context.Context, + req ctrl.Request, + sleepcycle *corev1alpha1.SleepCycle, +) (int, int, error) { + provisioned := 0 + total := 0 + + statefulSetList := appsv1.StatefulSetList{} + if err := r.List(ctx, &statefulSetList, &client.ListOptions{Namespace: req.NamespacedName.Namespace}); err != nil { + return 0, 0, err + } + + if len(statefulSetList.Items) == 0 { + return 0, 0, nil + } + + var errors error + for _, statefulSet := range statefulSetList.Items { + logger := r.logger.WithValues("statefulset", statefulSet.Name) + + kind := statefulSet.TypeMeta.Kind + meta := statefulSet.ObjectMeta + replicas := *statefulSet.Spec.Replicas + + hasSleepCycle := r.hasLabel(&meta, sleepcycle.Name) + if hasSleepCycle { + total += 1 + provisioned += 1 + + err := r.reconcile(ctx, logger, sleepcycle, kind, meta, replicas) + if err != nil { + provisioned -= 1 + errors = multierror.Append(errors, err) + } + } + } + + return provisioned, total, errors +} + // //func (r *SleepCycleReconciler) ReconcileCronJobs(ctx context.Context, // req ctrl.Request, diff --git a/runners/runner.go b/runners/runner.go index cf57ed2..73e7fae 100644 --- a/runners/runner.go +++ b/runners/runner.go @@ -117,6 +117,10 @@ func run(ns string, cronjob *batchv1.CronJob, target string, kind string, target if shutdown { targetReplicas = 0 } + err := scaleStatefulSets(ctx, ns, cronjob, target, int32(targetReplicas)) + if err != nil { + serr = errors.Wrap(err, smsg) + } case "CronJob": if shutdown { targetReplicas = 0 @@ -212,3 +216,36 @@ func scaleCronJob(ctx context.Context, namespace string, cronjob *batchv1.CronJo logger.Info("cronjob already in desired state", "namespace", namespace, "cronjob", target, "suspended", suspend) return nil } + +func scaleStatefulSets(ctx context.Context, namespace string, cronjob *batchv1.CronJob, target string, targetReplicas int32) error { + statefulSet, err := clientSet.AppsV1().StatefulSets(namespace).Get(ctx, target, metav1.GetOptions{}) + if err != nil { + return err + } + + currentReplicas := *statefulSet.Spec.Replicas + err = syncReplicas(ctx, namespace, cronjob, currentReplicas, targetReplicas) + if err != nil { + return err + } + + if currentReplicas != targetReplicas { + statefulSet.Spec.Replicas = &targetReplicas + _, err = clientSet.AppsV1().StatefulSets(namespace).Update(ctx, statefulSet, metav1.UpdateOptions{}) + if err != nil { + return err + } + + action := "down" + if targetReplicas > 0 { + action = "up" + } + + logger.Info(fmt.Sprintf("scaled %s statefulset", action), "namespace", namespace, "statefulset", target, "replicas", targetReplicas) + return nil + } + + logger.Info("statefulset already in desired state", "namespace", namespace, "statefulset", target, "replicas", targetReplicas) + + return nil +} From 9c3805125c65d77d53b178013b94b8508ff84530 Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Tue, 28 May 2024 11:45:56 +0200 Subject: [PATCH 41/47] added hpa --- config/samples/apache-hpa.yaml | 59 +++++++ controllers/sleepcycle_controller.go | 2 +- controllers/sleepcycle_reconcilers.go | 42 +++++ controllers/sleepcycle_utils.go | 231 -------------------------- runners/runner.go | 37 +++++ 5 files changed, 139 insertions(+), 232 deletions(-) create mode 100644 config/samples/apache-hpa.yaml diff --git a/config/samples/apache-hpa.yaml b/config/samples/apache-hpa.yaml new file mode 100644 index 0000000..1b3a0f9 --- /dev/null +++ b/config/samples/apache-hpa.yaml @@ -0,0 +1,59 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: php-apache + namespace: app-2 +spec: + selector: + matchLabels: + run: php-apache + template: + metadata: + labels: + run: php-apache + spec: + containers: + - name: php-apache + image: registry.k8s.io/hpa-example + ports: + - containerPort: 80 + resources: + limits: + cpu: 500m + requests: + cpu: 200m +--- +apiVersion: v1 +kind: Service +metadata: + name: php-apache + namespace: app-2 + labels: + run: php-apache +spec: + ports: + - port: 80 + selector: + run: php-apache +--- +apiVersion: autoscaling/v2 +kind: HorizontalPodAutoscaler +metadata: + name: php-apache + namespace: app-2 + labels: + rekuberate.io/sleepcycle: sleepcycle-app-2 +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: php-apache + minReplicas: 1 + maxReplicas: 10 + metrics: + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: 50 diff --git a/controllers/sleepcycle_controller.go b/controllers/sleepcycle_controller.go index f80b79f..03379ac 100644 --- a/controllers/sleepcycle_controller.go +++ b/controllers/sleepcycle_controller.go @@ -136,7 +136,7 @@ func (r *SleepCycleReconciler) Reconcile(ctx context.Context, req ctrl.Request) r.logger.Error(err, "unable to fetch sleepcycle") return ctrl.Result{}, err } - reconcilers := []runtimeObjectReconciler{r.ReconcileDeployments, r.ReconcileCronJobs, r.ReconcileStatefulSets} + reconcilers := []runtimeObjectReconciler{r.ReconcileDeployments, r.ReconcileCronJobs, r.ReconcileStatefulSets, r.ReconcileHorizontalPodAutoscalers} var errors error for _, reconciler := range reconcilers { diff --git a/controllers/sleepcycle_reconcilers.go b/controllers/sleepcycle_reconcilers.go index d43e9cb..c3e8408 100644 --- a/controllers/sleepcycle_reconcilers.go +++ b/controllers/sleepcycle_reconcilers.go @@ -5,6 +5,7 @@ import ( "github.com/hashicorp/go-multierror" corev1alpha1 "github.com/rekuberate-io/sleepcycles/api/v1alpha1" appsv1 "k8s.io/api/apps/v1" + autoscalingv1 "k8s.io/api/autoscaling/v1" batchv1 "k8s.io/api/batch/v1" ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/client" @@ -141,6 +142,47 @@ func (r *SleepCycleReconciler) ReconcileStatefulSets( return provisioned, total, errors } +func (r *SleepCycleReconciler) ReconcileHorizontalPodAutoscalers( + ctx context.Context, + req ctrl.Request, + sleepcycle *corev1alpha1.SleepCycle, +) (int, int, error) { + provisioned := 0 + total := 0 + + hpaList := autoscalingv1.HorizontalPodAutoscalerList{} + if err := r.List(ctx, &hpaList, &client.ListOptions{Namespace: req.NamespacedName.Namespace}); err != nil { + return 0, 0, err + } + + if len(hpaList.Items) == 0 { + return 0, 0, nil + } + + var errors error + for _, hpa := range hpaList.Items { + logger := r.logger.WithValues("hpa", hpa.Name) + + kind := hpa.TypeMeta.Kind + meta := hpa.ObjectMeta + replicas := hpa.Spec.MaxReplicas + + hasSleepCycle := r.hasLabel(&meta, sleepcycle.Name) + if hasSleepCycle { + total += 1 + provisioned += 1 + + err := r.reconcile(ctx, logger, sleepcycle, kind, meta, replicas) + if err != nil { + provisioned -= 1 + errors = multierror.Append(errors, err) + } + } + } + + return provisioned, total, errors +} + // //func (r *SleepCycleReconciler) ReconcileCronJobs(ctx context.Context, // req ctrl.Request, diff --git a/controllers/sleepcycle_utils.go b/controllers/sleepcycle_utils.go index 17a5318..6b73e53 100644 --- a/controllers/sleepcycle_utils.go +++ b/controllers/sleepcycle_utils.go @@ -27,234 +27,3 @@ func (r *SleepCycleReconciler) generateToken() (string, error) { base64EncodedToken := base64.StdEncoding.EncodeToString(token) return base64EncodedToken, nil } - -// func (r *SleepCycleReconciler) getCurrentScheduledOperation(sleepCycle corev1alpha1.SleepCycle) SleepCycleOperation { -// nextScheduledShutdown, nextScheduledWakeup := r.getSchedulesTime(sleepCycle, true) -// nextScheduledShutdownTimeWindow := r.getScheduleTimeWindow(nextScheduledShutdown) -// nextScheduledWakeupTimeWindow := r.getScheduleTimeWindow(nextScheduledWakeup) -// -// var isWithinScheduleForShutdown, isWithinScheduleForWakeup = false, false -// isWithinScheduleForShutdown = nextScheduledShutdownTimeWindow.IsScheduleWithinWindow(time.Now()) -// -// if nextScheduledWakeup == nil { -// if !isWithinScheduleForShutdown { -// return Watch -// } -// -// return Shutdown -// } -// -// isWithinScheduleForWakeup = nextScheduledWakeupTimeWindow.IsScheduleWithinWindow(time.Now()) -// -// if nextScheduledShutdown.Before(*nextScheduledWakeup) && isWithinScheduleForShutdown { -// return Shutdown -// } -// -// if nextScheduledWakeup.Before(*nextScheduledShutdown) && isWithinScheduleForWakeup { -// return WakeUp -// } -// -// if isWithinScheduleForShutdown && isWithinScheduleForWakeup { -// return WakeUp -// } -// -// return Watch -// } -// -// func (r *SleepCycleReconciler) getNextScheduledOperation(sleepCycle corev1alpha1.SleepCycle, currentOperation *SleepCycleOperation) (SleepCycleOperation, time.Duration) { -// var requeueAfter time.Duration -// -// if currentOperation == nil { -// *currentOperation = r.getCurrentScheduledOperation(sleepCycle) -// } -// -// nextScheduledShutdown, nextScheduledWakeup := r.getSchedulesTime(sleepCycle, false) -// var nextOperation SleepCycleOperation -// -// switch *currentOperation { -// case Watch: -// if nextScheduledWakeup == nil { -// nextOperation = Shutdown -// requeueAfter = time.Until(*nextScheduledShutdown) -// } else { -// if nextScheduledShutdown.Before(*nextScheduledWakeup) { -// nextOperation = Shutdown -// requeueAfter = time.Until(*nextScheduledShutdown) -// } else { -// nextOperation = WakeUp -// requeueAfter = time.Until(*nextScheduledWakeup) -// } -// } -// case Shutdown: -// if nextScheduledWakeup == nil { -// nextOperation = Shutdown -// requeueAfter = time.Until(*nextScheduledShutdown) -// } else { -// nextOperation = WakeUp -// requeueAfter = time.Until(*nextScheduledWakeup) -// } -// case WakeUp: -// nextOperation = Shutdown -// requeueAfter = time.Until(*nextScheduledShutdown) -// } -// -// return nextOperation, requeueAfter -// } -// -// func (r *SleepCycleReconciler) getScheduleTimeWindow(timestamp *time.Time) *TimeWindow { -// if timestamp != nil { -// return NewTimeWindow(*timestamp) -// } -// -// return nil -// } -// -// func (r *SleepCycleReconciler) getSchedulesTime(sleepCycle corev1alpha1.SleepCycle, useStatus bool) (shutdown *time.Time, wakeup *time.Time) { -// shutdown = nil -// wakeup = nil -// -// if !useStatus { -// shutdown = r.getTimeFromCronExpression(sleepCycle.Spec.Shutdown, sleepCycle.Spec.ShutdownTimeZone) -// wakeup = r.getTimeFromCronExpression(sleepCycle.Spec.WakeUp, sleepCycle.Spec.WakeupTimeZone) -// } else { -// if sleepCycle.Status.NextScheduledWakeupTime != nil { -// wakeupTimeWindow := NewTimeWindow(sleepCycle.Status.NextScheduledWakeupTime.Time) -// -// if wakeupTimeWindow.Right.Before(time.Now()) { -// wakeup = r.getTimeFromCronExpression(sleepCycle.Spec.WakeUp, sleepCycle.Spec.WakeupTimeZone) -// } else { -// wakeup = &sleepCycle.Status.NextScheduledWakeupTime.Time -// } -// } else { -// wakeup = r.getTimeFromCronExpression(sleepCycle.Spec.WakeUp, sleepCycle.Spec.WakeupTimeZone) -// } -// -// if sleepCycle.Status.NextScheduledShutdownTime != nil { -// shutdownTimeWindow := NewTimeWindow(sleepCycle.Status.NextScheduledShutdownTime.Time) -// -// if shutdownTimeWindow.Right.Before(time.Now()) { -// shutdown = r.getTimeFromCronExpression(sleepCycle.Spec.Shutdown, sleepCycle.Spec.ShutdownTimeZone) -// } else { -// shutdown = &sleepCycle.Status.NextScheduledShutdownTime.Time -// } -// } else { -// shutdown = r.getTimeFromCronExpression(sleepCycle.Spec.Shutdown, sleepCycle.Spec.ShutdownTimeZone) -// } -// } -// -// return shutdown, wakeup -// } -// -// func (r *SleepCycleReconciler) getTimeFromCronExpression(cronexp string, timezone *string) *time.Time { -// tz := r.getTimeZone(timezone) -// -// cronExpression, err := cronexpr.Parse(cronexp) -// if err == nil { -// t := cronExpression.Next(time.Now().In(tz)) -// return &t -// } -// return nil -// } -// -// func (r *SleepCycleReconciler) getTimeZone(timezone *string) *time.Location { -// tz, err := time.LoadLocation(*timezone) -// if err != nil { -// r.logger.Info(fmt.Sprintf("no valid timezone, reverting to UTC: %s", err.Error())) -// tz, _ = time.LoadLocation("UTC") -// } -// -// return tz -// } - -// -//func (r *SleepCycleReconciler) removeLabel(obj *metav1.ObjectMeta, tag string) bool { -// val, ok := obj.GetLabels()[SleepCycleLabel] -// -// if ok && val == tag { -// return true -// } -// -// return false -//} -// -//func (r *SleepCycleReconciler) refreshLabelsHorizontalPodAutoscalers(original *corev1alpha1.SleepCycle, desired *corev1alpha1.SleepCycle, hpas autoscalingv1.HorizontalPodAutoscalerList) { -// usedBy := original.Status.UsedBy -// if usedBy != nil { -// for od, _ := range usedBy { -// contains := false -// if strings.HasPrefix(od, "(HorizontalPodAutoscaler)") { -// for _, ed := range hpas.Items { -// if od == fmt.Sprintf(UsedByLabelKey, ed.Kind, ed.Namespace, ed.Name) { -// contains = true -// break -// } -// } -// -// if !contains { -// delete(desired.Status.UsedBy, od) -// } -// } -// } -// } -//} -// -//func (r *SleepCycleReconciler) refreshLabelsStatefulSets(original *corev1alpha1.SleepCycle, desired *corev1alpha1.SleepCycle, statefulSets appsv1.StatefulSetList) { -// usedBy := original.Status.UsedBy -// if usedBy != nil { -// for od, _ := range usedBy { -// contains := false -// if strings.HasPrefix(od, "(StatefulSet)") { -// for _, ed := range statefulSets.Items { -// if od == fmt.Sprintf(UsedByLabelKey, ed.Kind, ed.Namespace, ed.Name) { -// contains = true -// break -// } -// } -// -// if !contains { -// delete(desired.Status.UsedBy, od) -// } -// } -// } -// } -//} -// -//func (r *SleepCycleReconciler) refreshLabelsDeployments(original *corev1alpha1.SleepCycle, desired *corev1alpha1.SleepCycle, deployments appsv1.DeploymentList) { -// usedBy := original.Status.UsedBy -// if usedBy != nil { -// for od, _ := range usedBy { -// contains := false -// if strings.HasPrefix(od, "(Deployment)") { -// for _, ed := range deployments.Items { -// if od == fmt.Sprintf(UsedByLabelKey, ed.Kind, ed.Namespace, ed.Name) { -// contains = true -// break -// } -// } -// -// if !contains { -// delete(desired.Status.UsedBy, od) -// } -// } -// } -// } -//} -// -//func containsString(slice []string, s string) bool { -// for _, item := range slice { -// if item == s { -// return true -// } -// } -// return false -//} -// -//func removeString(slice []string, s string) (result []string) { -// for _, item := range slice { -// if item == s { -// continue -// } -// result = append(result, item) -// } -// return -//} diff --git a/runners/runner.go b/runners/runner.go index 73e7fae..dda87cb 100644 --- a/runners/runner.go +++ b/runners/runner.go @@ -133,6 +133,10 @@ func run(ns string, cronjob *batchv1.CronJob, target string, kind string, target if shutdown { targetReplicas = 1 } + err := scaleHorizontalPodAutoscalers(ctx, ns, cronjob, target, int32(targetReplicas)) + if err != nil { + serr = errors.Wrap(err, smsg) + } default: err := fmt.Errorf("not supported kind: %s", kind) serr = errors.Wrap(err, smsg) @@ -249,3 +253,36 @@ func scaleStatefulSets(ctx context.Context, namespace string, cronjob *batchv1.C return nil } + +func scaleHorizontalPodAutoscalers(ctx context.Context, namespace string, cronjob *batchv1.CronJob, target string, targetReplicas int32) error { + hpa, err := clientSet.AutoscalingV1().HorizontalPodAutoscalers(namespace).Get(ctx, target, metav1.GetOptions{}) + if err != nil { + return err + } + + currentReplicas := hpa.Spec.MaxReplicas + err = syncReplicas(ctx, namespace, cronjob, currentReplicas, targetReplicas) + if err != nil { + return err + } + + if currentReplicas != targetReplicas { + hpa.Spec.MaxReplicas = targetReplicas + _, err = clientSet.AutoscalingV1().HorizontalPodAutoscalers(namespace).Update(ctx, hpa, metav1.UpdateOptions{}) + if err != nil { + return err + } + + action := "down" + if targetReplicas > 0 { + action = "up" + } + + logger.Info(fmt.Sprintf("scaled max replicas %s", action), "namespace", namespace, "hpa", target, "replicas", targetReplicas) + return nil + } + + logger.Info("horizontal pod autoscaler already in desired state", "namespace", namespace, "hpa", target, "replicas", targetReplicas) + + return nil +} From 08189de0a169d693f5893af2c73c4907942c4f5d Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Tue, 28 May 2024 11:50:09 +0200 Subject: [PATCH 42/47] changes image tag and helmify target in Makefile --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 09bf1b0..ba50039 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ # Image URL to use all building/pushing image targets #IMG_TAG ?= $(shell git rev-parse --short HEAD) -IMG_TAG ?= 0.1.2 +IMG_TAG ?= 0.2.0 IMG_NAME ?= rekuberate-io-sleepcycles DOCKER_HUB_NAME ?= $(shell docker info | sed '/Username:/!d;s/.* //') IMG ?= $(DOCKER_HUB_NAME)/$(IMG_NAME):$(IMG_TAG) @@ -146,7 +146,7 @@ $(HELMIFY): $(LOCALBIN) test -s $(LOCALBIN)/helmify || GOBIN=$(LOCALBIN) go install github.com/arttor/helmify/cmd/helmify@latest helm: manifests kustomize helmify - $(KUSTOMIZE) build config/default | $(HELMIFY) config/helm + $(KUSTOMIZE) build config/default | $(HELMIFY) charts/sleepcycles KO ?= $(LOCALBIN)/ko From c65af5f78e051454575dd10030c4372f47ff4143 Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Tue, 28 May 2024 12:31:01 +0200 Subject: [PATCH 43/47] record events in controller --- controllers/sleepcycle_controller.go | 1 + controllers/sleepcycle_runners_cronjobs.go | 13 ++++++++++--- controllers/sleepcycle_utils.go | 15 +++++++++++++++ controllers/sleepcycles_rbac.go | 1 + 4 files changed, 27 insertions(+), 3 deletions(-) diff --git a/controllers/sleepcycle_controller.go b/controllers/sleepcycle_controller.go index 03379ac..ef152ae 100644 --- a/controllers/sleepcycle_controller.go +++ b/controllers/sleepcycle_controller.go @@ -125,6 +125,7 @@ func (r *SleepCycleReconciler) Reconcile(ctx context.Context, req ctrl.Request) err := r.reconcileRbac(ctx, &original) if err != nil { + r.recordEvent(&original, fmt.Sprintf("unable to create rbac resources in %s", req.Namespace), false) return ctrl.Result{}, err } diff --git a/controllers/sleepcycle_runners_cronjobs.go b/controllers/sleepcycle_runners_cronjobs.go index b9cb327..c2f7e3d 100644 --- a/controllers/sleepcycle_runners_cronjobs.go +++ b/controllers/sleepcycle_runners_cronjobs.go @@ -141,16 +141,19 @@ func (r *SleepCycleReconciler) createCronJob( err = r.Create(ctx, job) if err != nil { + r.recordEvent(sleepcycle, fmt.Sprintf("unable to create runner %s/%s", cronObjectKey.Namespace, cronObjectKey.Name), true) logger.Error(err, "unable to create runner", "cronjob", cronObjectKey.Name) return nil, err } + r.recordEvent(sleepcycle, fmt.Sprintf("created runner %s/%s", cronObjectKey.Namespace, cronObjectKey.Name), false) return job, nil } func (r *SleepCycleReconciler) updateCronJob( ctx context.Context, logger logr.Logger, + sleepcycle *corev1alpha1.SleepCycle, cronJob *batchv1.CronJob, kind string, schedule string, @@ -170,18 +173,22 @@ func (r *SleepCycleReconciler) updateCronJob( } if err := r.Update(ctx, deepCopy); err != nil { + r.recordEvent(sleepcycle, fmt.Sprintf("unable to update runner %s/%s", cronJob.Namespace, cronJob.Name), true) logger.Error(err, "unable to update runner", "cronjob", cronJob.Name) return err } + r.recordEvent(sleepcycle, fmt.Sprintf("updated runner %s/%s", cronJob.Namespace, cronJob.Name), false) return nil } -func (r *SleepCycleReconciler) deleteCronJob(ctx context.Context, cronJob *batchv1.CronJob) error { +func (r *SleepCycleReconciler) deleteCronJob(ctx context.Context, sleepcycle *corev1alpha1.SleepCycle, cronJob *batchv1.CronJob) error { if err := r.Delete(ctx, cronJob); err != nil { + r.recordEvent(sleepcycle, fmt.Sprintf("unable to delete runner %s/%s", cronJob.Namespace, cronJob.Name), true) return err } + r.recordEvent(sleepcycle, fmt.Sprintf("deleted runner %s/%s", cronJob.Namespace, cronJob.Name), false) return nil } @@ -218,7 +225,7 @@ func (r *SleepCycleReconciler) reconcileCronJob( if cronjob != nil { if !isShutdownOp && sleepcycle.Spec.WakeUp == nil { - err := r.deleteCronJob(ctx, cronjob) + err := r.deleteCronJob(ctx, sleepcycle, cronjob) if err != nil { return err } @@ -232,7 +239,7 @@ func (r *SleepCycleReconciler) reconcileCronJob( tz = sleepcycle.Spec.WakeupTimeZone } - err := r.updateCronJob(ctx, logger, cronjob, targetKind, schedule, *tz, suspend, targetReplicas) + err := r.updateCronJob(ctx, logger, sleepcycle, cronjob, targetKind, schedule, *tz, suspend, targetReplicas) if err != nil { logger.Error(err, "failed to update runner", "name", cronObjectKey.Name) return err diff --git a/controllers/sleepcycle_utils.go b/controllers/sleepcycle_utils.go index 6b73e53..e53ff84 100644 --- a/controllers/sleepcycle_utils.go +++ b/controllers/sleepcycle_utils.go @@ -2,8 +2,11 @@ package controllers import ( "encoding/base64" + corev1alpha1 "github.com/rekuberate-io/sleepcycles/api/v1alpha1" + corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "math/rand" + "strings" ) func (r *SleepCycleReconciler) hasLabel(obj *metav1.ObjectMeta, tag string) bool { @@ -27,3 +30,15 @@ func (r *SleepCycleReconciler) generateToken() (string, error) { base64EncodedToken := base64.StdEncoding.EncodeToString(token) return base64EncodedToken, nil } + +func (r *SleepCycleReconciler) recordEvent(sleepCycle *corev1alpha1.SleepCycle, message string, isError bool) { + eventType := corev1.EventTypeNormal + reason := "SleepCycleOpSuccess" + + if isError { + eventType = corev1.EventTypeWarning + reason = "SleepCycleOpFailure" + } + + r.Recorder.Event(sleepCycle, eventType, reason, strings.ToLower(message)) +} diff --git a/controllers/sleepcycles_rbac.go b/controllers/sleepcycles_rbac.go index d805e7a..ae7006a 100644 --- a/controllers/sleepcycles_rbac.go +++ b/controllers/sleepcycles_rbac.go @@ -117,5 +117,6 @@ func (r *SleepCycleReconciler) reconcileRbac(ctx context.Context, sleepcycle *co return err } + r.recordEvent(sleepcycle, fmt.Sprintf("created rbac resources in %s", sleepcycle.Namespace), true) return nil } From 93b2b60404bad626148e512d87c43076c82f2645 Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Tue, 28 May 2024 12:35:09 +0200 Subject: [PATCH 44/47] forbid scheduling kube-system --- controllers/sleepcycle_controller.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/controllers/sleepcycle_controller.go b/controllers/sleepcycle_controller.go index ef152ae..e9bfc91 100644 --- a/controllers/sleepcycle_controller.go +++ b/controllers/sleepcycle_controller.go @@ -110,6 +110,12 @@ func (r *SleepCycleReconciler) Reconcile(ctx context.Context, req ctrl.Request) r.logger.Info("reconciling sleepcycle") + nsks := "kube-system" + if req.Namespace == nsks { + r.logger.Info(fmt.Sprintf("setting sleepcycle schedule on resources in namespace %s is not supported", nsks)) + return ctrl.Result{}, nil + } + provisioned := 0 total := 0 From d802680275c4528e88e06d96b76d0536e3c9c865 Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Tue, 28 May 2024 17:15:13 +0200 Subject: [PATCH 45/47] added runner event recorder --- runners/runner.go | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/runners/runner.go b/runners/runner.go index dda87cb..a0d3d70 100644 --- a/runners/runner.go +++ b/runners/runner.go @@ -8,9 +8,13 @@ import ( "github.com/pkg/errors" "go.uber.org/zap/zapcore" batchv1 "k8s.io/api/batch/v1" + corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" "k8s.io/client-go/kubernetes" + typedv1core "k8s.io/client-go/kubernetes/typed/core/v1" "k8s.io/client-go/rest" + "k8s.io/client-go/tools/record" "os" ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/log/zap" @@ -28,6 +32,8 @@ var ( podEnvVar = "MY_POD_NAME" namespaceEnvVar = "MY_POD_NAMESPACE" cronjobEnvVar = "MY_CRONJOB_NAME" + + eventRecorder record.EventRecorder ) func init() { @@ -70,6 +76,16 @@ func main() { } clientSet = cs + scheme := runtime.NewScheme() + _ = corev1.AddToScheme(scheme) + + eventBroadcaster := record.NewBroadcaster() + defer eventBroadcaster.Shutdown() + + eventBroadcaster.StartStructuredLogging(4) + eventBroadcaster.StartRecordingToSink(&typedv1core.EventSinkImpl{Interface: clientSet.CoreV1().Events("")}) + eventRecorder = eventBroadcaster.NewRecorder(scheme, corev1.EventSource{}) + cronjob, err := clientSet.BatchV1().CronJobs(ns).Get(ctx, cj, metav1.GetOptions{}) if err != nil { logger.Error(err, "failed to get runner cronjob") @@ -95,7 +111,14 @@ func main() { if err == nil { err := run(ns, cronjob, target, kind, replicas, isShutdownOp) if err != nil { + recordEvent(cronjob, err.Error(), true) logger.Error(err, "runner failed", "target", target, "kind", kind) + } else { + action := "up" + if isShutdownOp { + action = "down" + } + recordEvent(cronjob, fmt.Sprintf("runner scaled %s %s", action, target), false) } } } @@ -286,3 +309,15 @@ func scaleHorizontalPodAutoscalers(ctx context.Context, namespace string, cronjo return nil } + +func recordEvent(cronjob *batchv1.CronJob, message string, isError bool) { + eventType := corev1.EventTypeNormal + reason := "SleepCycleOpSuccess" + + if isError { + eventType = corev1.EventTypeWarning + reason = "SleepCycleOpFailure" + } + + eventRecorder.Event(cronjob, eventType, reason, strings.ToLower(message)) +} From 48f13d6255177e130fdbded1fde39b7177f59af0 Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Tue, 28 May 2024 20:39:40 +0200 Subject: [PATCH 46/47] recording events for sleepcycles and runners --- controllers/sleepcycle_utils.go | 4 ++-- runners/runner.go | 10 ++++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/controllers/sleepcycle_utils.go b/controllers/sleepcycle_utils.go index e53ff84..dda780b 100644 --- a/controllers/sleepcycle_utils.go +++ b/controllers/sleepcycle_utils.go @@ -33,11 +33,11 @@ func (r *SleepCycleReconciler) generateToken() (string, error) { func (r *SleepCycleReconciler) recordEvent(sleepCycle *corev1alpha1.SleepCycle, message string, isError bool) { eventType := corev1.EventTypeNormal - reason := "SleepCycleOpSuccess" + reason := "SuccessfulSleepCycleReconcile" if isError { eventType = corev1.EventTypeWarning - reason = "SleepCycleOpFailure" + reason = "FailedSleepCycleReconcile" } r.Recorder.Event(sleepCycle, eventType, reason, strings.ToLower(message)) diff --git a/runners/runner.go b/runners/runner.go index a0d3d70..46a72a8 100644 --- a/runners/runner.go +++ b/runners/runner.go @@ -20,6 +20,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/log/zap" "strconv" "strings" + "time" ) var ( @@ -77,14 +78,14 @@ func main() { clientSet = cs scheme := runtime.NewScheme() - _ = corev1.AddToScheme(scheme) + _ = batchv1.AddToScheme(scheme) eventBroadcaster := record.NewBroadcaster() defer eventBroadcaster.Shutdown() eventBroadcaster.StartStructuredLogging(4) eventBroadcaster.StartRecordingToSink(&typedv1core.EventSinkImpl{Interface: clientSet.CoreV1().Events("")}) - eventRecorder = eventBroadcaster.NewRecorder(scheme, corev1.EventSource{}) + eventRecorder = eventBroadcaster.NewRecorder(scheme, corev1.EventSource{Component: "rekuberate-io/sleepcycles-runner"}) cronjob, err := clientSet.BatchV1().CronJobs(ns).Get(ctx, cj, metav1.GetOptions{}) if err != nil { @@ -312,12 +313,13 @@ func scaleHorizontalPodAutoscalers(ctx context.Context, namespace string, cronjo func recordEvent(cronjob *batchv1.CronJob, message string, isError bool) { eventType := corev1.EventTypeNormal - reason := "SleepCycleOpSuccess" + reason := "SuccessfulSleepCycleScale" if isError { eventType = corev1.EventTypeWarning - reason = "SleepCycleOpFailure" + reason = "FailedSleepCycleScale" } eventRecorder.Event(cronjob, eventType, reason, strings.ToLower(message)) + time.Sleep(2 * time.Second) } From cbcb2299b7c3685b120026785a7e14f9124f2e0c Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Tue, 28 May 2024 20:51:53 +0200 Subject: [PATCH 47/47] added helm chart and updated img tags --- charts/sleepcycles/.helmignore | 23 +++ charts/sleepcycles/Chart.yaml | 21 +++ charts/sleepcycles/templates/_helpers.tpl | 62 ++++++++ charts/sleepcycles/templates/deployment.yaml | 66 +++++++++ .../templates/leader-election-rbac.yaml | 53 +++++++ .../sleepcycles/templates/manager-config.yaml | 9 ++ .../sleepcycles/templates/manager-rbac.yaml | 139 ++++++++++++++++++ .../templates/metrics-reader-rbac.yaml | 11 ++ .../templates/metrics-service.yaml | 14 ++ charts/sleepcycles/templates/proxy-rbac.yaml | 34 +++++ .../sleepcycles/templates/serviceaccount.yaml | 8 + .../sleepcycles/templates/sleepcycle-crd.yaml | 113 ++++++++++++++ charts/sleepcycles/values.yaml | 76 ++++++++++ config/manager/kustomization.yaml | 2 +- 14 files changed, 630 insertions(+), 1 deletion(-) create mode 100644 charts/sleepcycles/.helmignore create mode 100644 charts/sleepcycles/Chart.yaml create mode 100644 charts/sleepcycles/templates/_helpers.tpl create mode 100644 charts/sleepcycles/templates/deployment.yaml create mode 100644 charts/sleepcycles/templates/leader-election-rbac.yaml create mode 100644 charts/sleepcycles/templates/manager-config.yaml create mode 100644 charts/sleepcycles/templates/manager-rbac.yaml create mode 100644 charts/sleepcycles/templates/metrics-reader-rbac.yaml create mode 100644 charts/sleepcycles/templates/metrics-service.yaml create mode 100644 charts/sleepcycles/templates/proxy-rbac.yaml create mode 100644 charts/sleepcycles/templates/serviceaccount.yaml create mode 100644 charts/sleepcycles/templates/sleepcycle-crd.yaml create mode 100644 charts/sleepcycles/values.yaml diff --git a/charts/sleepcycles/.helmignore b/charts/sleepcycles/.helmignore new file mode 100644 index 0000000..0e8a0eb --- /dev/null +++ b/charts/sleepcycles/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/charts/sleepcycles/Chart.yaml b/charts/sleepcycles/Chart.yaml new file mode 100644 index 0000000..d37f379 --- /dev/null +++ b/charts/sleepcycles/Chart.yaml @@ -0,0 +1,21 @@ +apiVersion: v2 +name: sleepcycles +description: Define sleep and wake up cycles for your Kubernetes resources +# A chart can be either an 'application' or a 'library' chart. +# +# Application charts are a collection of templates that can be packaged into versioned archives +# to be deployed. +# +# Library charts provide useful utilities or functions for the chart developer. They're included as +# a dependency of application charts to inject those utilities and functions into the rendering +# pipeline. Library charts do not define any templates and therefore cannot be deployed. +type: application +# This is the chart version. This version number should be incremented each time you make changes +# to the chart and its templates, including the app version. +# Versions are expected to follow Semantic Versioning (https://semver.org/) +version: 0.2.0 +# This is the version number of the application being deployed. This version number should be +# incremented each time you make changes to the application. Versions are not expected to +# follow Semantic Versioning. They should reflect the version the application is using. +# It is recommended to use it with quotes. +appVersion: "0.2.0" diff --git a/charts/sleepcycles/templates/_helpers.tpl b/charts/sleepcycles/templates/_helpers.tpl new file mode 100644 index 0000000..3e2e076 --- /dev/null +++ b/charts/sleepcycles/templates/_helpers.tpl @@ -0,0 +1,62 @@ +{{/* +Expand the name of the chart. +*/}} +{{- define "sleepcycles.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "sleepcycles.fullname" -}} +{{- if .Values.fullnameOverride }} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.nameOverride }} +{{- if contains $name .Release.Name }} +{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{- end }} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "sleepcycles.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Common labels +*/}} +{{- define "sleepcycles.labels" -}} +helm.sh/chart: {{ include "sleepcycles.chart" . }} +{{ include "sleepcycles.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{/* +Selector labels +*/}} +{{- define "sleepcycles.selectorLabels" -}} +app.kubernetes.io/name: {{ include "sleepcycles.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{/* +Create the name of the service account to use +*/}} +{{- define "sleepcycles.serviceAccountName" -}} +{{- if .Values.serviceAccount.create }} +{{- default (include "sleepcycles.fullname" .) .Values.serviceAccount.name }} +{{- else }} +{{- default "default" .Values.serviceAccount.name }} +{{- end }} +{{- end }} diff --git a/charts/sleepcycles/templates/deployment.yaml b/charts/sleepcycles/templates/deployment.yaml new file mode 100644 index 0000000..7a2ca9a --- /dev/null +++ b/charts/sleepcycles/templates/deployment.yaml @@ -0,0 +1,66 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "sleepcycles.fullname" . }}-controller-manager + labels: + control-plane: controller-manager + {{- include "sleepcycles.labels" . | nindent 4 }} +spec: + replicas: {{ .Values.controllerManager.replicas }} + selector: + matchLabels: + control-plane: controller-manager + {{- include "sleepcycles.selectorLabels" . | nindent 6 }} + template: + metadata: + labels: + control-plane: controller-manager + {{- include "sleepcycles.selectorLabels" . | nindent 8 }} + annotations: + kubectl.kubernetes.io/default-container: manager + spec: + containers: + - args: {{- toYaml .Values.controllerManager.kubeRbacProxy.args | nindent 8 }} + env: + - name: KUBERNETES_CLUSTER_DOMAIN + value: {{ quote .Values.kubernetesClusterDomain }} + image: {{ .Values.controllerManager.kubeRbacProxy.image.repository }}:{{ .Values.controllerManager.kubeRbacProxy.image.tag + | default .Chart.AppVersion }} + name: kube-rbac-proxy + ports: + - containerPort: 8443 + name: https + protocol: TCP + resources: {{- toYaml .Values.controllerManager.kubeRbacProxy.resources | nindent + 10 }} + securityContext: {{- toYaml .Values.controllerManager.kubeRbacProxy.containerSecurityContext + | nindent 10 }} + - args: {{- toYaml .Values.controllerManager.manager.args | nindent 8 }} + command: + - /manager + env: + - name: KUBERNETES_CLUSTER_DOMAIN + value: {{ quote .Values.kubernetesClusterDomain }} + image: {{ .Values.controllerManager.manager.image.repository }}:{{ .Values.controllerManager.manager.image.tag + | default .Chart.AppVersion }} + livenessProbe: + httpGet: + path: /healthz + port: 8081 + initialDelaySeconds: 15 + periodSeconds: 20 + name: manager + readinessProbe: + httpGet: + path: /readyz + port: 8081 + initialDelaySeconds: 5 + periodSeconds: 10 + resources: {{- toYaml .Values.controllerManager.manager.resources | nindent 10 + }} + securityContext: {{- toYaml .Values.controllerManager.manager.containerSecurityContext + | nindent 10 }} + securityContext: + runAsNonRoot: true + serviceAccountName: {{ include "sleepcycles.fullname" . }}-controller-manager + terminationGracePeriodSeconds: 10 \ No newline at end of file diff --git a/charts/sleepcycles/templates/leader-election-rbac.yaml b/charts/sleepcycles/templates/leader-election-rbac.yaml new file mode 100644 index 0000000..522348f --- /dev/null +++ b/charts/sleepcycles/templates/leader-election-rbac.yaml @@ -0,0 +1,53 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: {{ include "sleepcycles.fullname" . }}-leader-election-role + labels: + {{- include "sleepcycles.labels" . | nindent 4 }} +rules: +- apiGroups: + - "" + resources: + - configmaps + verbs: + - get + - list + - watch + - create + - update + - patch + - delete +- apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - get + - list + - watch + - create + - update + - patch + - delete +- apiGroups: + - "" + resources: + - events + verbs: + - create + - patch +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: {{ include "sleepcycles.fullname" . }}-leader-election-rolebinding + labels: + {{- include "sleepcycles.labels" . | nindent 4 }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: '{{ include "sleepcycles.fullname" . }}-leader-election-role' +subjects: +- kind: ServiceAccount + name: '{{ include "sleepcycles.fullname" . }}-controller-manager' + namespace: '{{ .Release.Namespace }}' \ No newline at end of file diff --git a/charts/sleepcycles/templates/manager-config.yaml b/charts/sleepcycles/templates/manager-config.yaml new file mode 100644 index 0000000..cf1bb73 --- /dev/null +++ b/charts/sleepcycles/templates/manager-config.yaml @@ -0,0 +1,9 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "sleepcycles.fullname" . }}-manager-config + labels: + {{- include "sleepcycles.labels" . | nindent 4 }} +data: + controller_manager_config.yaml: {{ .Values.managerConfig.controllerManagerConfigYaml + | toYaml | indent 1 }} \ No newline at end of file diff --git a/charts/sleepcycles/templates/manager-rbac.yaml b/charts/sleepcycles/templates/manager-rbac.yaml new file mode 100644 index 0000000..7598e83 --- /dev/null +++ b/charts/sleepcycles/templates/manager-rbac.yaml @@ -0,0 +1,139 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: {{ include "sleepcycles.fullname" . }}-manager-role + labels: + {{- include "sleepcycles.labels" . | nindent 4 }} +rules: +- apiGroups: + - "" + resources: + - events + verbs: + - create + - patch +- apiGroups: + - apps + resources: + - deployments + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - apps + resources: + - replicasets + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - apps + resources: + - statefulsets + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - autoscaling + resources: + - horizontalpodautoscalers + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - batch + resources: + - cronjobs + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - "" + resources: + - replicasets + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - "" + resources: + - serviceaccounts + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - core.rekuberate.io + resources: + - sleepcycles + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - core.rekuberate.io + resources: + - sleepcycles/finalizers + verbs: + - update +- apiGroups: + - core.rekuberate.io + resources: + - sleepcycles/status + verbs: + - get + - patch + - update +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: {{ include "sleepcycles.fullname" . }}-manager-rolebinding + labels: + {{- include "sleepcycles.labels" . | nindent 4 }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: '{{ include "sleepcycles.fullname" . }}-manager-role' +subjects: +- kind: ServiceAccount + name: '{{ include "sleepcycles.fullname" . }}-controller-manager' + namespace: '{{ .Release.Namespace }}' \ No newline at end of file diff --git a/charts/sleepcycles/templates/metrics-reader-rbac.yaml b/charts/sleepcycles/templates/metrics-reader-rbac.yaml new file mode 100644 index 0000000..d6c7b63 --- /dev/null +++ b/charts/sleepcycles/templates/metrics-reader-rbac.yaml @@ -0,0 +1,11 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: {{ include "sleepcycles.fullname" . }}-metrics-reader + labels: + {{- include "sleepcycles.labels" . | nindent 4 }} +rules: +- nonResourceURLs: + - /metrics + verbs: + - get \ No newline at end of file diff --git a/charts/sleepcycles/templates/metrics-service.yaml b/charts/sleepcycles/templates/metrics-service.yaml new file mode 100644 index 0000000..525749d --- /dev/null +++ b/charts/sleepcycles/templates/metrics-service.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "sleepcycles.fullname" . }}-controller-manager-metrics-service + labels: + control-plane: controller-manager + {{- include "sleepcycles.labels" . | nindent 4 }} +spec: + type: {{ .Values.metricsService.type }} + selector: + control-plane: controller-manager + {{- include "sleepcycles.selectorLabels" . | nindent 4 }} + ports: + {{- .Values.metricsService.ports | toYaml | nindent 2 -}} \ No newline at end of file diff --git a/charts/sleepcycles/templates/proxy-rbac.yaml b/charts/sleepcycles/templates/proxy-rbac.yaml new file mode 100644 index 0000000..9d28501 --- /dev/null +++ b/charts/sleepcycles/templates/proxy-rbac.yaml @@ -0,0 +1,34 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: {{ include "sleepcycles.fullname" . }}-proxy-role + labels: + {{- include "sleepcycles.labels" . | nindent 4 }} +rules: +- apiGroups: + - authentication.k8s.io + resources: + - tokenreviews + verbs: + - create +- apiGroups: + - authorization.k8s.io + resources: + - subjectaccessreviews + verbs: + - create +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: {{ include "sleepcycles.fullname" . }}-proxy-rolebinding + labels: + {{- include "sleepcycles.labels" . | nindent 4 }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: '{{ include "sleepcycles.fullname" . }}-proxy-role' +subjects: +- kind: ServiceAccount + name: '{{ include "sleepcycles.fullname" . }}-controller-manager' + namespace: '{{ .Release.Namespace }}' \ No newline at end of file diff --git a/charts/sleepcycles/templates/serviceaccount.yaml b/charts/sleepcycles/templates/serviceaccount.yaml new file mode 100644 index 0000000..e720ae9 --- /dev/null +++ b/charts/sleepcycles/templates/serviceaccount.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "sleepcycles.fullname" . }}-controller-manager + labels: + {{- include "sleepcycles.labels" . | nindent 4 }} + annotations: + {{- toYaml .Values.controllerManager.serviceAccount.annotations | nindent 4 }} \ No newline at end of file diff --git a/charts/sleepcycles/templates/sleepcycle-crd.yaml b/charts/sleepcycles/templates/sleepcycle-crd.yaml new file mode 100644 index 0000000..a5a6664 --- /dev/null +++ b/charts/sleepcycles/templates/sleepcycle-crd.yaml @@ -0,0 +1,113 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: sleepcycles.core.rekuberate.io + annotations: + controller-gen.kubebuilder.io/version: v0.9.2 + labels: + {{- include "sleepcycles.labels" . | nindent 4 }} +spec: + group: core.rekuberate.io + names: + kind: SleepCycle + listKind: SleepCycleList + plural: sleepcycles + singular: sleepcycle + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .spec.enabled + name: Enabled + type: boolean + - jsonPath: .status.state + name: State + type: string + - jsonPath: .status.targets + name: Targets + type: string + - jsonPath: .spec.shutdown + name: Shutdown Schedule + type: string + - jsonPath: .spec.shutdownTimeZone + name: Shutdown Timezone + type: string + - jsonPath: .spec.wakeup + name: Wakeup Schedule + type: string + - jsonPath: .spec.wakeupTimeZone + name: Wakeup Timezone + type: string + name: v1alpha1 + schema: + openAPIV3Schema: + description: SleepCycle is the Schema for the sleepcycles API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: SleepCycleSpec defines the desired state of SleepCycle + properties: + enabled: + type: boolean + failedJobsHistoryLimit: + default: 1 + format: int32 + maximum: 3 + minimum: 1 + type: integer + runnerImage: + default: akyriako78/rekuberate-io-sleepcycles-runners + type: string + shutdown: + pattern: (^((\*\/)?([0-5]?[0-9])((\,|\-|\/)([0-5]?[0-9]))*|\*)\s+((\*\/)?((2[0-3]|1[0-9]|[0-9]|00))((\,|\-|\/)(2[0-3]|1[0-9]|[0-9]|00))*|\*)\s+((\*\/)?([1-9]|[12][0-9]|3[01])((\,|\-|\/)([1-9]|[12][0-9]|3[01]))*|\*)\s+((\*\/)?([1-9]|1[0-2])((\,|\-|\/)([1-9]|1[0-2]))*|\*|(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|des))\s+((\*\/)?[0-6]((\,|\-|\/)[0-6])*|\*|00|(sun|mon|tue|wed|thu|fri|sat))\s*$)|@(annually|yearly|monthly|weekly|daily|hourly|reboot) + type: string + shutdownTimeZone: + default: UTC + type: string + successfulJobsHistoryLimit: + default: 1 + format: int32 + maximum: 3 + minimum: 1 + type: integer + wakeup: + pattern: (^((\*\/)?([0-5]?[0-9])((\,|\-|\/)([0-5]?[0-9]))*|\*)\s+((\*\/)?((2[0-3]|1[0-9]|[0-9]|00))((\,|\-|\/)(2[0-3]|1[0-9]|[0-9]|00))*|\*)\s+((\*\/)?([1-9]|[12][0-9]|3[01])((\,|\-|\/)([1-9]|[12][0-9]|3[01]))*|\*)\s+((\*\/)?([1-9]|1[0-2])((\,|\-|\/)([1-9]|1[0-2]))*|\*|(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|des))\s+((\*\/)?[0-6]((\,|\-|\/)[0-6])*|\*|00|(sun|mon|tue|wed|thu|fri|sat))\s*$)|@(annually|yearly|monthly|weekly|daily|hourly|reboot) + type: string + wakeupTimeZone: + default: UTC + type: string + required: + - enabled + - shutdown + type: object + status: + description: SleepCycleStatus defines the observed state of SleepCycle + properties: + enabled: + type: boolean + state: + type: string + targets: + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] \ No newline at end of file diff --git a/charts/sleepcycles/values.yaml b/charts/sleepcycles/values.yaml new file mode 100644 index 0000000..dcb79a7 --- /dev/null +++ b/charts/sleepcycles/values.yaml @@ -0,0 +1,76 @@ +controllerManager: + kubeRbacProxy: + args: + - --secure-listen-address=0.0.0.0:8443 + - --upstream=http://127.0.0.1:8080/ + - --logtostderr=true + - --v=0 + containerSecurityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + image: + repository: gcr.io/kubebuilder/kube-rbac-proxy + tag: v0.13.0 + resources: + limits: + cpu: 500m + memory: 128Mi + requests: + cpu: 5m + memory: 64Mi + manager: + args: + - --health-probe-bind-address=:8081 + - --metrics-bind-address=127.0.0.1:8080 + - --leader-elect + containerSecurityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + image: + repository: akyriako78/rekuberate-io-sleepcycles + tag: 0.2.0 + resources: + limits: + cpu: 500m + memory: 128Mi + requests: + cpu: 10m + memory: 64Mi + replicas: 1 + serviceAccount: + annotations: {} +kubernetesClusterDomain: cluster.local +managerConfig: + controllerManagerConfigYaml: |- + apiVersion: controller-runtime.sigs.k8s.io/v1alpha1 + kind: ControllerManagerConfig + health: + healthProbeBindAddress: :8081 + metrics: + bindAddress: 127.0.0.1:8080 + webhook: + port: 9443 + leaderElection: + leaderElect: true + resourceName: 04cbe4c0.rekuberate.io + # leaderElectionReleaseOnCancel defines if the leader should step down volume + # when the Manager ends. This requires the binary to immediately end when the + # Manager is stopped, otherwise, this setting is unsafe. Setting this significantly + # speeds up voluntary leader transitions as the new leader don't have to wait + # LeaseDuration time first. + # In the default scaffold provided, the program ends immediately after + # the manager stops, so would be fine to enable this option. However, + # if you are doing or is intended to do any operation such as perform cleanups + # after the manager stops then its usage might be unsafe. + # leaderElectionReleaseOnCancel: true +metricsService: + ports: + - name: https + port: 8443 + protocol: TCP + targetPort: https + type: ClusterIP diff --git a/config/manager/kustomization.yaml b/config/manager/kustomization.yaml index 329ffa7..10452d2 100644 --- a/config/manager/kustomization.yaml +++ b/config/manager/kustomization.yaml @@ -13,4 +13,4 @@ kind: Kustomization images: - name: controller newName: akyriako78/rekuberate-io-sleepcycles - newTag: 0.1.2 + newTag: 0.2.0