Skip to content

Commit

Permalink
fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
egegunes committed Jan 31, 2025
1 parent cc3194a commit 73551ef
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 21 deletions.
2 changes: 1 addition & 1 deletion e2e-tests/functions
Original file line number Diff line number Diff line change
Expand Up @@ -260,7 +260,7 @@ wait_backup_restore() {
local current_state=
until [[ ${current_state} == ${target_state} ]]; do
current_state=$(kubectl_bin get pxc-restore $backup_name -o jsonpath='{.status.state}')
if [[ $retry -ge $wait_time || ${current_state} == 'Failed' ]]; then
if [[ $retry -ge $wait_time || (${current_state} == 'Failed' && ${target_state} != 'Failed') ]]; then
kubectl_bin get pxc-restore ${backup_name} -o yaml
echo "Restore object pxc-restore/${backup_name} is in ${current_state} state."
echo something went wrong with operator or kubernetes cluster
Expand Down
31 changes: 16 additions & 15 deletions pkg/controller/pxc/backup.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import (

"github.com/pkg/errors"
"github.com/robfig/cron/v3"
appsv1 "k8s.io/api/apps/v1"
k8serrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/labels"
Expand All @@ -19,6 +18,7 @@ import (

api "github.com/percona/percona-xtradb-cluster-operator/pkg/apis/pxc/v1"
"github.com/percona/percona-xtradb-cluster-operator/pkg/naming"
"github.com/percona/percona-xtradb-cluster-operator/pkg/pxc/app/binlogcollector"
)

type BackupScheduleJob struct {
Expand All @@ -37,14 +37,15 @@ func (r *ReconcilePerconaXtraDBCluster) reconcileBackups(ctx context.Context, cr
if err != nil {
return errors.Wrap(err, "failed to check if restore is running")
}

if cr.Status.Status == api.AppStateReady && cr.Spec.Backup.PITR.Enabled && !cr.Spec.Pause && !restoreRunning {
if err := r.reconcileBinlogCollector(ctx, cr); err != nil {
return errors.Wrap(err, "reconcile binlog collector")
}
}

if !cr.Spec.Backup.PITR.Enabled || cr.Spec.Pause || restoreRunning {
err := r.deletePITR(cr)
err := r.deletePITR(ctx, cr)
if err != nil {
return errors.Wrap(err, "delete pitr")
}
Expand Down Expand Up @@ -238,20 +239,20 @@ func (h *minHeap) Pop() interface{} {
return x
}

func (r *ReconcilePerconaXtraDBCluster) deletePITR(cr *api.PerconaXtraDBCluster) error {
collectorDeployment := appsv1.Deployment{
TypeMeta: metav1.TypeMeta{
APIVersion: "apps/v1",
Kind: "Deployment",
},
ObjectMeta: metav1.ObjectMeta{
Name: naming.BinlogCollectorDeploymentName(cr),
Namespace: cr.Namespace,
},
func (r *ReconcilePerconaXtraDBCluster) deletePITR(ctx context.Context, cr *api.PerconaXtraDBCluster) error {
collectorDeployment, err := binlogcollector.GetDeployment(cr, "")
if err != nil {
return errors.Wrap(err, "get collector deployment")
}
err := r.client.Delete(context.TODO(), &collectorDeployment)
if err != nil && !k8serrors.IsNotFound(err) {
return errors.Wrap(err, "delete pitr deployment")

if err := r.client.Delete(ctx, &collectorDeployment); err != nil && !k8serrors.IsNotFound(err) {
return errors.Wrap(err, "delete collector deployment")
}

if !cr.Spec.Backup.PITR.Enabled {
if err := r.client.Delete(ctx, binlogcollector.GetService(cr)); err != nil && !k8serrors.IsNotFound(err) {
return errors.Wrap(err, "delete collector service")
}
}

return nil
Expand Down
6 changes: 3 additions & 3 deletions pkg/controller/pxc/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,7 @@ func (r *ReconcilePerconaXtraDBCluster) Reconcile(ctx context.Context, request r
log.Info("The finalizer delete-pxc-pods-in-order is deprecated and will be deleted in 1.18.0. Use percona.com/delete-pxc-pods-in-order")
fallthrough
case naming.FinalizerDeletePxcPodsInOrder:
err = r.deletePXCPods(o)
err = r.deletePXCPods(ctx, o)
}
if err != nil {
finalizers = append(finalizers, fnlz)
Expand Down Expand Up @@ -746,14 +746,14 @@ func (r *ReconcilePerconaXtraDBCluster) reconcilePDB(ctx context.Context, cr *ap
return errors.Wrap(r.createOrUpdate(ctx, cr, pdb), "reconcile pdb")
}

func (r *ReconcilePerconaXtraDBCluster) deletePXCPods(cr *api.PerconaXtraDBCluster) error {
func (r *ReconcilePerconaXtraDBCluster) deletePXCPods(ctx context.Context, cr *api.PerconaXtraDBCluster) error {
sfs := statefulset.NewNode(cr)
err := r.deleteStatefulSetPods(cr.Namespace, sfs)
if err != nil {
return errors.Wrap(err, "delete statefulset pods")
}
if cr.Spec.Backup != nil && cr.Spec.Backup.PITR.Enabled {
return errors.Wrap(r.deletePITR(cr), "delete pitr pod")
return errors.Wrap(r.deletePITR(ctx, cr), "delete pitr pod")
}

return nil
Expand Down
6 changes: 4 additions & 2 deletions pkg/controller/pxcrestore/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -218,8 +218,10 @@ func (r *ReconcilePerconaXtraDBClusterRestore) Reconcile(ctx context.Context, re
return rr, err
}

if err := binlogcollector.InvalidateCache(ctx, r.client, cluster); err != nil {
log.Error(err, "failed to invalidate binlog collector cache")
if cluster.Spec.Backup.PITR.Enabled {
if err := binlogcollector.InvalidateCache(ctx, r.client, cluster); err != nil {
log.Error(err, "failed to invalidate binlog collector cache")
}
}

log.Info("starting cluster", "cluster", cr.Spec.PXCCluster)
Expand Down

0 comments on commit 73551ef

Please sign in to comment.