Skip to content

Commit

Permalink
Add ability to disable medusa-purge cron
Browse files Browse the repository at this point in the history
  • Loading branch information
ericsmalling committed Apr 19, 2024
1 parent a8ccb3a commit c6f57a2
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 14 deletions.
6 changes: 6 additions & 0 deletions apis/medusa/v1alpha1/medusa_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -181,4 +181,10 @@ type MedusaClusterTemplate struct {
// Define the liveness probe settings to use for the Medusa containers.
// +optional
LivenessProbe *corev1.Probe `json:"livenessProbe,omitempty"`

// Should medusa purge backups nightly or not
// Defaults to true.
// +kubebuilder:default=true
// +optional
PurgeBackups bool `json:"purgeBackups,omitempty"`
}
1 change: 1 addition & 0 deletions config/crd/bases/k8ssandra.io_k8ssandraclusters.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25180,6 +25180,7 @@ spec:
type: string
type: object
type: object
purgeBackups: false
storageProperties:
description: Provides all storage backend related properties for
backups.
Expand Down
30 changes: 16 additions & 14 deletions controllers/k8ssandra/medusa_reconciler.go
Original file line number Diff line number Diff line change
Expand Up @@ -138,21 +138,23 @@ func (r *K8ssandraClusterReconciler) reconcileMedusa(
return result.RequeueSoon(r.DefaultDelay)
}
// Create a cron job to purge Medusa backups
operatorNamespace := r.getOperatorNamespace()
purgeCronJob, err := medusa.PurgeCronJob(dcConfig, kc.SanitizedName(), operatorNamespace, logger)
if err != nil {
logger.Info("Failed to create Medusa purge backups cronjob", "error", err)
return result.Error(err)
}
purgeCronJob.SetLabels(labels.CleanedUpByLabels(kcKey))
recRes = reconciliation.ReconcileObject(ctx, remoteClient, r.DefaultDelay, *purgeCronJob)
switch {
case recRes.IsError():
return recRes
case recRes.IsRequeue():
return recRes
logger.Info("Checking if Medusa backups should be purged, PurgeBackups: " + fmt.Sprintf("%t", medusaSpec.PurgeBackups))
if medusaSpec.PurgeBackups {
operatorNamespace := r.getOperatorNamespace()
purgeCronJob, err := medusa.PurgeCronJob(dcConfig, kc.SanitizedName(), operatorNamespace, logger)
if err != nil {
logger.Info("Failed to create Medusa purge backups cronjob", "error", err)
return result.Error(err)
}
purgeCronJob.SetLabels(labels.CleanedUpByLabels(kcKey))
recRes = reconciliation.ReconcileObject(ctx, remoteClient, r.DefaultDelay, *purgeCronJob)
switch {
case recRes.IsError():
return recRes
case recRes.IsRequeue():
return recRes
}
}

} else {
logger.Info("Medusa is not enabled")
}
Expand Down

0 comments on commit c6f57a2

Please sign in to comment.