@@ -36,14 +36,14 @@ import (
3636 "github.com/sirupsen/logrus"
3737 "github.com/urfave/cli/v2"
3838 velerov1 "github.com/vmware-tanzu/velero/pkg/apis/velero/v1"
39- veleroclientv1 "github.com/vmware-tanzu/velero/pkg/generated/clientset/versioned/typed /velero/v1"
39+ velerov1api "github.com/vmware-tanzu/velero/pkg/apis /velero/v1"
4040 corev1 "k8s.io/api/core/v1"
4141 "k8s.io/apimachinery/pkg/api/errors"
4242 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
4343 "k8s.io/apimachinery/pkg/types"
4444 k8snet "k8s.io/utils/net"
4545 "k8s.io/utils/ptr"
46- k8sconfig "sigs.k8s.io/controller-runtime/pkg/client/config "
46+ "sigs.k8s.io/controller-runtime/pkg/client"
4747 k8syaml "sigs.k8s.io/yaml"
4848)
4949
@@ -222,15 +222,9 @@ func getBackupFromRestoreState(ctx context.Context, provider *defaults.Provider,
222222 if ! ok || backupName == "" {
223223 return nil , nil
224224 }
225- cfg , err := k8sconfig .GetConfig ()
226- if err != nil {
227- return nil , fmt .Errorf ("unable to get kubernetes config: %w" , err )
228- }
229- veleroClient , err := veleroclientv1 .NewForConfig (cfg )
230- if err != nil {
231- return nil , fmt .Errorf ("unable to create velero client: %w" , err )
232- }
233- backup , err := veleroClient .Backups (defaults .VeleroNamespace ).Get (ctx , backupName , metav1.GetOptions {})
225+
226+ backup := velerov1api.Backup {}
227+ err = kcli .Get (ctx , types.NamespacedName {Name : backupName , Namespace : defaults .VeleroNamespace }, & backup )
234228 if err != nil {
235229 return nil , fmt .Errorf ("unable to get backup: %w" , err )
236230 }
@@ -246,10 +240,10 @@ func getBackupFromRestoreState(ctx context.Context, provider *defaults.Provider,
246240 return nil , fmt .Errorf ("unable to get k0s config from disk: %w" , err )
247241 }
248242
249- if restorable , reason := isBackupRestorable (backup , provider , rel , isAirgap , k0sCfg ); ! restorable {
243+ if restorable , reason := isBackupRestorable (& backup , provider , rel , isAirgap , k0sCfg ); ! restorable {
250244 return nil , fmt .Errorf ("backup %q %s" , backup .Name , reason )
251245 }
252- return backup , nil
246+ return & backup , nil
253247}
254248
255249// newS3BackupStore prompts the user for S3 backup store configuration.
@@ -456,14 +450,9 @@ func waitForBackups(ctx context.Context, provider *defaults.Provider, isAirgap b
456450 defer loading .Close ()
457451 loading .Infof ("Waiting for backups to become available" )
458452
459- cfg , err := k8sconfig .GetConfig ()
460- if err != nil {
461- return nil , fmt .Errorf ("unable to get kubernetes config: %w" , err )
462- }
463-
464- veleroClient , err := veleroclientv1 .NewForConfig (cfg )
453+ kcli , err := kubeutils .KubeClient ()
465454 if err != nil {
466- return nil , fmt .Errorf ("unable to create velero client: %w" , err )
455+ return nil , fmt .Errorf ("unable to create kube client: %w" , err )
467456 }
468457
469458 rel , err := release .GetChannelRelease ()
@@ -482,7 +471,9 @@ func waitForBackups(ctx context.Context, provider *defaults.Provider, isAirgap b
482471 for i := 0 ; i < 30 ; i ++ {
483472 time .Sleep (5 * time .Second )
484473
485- backupList , err := veleroClient .Backups (defaults .VeleroNamespace ).List (ctx , metav1.ListOptions {})
474+ backupList := velerov1api.BackupList {}
475+ err = kcli .List (ctx , & backupList , client .InNamespace (defaults .VeleroNamespace ))
476+
486477 if err != nil {
487478 return nil , fmt .Errorf ("unable to list backups: %w" , err )
488479 }
@@ -556,29 +547,25 @@ func getK0sConfigFromDisk() (*k0sv1beta1.ClusterConfig, error) {
556547
557548// waitForVeleroRestoreCompleted waits for a Velero restore to complete.
558549func waitForVeleroRestoreCompleted (ctx context.Context , restoreName string ) (* velerov1.Restore , error ) {
559- cfg , err := k8sconfig .GetConfig ()
560- if err != nil {
561- return nil , fmt .Errorf ("unable to get kubernetes config: %w" , err )
562- }
563-
564- veleroClient , err := veleroclientv1 .NewForConfig (cfg )
550+ kcli , err := kubeutils .KubeClient ()
565551 if err != nil {
566- return nil , fmt .Errorf ("unable to create velero client: %w" , err )
552+ return nil , fmt .Errorf ("unable to create kube client: %w" , err )
567553 }
568554
569555 for {
570- restore , err := veleroClient .Restores (defaults .VeleroNamespace ).Get (ctx , restoreName , metav1.GetOptions {})
556+ restore := velerov1api.Restore {}
557+ err = kcli .Get (ctx , types.NamespacedName {Name : restoreName , Namespace : defaults .VeleroNamespace }, & restore )
571558 if err != nil {
572559 return nil , fmt .Errorf ("unable to get restore: %w" , err )
573560 }
574561
575562 switch restore .Status .Phase {
576563 case velerov1 .RestorePhaseCompleted :
577- return restore , nil
564+ return & restore , nil
578565 case velerov1 .RestorePhaseFailed :
579- return restore , fmt .Errorf ("restore failed" )
566+ return & restore , fmt .Errorf ("restore failed" )
580567 case velerov1 .RestorePhasePartiallyFailed :
581- return restore , fmt .Errorf ("restore partially failed" )
568+ return & restore , fmt .Errorf ("restore partially failed" )
582569 default :
583570 // in progress
584571 }
@@ -751,20 +738,16 @@ func waitForDRComponent(ctx context.Context, drComponent disasterRecoveryCompone
751738
752739// restoreFromBackup restores a disaster recovery component from a backup.
753740func restoreFromBackup (ctx context.Context , backup * velerov1.Backup , drComponent disasterRecoveryComponent ) error {
754- cfg , err := k8sconfig .GetConfig ()
755- if err != nil {
756- return fmt .Errorf ("unable to get kubernetes config: %w" , err )
757- }
758-
759- veleroClient , err := veleroclientv1 .NewForConfig (cfg )
741+ kcli , err := kubeutils .KubeClient ()
760742 if err != nil {
761- return fmt .Errorf ("unable to create velero client: %w" , err )
743+ return fmt .Errorf ("unable to create kube client: %w" , err )
762744 }
763745
764746 restoreName := fmt .Sprintf ("%s.%s" , backup .Name , string (drComponent ))
765747
766748 // check if a restore object already exists
767- _ , err = veleroClient .Restores (defaults .VeleroNamespace ).Get (ctx , restoreName , metav1.GetOptions {})
749+ rest := velerov1api.Restore {}
750+ err = kcli .Get (ctx , types.NamespacedName {Name : restoreName , Namespace : defaults .VeleroNamespace }, & rest )
768751 if err != nil && ! errors .IsNotFound (err ) {
769752 return fmt .Errorf ("unable to get restore: %w" , err )
770753 }
@@ -812,7 +795,7 @@ func restoreFromBackup(ctx context.Context, backup *velerov1.Backup, drComponent
812795 return fmt .Errorf ("unable to ensure restore resource modifiers: %w" , err )
813796 }
814797
815- _ , err := veleroClient . Restores ( defaults . VeleroNamespace ). Create (ctx , restore , metav1. CreateOptions {} )
798+ err = kcli . Create (ctx , restore )
816799 if err != nil {
817800 return fmt .Errorf ("unable to create restore: %w" , err )
818801 }
0 commit comments