Skip to content

Commit 9511a76

Browse files
committed
GKEBackupBackupPlan: resolve reference fields
1 parent 12ed2ec commit 9511a76

File tree

3 files changed

+37
-23
lines changed

3 files changed

+37
-23
lines changed

pkg/controller/direct/backupdr/backupplan_controller.go

+1
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ func (m *modelBackupPlan) AdapterForObject(ctx context.Context, reader client.Re
6464
return nil, err
6565
}
6666

67+
// resolve required reference fields
6768
if obj.Spec.BackupVaultRef != nil {
6869
if _, err := obj.Spec.BackupVaultRef.NormalizedExternal(ctx, reader, obj.GetNamespace()); err != nil {
6970
return nil, err

pkg/controller/direct/gkebackup/backupplan_controller.go

+35-22
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ import (
4141
"github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/direct"
4242
"github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/direct/directbase"
4343
"github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/direct/registry"
44-
"github.com/GoogleCloudPlatform/k8s-config-connector/pkg/resourceoverrides"
4544
)
4645

4746
func init() {
@@ -69,20 +68,6 @@ func (m *backupPlanModel) AdapterForObject(ctx context.Context, reader client.Re
6968
return nil, err
7069
}
7170

72-
// normalize reference fields
73-
if obj.Spec.ClusterRef != nil {
74-
if _, err := obj.Spec.ClusterRef.NormalizedExternal(ctx, reader, obj.GetNamespace()); err != nil {
75-
return nil, err
76-
}
77-
}
78-
if obj.Spec.BackupConfig != nil &&
79-
obj.Spec.BackupConfig.EncryptionKey != nil &&
80-
obj.Spec.BackupConfig.EncryptionKey.KMSKeyRef != nil {
81-
if _, err := refs.ResolveKMSCryptoKeyRef(ctx, reader, obj, obj.Spec.BackupConfig.EncryptionKey.KMSKeyRef); err != nil {
82-
return nil, err
83-
}
84-
}
85-
8671
// Get gkebackup GCP client
8772
gcpClient, err := newGCPClient(ctx, &m.config)
8873
if err != nil {
@@ -96,6 +81,7 @@ func (m *backupPlanModel) AdapterForObject(ctx context.Context, reader client.Re
9681
gcpClient: client,
9782
id: id,
9883
desired: obj,
84+
reader: reader,
9985
}, nil
10086
}
10187

@@ -105,11 +91,11 @@ func (m *backupPlanModel) AdapterForURL(ctx context.Context, url string) (direct
10591
}
10692

10793
type backupPlanAdapter struct {
108-
gcpClient *gcp.BackupForGKEClient
109-
id *krm.BackupPlanIdentity
110-
desired *krm.GKEBackupBackupPlan
111-
actual *pb.BackupPlan
112-
resourceOverrides resourceoverrides.ResourceOverrides
94+
gcpClient *gcp.BackupForGKEClient
95+
id *krm.BackupPlanIdentity
96+
desired *krm.GKEBackupBackupPlan
97+
actual *pb.BackupPlan
98+
reader client.Reader
11399
}
114100

115101
var _ directbase.Adapter = &backupPlanAdapter{}
@@ -134,8 +120,12 @@ func (a *backupPlanAdapter) Find(ctx context.Context) (bool, error) {
134120
func (a *backupPlanAdapter) Create(ctx context.Context, createOp *directbase.CreateOperation) error {
135121
log := klog.FromContext(ctx)
136122
log.V(2).Info("creating gkebackup backupplan", "name", a.id)
137-
mapCtx := &direct.MapContext{}
138123

124+
if err := a.normalizeReferenceFields(ctx); err != nil {
125+
return err
126+
}
127+
128+
mapCtx := &direct.MapContext{}
139129
desired := a.desired.DeepCopy()
140130
resource := GKEBackupBackupPlanSpec_ToProto(mapCtx, &desired.Spec)
141131
if mapCtx.Err() != nil {
@@ -169,8 +159,12 @@ func (a *backupPlanAdapter) Create(ctx context.Context, createOp *directbase.Cre
169159
func (a *backupPlanAdapter) Update(ctx context.Context, updateOp *directbase.UpdateOperation) error {
170160
log := klog.FromContext(ctx)
171161
log.V(2).Info("updating gkebackup backupplan", "name", a.id)
172-
mapCtx := &direct.MapContext{}
173162

163+
if err := a.normalizeReferenceFields(ctx); err != nil {
164+
return err
165+
}
166+
167+
mapCtx := &direct.MapContext{}
174168
desired := a.desired.DeepCopy()
175169
resource := GKEBackupBackupPlanSpec_ToProto(mapCtx, &desired.Spec)
176170
if mapCtx.Err() != nil {
@@ -330,3 +324,22 @@ func backupConfigsEqual(a, b *gkebackuppb.BackupPlan_BackupConfig) bool {
330324

331325
return true
332326
}
327+
328+
func (a *backupPlanAdapter) normalizeReferenceFields(ctx context.Context) error {
329+
obj := a.desired
330+
331+
if obj.Spec.ClusterRef != nil {
332+
if _, err := obj.Spec.ClusterRef.NormalizedExternal(ctx, a.reader, obj.GetNamespace()); err != nil {
333+
return err
334+
}
335+
}
336+
if obj.Spec.BackupConfig != nil &&
337+
obj.Spec.BackupConfig.EncryptionKey != nil &&
338+
obj.Spec.BackupConfig.EncryptionKey.KMSKeyRef != nil {
339+
if _, err := refs.ResolveKMSCryptoKeyRef(ctx, a.reader, obj, obj.Spec.BackupConfig.EncryptionKey.KMSKeyRef); err != nil {
340+
return err
341+
}
342+
}
343+
344+
return nil
345+
}

pkg/controller/direct/gkebackup/restoreplan_controller.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ func (m *restorePlanModel) AdapterForObject(ctx context.Context, reader client.R
6868
return nil, err
6969
}
7070

71-
// normalize reference fields
71+
// normalize required reference fields
7272
if obj.Spec.BackupPlanRef != nil {
7373
if _, err := obj.Spec.BackupPlanRef.NormalizedExternal(ctx, reader, obj.GetNamespace()); err != nil {
7474
return nil, err

0 commit comments

Comments
 (0)