@@ -18,6 +18,7 @@ import (
1818 "github.com/percona/percona-postgresql-operator/internal/logging"
1919 "github.com/percona/percona-postgresql-operator/internal/naming"
2020 "github.com/percona/percona-postgresql-operator/percona/controller"
21+ pNaming "github.com/percona/percona-postgresql-operator/percona/naming"
2122 v2 "github.com/percona/percona-postgresql-operator/pkg/apis/pgv2.percona.com/v2"
2223 "github.com/percona/percona-postgresql-operator/pkg/apis/postgres-operator.crunchydata.com/v1beta1"
2324)
@@ -40,7 +41,7 @@ func (r *PGRestoreReconciler) SetupWithManager(mgr manager.Manager) error {
4041 return builder .ControllerManagedBy (mgr ).For (& v2.PerconaPGRestore {}).Complete (r )
4142}
4243
43- // +kubebuilder:rbac:groups=pgv2.percona.com,resources=perconapgrestores,verbs=get;list;watch
44+ // +kubebuilder:rbac:groups=pgv2.percona.com,resources=perconapgrestores,verbs=get;list;watch;create
4445// +kubebuilder:rbac:groups=pgv2.percona.com,resources=perconapgrestores/status,verbs=patch;update
4546// +kubebuilder:rbac:groups=pgv2.percona.com,resources=perconapgclusters,verbs=get;list;create;update;patch;watch
4647// +kubebuilder:rbac:groups=postgres-operator.crunchydata.com,resources=postgresclusters,verbs=get;list;create;update;patch;watch
@@ -82,11 +83,12 @@ func (r *PGRestoreReconciler) Reconcile(ctx context.Context, request reconcile.R
8283 return reconcile.Result {}, errors .Wrap (err , "update PGRestore status" )
8384 }
8485
85- if err := startRestore (ctx , r .Client , pgCluster , pgRestore ); err != nil {
86- return reconcile.Result {}, errors .Wrap (err , "start restore" )
86+ if _ , ok := pgRestore .Annotations [pNaming .AnnotationClusterBootstrapRestore ]; ! ok {
87+ if err := startRestore (ctx , r .Client , pgCluster , pgRestore ); err != nil {
88+ return reconcile.Result {}, errors .Wrap (err , "start restore" )
89+ }
8790 }
8891
89- log .Info ("Restore is starting" )
9092 return reconcile.Result {}, nil
9193 case v2 .RestoreStarting :
9294 job := & batchv1.Job {}
@@ -124,8 +126,10 @@ func (r *PGRestoreReconciler) Reconcile(ctx context.Context, request reconcile.R
124126 return reconcile.Result {RequeueAfter : time .Second * 5 }, nil
125127 }
126128
127- if err := disableRestore (ctx , r .Client , pgCluster ); err != nil {
128- return reconcile.Result {}, errors .Wrap (err , "disable restore" )
129+ if _ , ok := pgRestore .Annotations [pNaming .AnnotationClusterBootstrapRestore ]; ! ok {
130+ if err := disableRestore (ctx , r .Client , pgCluster ); err != nil {
131+ return reconcile.Result {}, errors .Wrap (err , "disable restore" )
132+ }
129133 }
130134
131135 // Don't add code after the status update.
0 commit comments