Remove dependency of generated client part 3

Replace generated discovery client with client-go client.
Remove generated client from PVR action.
Remove generated client from pkg/cmd directory.
Delete velero generate client from client factory.

Signed-off-by: Xun Jiang <jxun@vmware.com>
This commit is contained in:
Xun Jiang
2023-11-06 11:34:39 +08:00
parent d6146ecff4
commit 56b5e982d9
19 changed files with 121 additions and 261 deletions
+13 -11
View File
@@ -27,11 +27,11 @@ import (
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"k8s.io/apimachinery/pkg/runtime"
corev1client "k8s.io/client-go/kubernetes/typed/core/v1"
ctrlclient "sigs.k8s.io/controller-runtime/pkg/client"
veleroimage "github.com/vmware-tanzu/velero/internal/velero"
velerov1api "github.com/vmware-tanzu/velero/pkg/apis/velero/v1"
"github.com/vmware-tanzu/velero/pkg/builder"
velerov1client "github.com/vmware-tanzu/velero/pkg/generated/clientset/versioned/typed/velero/v1"
"github.com/vmware-tanzu/velero/pkg/label"
"github.com/vmware-tanzu/velero/pkg/plugin/framework/common"
"github.com/vmware-tanzu/velero/pkg/plugin/velero"
@@ -47,16 +47,16 @@ const (
)
type PodVolumeRestoreAction struct {
logger logrus.FieldLogger
client corev1client.ConfigMapInterface
podVolumeBackupClient velerov1client.PodVolumeBackupInterface
logger logrus.FieldLogger
client corev1client.ConfigMapInterface
crClient ctrlclient.Client
}
func NewPodVolumeRestoreAction(logger logrus.FieldLogger, client corev1client.ConfigMapInterface, podVolumeBackupClient velerov1client.PodVolumeBackupInterface) *PodVolumeRestoreAction {
func NewPodVolumeRestoreAction(logger logrus.FieldLogger, client corev1client.ConfigMapInterface, crClient ctrlclient.Client) *PodVolumeRestoreAction {
return &PodVolumeRestoreAction{
logger: logger,
client: client,
podVolumeBackupClient: podVolumeBackupClient,
logger: logger,
client: client,
crClient: crClient,
}
}
@@ -86,9 +86,11 @@ func (a *PodVolumeRestoreAction) Execute(input *velero.RestoreItemActionExecuteI
log := a.logger.WithField("pod", kube.NamespaceAndName(&pod))
opts := label.NewListOptionsForBackup(input.Restore.Spec.BackupName)
podVolumeBackupList, err := a.podVolumeBackupClient.List(context.TODO(), opts)
if err != nil {
opts := &ctrlclient.ListOptions{
LabelSelector: label.NewSelectorForBackup(input.Restore.Spec.BackupName),
}
podVolumeBackupList := new(velerov1api.PodVolumeBackupList)
if err := a.crClient.List(context.TODO(), podVolumeBackupList, opts); err != nil {
return nil, errors.WithStack(err)
}
+5 -13
View File
@@ -17,7 +17,6 @@ limitations under the License.
package restore
import (
"context"
"sort"
"testing"
@@ -25,7 +24,6 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
corev1api "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/client-go/kubernetes/fake"
@@ -34,7 +32,6 @@ import (
velerov1api "github.com/vmware-tanzu/velero/pkg/apis/velero/v1"
"github.com/vmware-tanzu/velero/pkg/builder"
"github.com/vmware-tanzu/velero/pkg/buildinfo"
velerofake "github.com/vmware-tanzu/velero/pkg/generated/clientset/versioned/fake"
"github.com/vmware-tanzu/velero/pkg/plugin/velero"
velerotest "github.com/vmware-tanzu/velero/pkg/test"
"github.com/vmware-tanzu/velero/pkg/util/kube"
@@ -131,7 +128,7 @@ func TestPodVolumeRestoreActionExecute(t *testing.T) {
name string
pod *corev1api.Pod
podFromBackup *corev1api.Pod
podVolumeBackups []*velerov1api.PodVolumeBackup
podVolumeBackups []runtime.Object
want *corev1api.Pod
}{
{
@@ -179,7 +176,7 @@ func TestPodVolumeRestoreActionExecute(t *testing.T) {
builder.WithAnnotations("snapshot.velero.io/not-used", "")).
InitContainers(builder.ForContainer("first-container", "").Result()).
Result(),
podVolumeBackups: []*velerov1api.PodVolumeBackup{
podVolumeBackups: []runtime.Object{
builder.ForPodVolumeBackup(veleroNs, "pvb-1").
PodName("my-pod").
PodNamespace("ns-1").
@@ -225,7 +222,7 @@ func TestPodVolumeRestoreActionExecute(t *testing.T) {
builder.ForVolume("vol-2").PersistentVolumeClaimSource("pvc-2").Result(),
).
Result(),
podVolumeBackups: []*velerov1api.PodVolumeBackup{
podVolumeBackups: []runtime.Object{
builder.ForPodVolumeBackup(veleroNs, "pvb-1").
PodName("my-pod").
PodNamespace("original-ns").
@@ -259,12 +256,7 @@ func TestPodVolumeRestoreActionExecute(t *testing.T) {
for _, tc := range tests {
t.Run(tc.name, func(t *testing.T) {
clientset := fake.NewSimpleClientset()
clientsetVelero := velerofake.NewSimpleClientset()
for _, podVolumeBackup := range tc.podVolumeBackups {
_, err := clientsetVelero.VeleroV1().PodVolumeBackups(veleroNs).Create(context.TODO(), podVolumeBackup, metav1.CreateOptions{})
require.NoError(t, err)
}
crClient := velerotest.NewFakeControllerRuntimeClient(t, tc.podVolumeBackups...)
unstructuredPod, err := runtime.DefaultUnstructuredConverter.ToUnstructured(tc.pod)
require.NoError(t, err)
@@ -294,7 +286,7 @@ func TestPodVolumeRestoreActionExecute(t *testing.T) {
a := NewPodVolumeRestoreAction(
logrus.StandardLogger(),
clientset.CoreV1().ConfigMaps(veleroNs),
clientsetVelero.VeleroV1().PodVolumeBackups(veleroNs),
crClient,
)
// method under test