Skip to content

Commit 0d1e2f2

Browse files
Merge pull request GoogleCloudPlatform#2955 from justinsb/refactor_ssm_instance_controller
chore: refactor SecureSourceManagerInstance to work in proto
2 parents b50b9e6 + fbd20e5 commit 0d1e2f2

File tree

2 files changed

+15
-13
lines changed

2 files changed

+15
-13
lines changed

pkg/controller/direct/protoutils.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@
1414

1515
package direct
1616

17-
import "google.golang.org/protobuf/proto"
17+
import (
18+
"google.golang.org/protobuf/proto"
19+
)
1820

1921
// ProtoClone is a type-safe wrapper around proto.Clone
2022
func ProtoClone[T proto.Message](t T) T {

pkg/controller/direct/securesourcemanager/instance_controller.go

+12-12
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@ import (
2727
"github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/direct/registry"
2828

2929
gcp "cloud.google.com/go/securesourcemanager/apiv1"
30-
31-
"cloud.google.com/go/securesourcemanager/apiv1/securesourcemanagerpb"
3230
pb "cloud.google.com/go/securesourcemanager/apiv1/securesourcemanagerpb"
3331
"google.golang.org/api/option"
3432

@@ -76,6 +74,12 @@ func (m *secureSourceManagerInstanceModel) AdapterForObject(ctx context.Context,
7674
return nil, err
7775
}
7876

77+
mapCtx := &direct.MapContext{}
78+
desired := SecureSourceManagerInstanceSpec_ToProto(mapCtx, &obj.Spec)
79+
if mapCtx.Err() != nil {
80+
return nil, mapCtx.Err()
81+
}
82+
7983
// Get securesourcemanager GCP client
8084
gcpClient, err := m.client(ctx)
8185
if err != nil {
@@ -84,7 +88,7 @@ func (m *secureSourceManagerInstanceModel) AdapterForObject(ctx context.Context,
8488
return &secureSourceManagerInstanceAdapter{
8589
id: id,
8690
gcpClient: gcpClient,
87-
desired: obj,
91+
desired: desired,
8892
}, nil
8993
}
9094

@@ -113,8 +117,8 @@ func (m *secureSourceManagerInstanceModel) AdapterForURL(ctx context.Context, ur
113117
type secureSourceManagerInstanceAdapter struct {
114118
id *krm.SecureSourceManagerInstanceRef
115119
gcpClient *gcp.Client
116-
desired *krm.SecureSourceManagerInstance
117-
actual *securesourcemanagerpb.Instance
120+
desired *pb.Instance
121+
actual *pb.Instance
118122
}
119123

120124
var _ directbase.Adapter = &secureSourceManagerInstanceAdapter{}
@@ -139,13 +143,8 @@ func (a *secureSourceManagerInstanceAdapter) Find(ctx context.Context) (bool, er
139143
func (a *secureSourceManagerInstanceAdapter) Create(ctx context.Context, createOp *directbase.CreateOperation) error {
140144
log := klog.FromContext(ctx)
141145
log.V(2).Info("creating Instance", "name", a.id.External)
142-
mapCtx := &direct.MapContext{}
143146

144-
desired := a.desired.DeepCopy()
145-
resource := SecureSourceManagerInstanceSpec_ToProto(mapCtx, &desired.Spec)
146-
if mapCtx.Err() != nil {
147-
return mapCtx.Err()
148-
}
147+
instance := direct.ProtoClone(a.desired)
149148

150149
parent, err := a.id.Parent()
151150
if err != nil {
@@ -159,7 +158,7 @@ func (a *secureSourceManagerInstanceAdapter) Create(ctx context.Context, createO
159158

160159
req := &pb.CreateInstanceRequest{
161160
Parent: parent.String(),
162-
Instance: resource,
161+
Instance: instance,
163162
InstanceId: instanceID,
164163
}
165164
op, err := a.gcpClient.CreateInstance(ctx, req)
@@ -173,6 +172,7 @@ func (a *secureSourceManagerInstanceAdapter) Create(ctx context.Context, createO
173172
log.V(2).Info("successfully created Instance", "name", a.id.External)
174173

175174
status := &krm.SecureSourceManagerInstanceStatus{}
175+
mapCtx := &direct.MapContext{}
176176
status.ObservedState = SecureSourceManagerInstanceObservedState_FromProto(mapCtx, created)
177177
if mapCtx.Err() != nil {
178178
return mapCtx.Err()

0 commit comments

Comments
 (0)