Skip to content

Commit a698cd4

Browse files
authored
Add structured reporting diff to VMwareEngineNetworkPeering (#6705)
### BRIEF Change description Fixes #6624 #### WHY do we need this change? Add structured reporting diff to the controller in `pkg/controller/direct/vmwareengine/networkpeering_controller.go`. The `structuredreporting.ReportDiff` should be used in the `Update` method of the adapter to report which fields are being updated. This helps in debugging reconciliation loops and provides better visibility into what changed. #### Special notes for your reviewer: #### Does this PR add something which needs to be 'release noted'? ```release-note NONE ``` #### Additional documentation e.g., references, usage docs, etc.: ```docs NONE ``` #### Intended Milestone - [ ] Reviewer tagged PR with the actual milestone. ### Tests you have done - [ ] Run `make ready-pr` to ensure this PR is ready for review. - [ ] Perform necessary E2E testing for changed resources.
2 parents 5acc4ac + 9e5416c commit a698cd4

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

pkg/controller/direct/vmwareengine/networkpeering_controller.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ import (
4040
"github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/direct"
4141
"github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/direct/directbase"
4242
"github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/direct/registry"
43+
"github.com/GoogleCloudPlatform/k8s-config-connector/pkg/structuredreporting"
4344
)
4445

4546
func init() {
@@ -172,35 +173,47 @@ func (a *networkPeeringAdapter) Update(ctx context.Context, updateOp *directbase
172173
return mapCtx.Err()
173174
}
174175

176+
report := &structuredreporting.Diff{Object: updateOp.GetUnstructured()}
177+
175178
var paths []string
176179
if desired.Spec.Description != nil && !reflect.DeepEqual(resource.Description, a.actual.Description) {
180+
report.AddField("description", a.actual.Description, resource.Description)
177181
paths = append(paths, "description")
178182
}
179183
if desired.Spec.PeerNetwork != nil && !reflect.DeepEqual(resource.PeerNetwork, a.actual.PeerNetwork) {
184+
report.AddField("peer_network", a.actual.PeerNetwork, resource.PeerNetwork)
180185
paths = append(paths, "peer_network")
181186
}
182187
if desired.Spec.PeerNetworkType != nil && !reflect.DeepEqual(resource.PeerNetworkType, a.actual.PeerNetworkType) {
188+
report.AddField("peer_network_type", a.actual.PeerNetworkType, resource.PeerNetworkType)
183189
paths = append(paths, "peer_network_type")
184190
}
185191
if desired.Spec.ExportCustomRoutes != nil && !reflect.DeepEqual(resource.ExportCustomRoutes, a.actual.ExportCustomRoutes) {
192+
report.AddField("export_custom_routes", a.actual.ExportCustomRoutes, resource.ExportCustomRoutes)
186193
paths = append(paths, "export_custom_routes")
187194
}
188195
if desired.Spec.ImportCustomRoutes != nil && !reflect.DeepEqual(resource.ImportCustomRoutes, a.actual.ImportCustomRoutes) {
196+
report.AddField("import_custom_routes", a.actual.ImportCustomRoutes, resource.ImportCustomRoutes)
189197
paths = append(paths, "import_custom_routes")
190198
}
191199
if desired.Spec.ExchangeSubnetRoutes != nil && !reflect.DeepEqual(resource.ExchangeSubnetRoutes, a.actual.ExchangeSubnetRoutes) {
200+
report.AddField("exchange_subnet_routes", a.actual.ExchangeSubnetRoutes, resource.ExchangeSubnetRoutes)
192201
paths = append(paths, "exchange_subnet_routes")
193202
}
194203
if desired.Spec.ExportCustomRoutesWithPublicIP != nil && !reflect.DeepEqual(resource.ExportCustomRoutesWithPublicIp, a.actual.ExportCustomRoutesWithPublicIp) {
204+
report.AddField("export_custom_routes_with_public_ip", a.actual.ExportCustomRoutesWithPublicIp, resource.ExportCustomRoutesWithPublicIp)
195205
paths = append(paths, "export_custom_routes_with_public_ip")
196206
}
197207
if desired.Spec.ImportCustomRoutesWithPublicIP != nil && !reflect.DeepEqual(resource.ImportCustomRoutesWithPublicIp, a.actual.ImportCustomRoutesWithPublicIp) {
208+
report.AddField("import_custom_routes_with_public_ip", a.actual.ImportCustomRoutesWithPublicIp, resource.ImportCustomRoutesWithPublicIp)
198209
paths = append(paths, "import_custom_routes_with_public_ip")
199210
}
200211
if desired.Spec.PeerMTU != nil && !reflect.DeepEqual(resource.PeerMtu, a.actual.PeerMtu) {
212+
report.AddField("peer_mtu", a.actual.PeerMtu, resource.PeerMtu)
201213
paths = append(paths, "peer_mtu")
202214
}
203215
if desired.Spec.VMwareEngineNetworkRef != nil && !reflect.DeepEqual(resource.VmwareEngineNetwork, a.actual.VmwareEngineNetwork) {
216+
report.AddField("vmware_engine_network", a.actual.VmwareEngineNetwork, resource.VmwareEngineNetwork)
204217
paths = append(paths, "vmware_engine_network")
205218
}
206219

@@ -209,6 +222,7 @@ func (a *networkPeeringAdapter) Update(ctx context.Context, updateOp *directbase
209222
log.V(2).Info("no field needs update", "name", a.id)
210223
updated = a.actual
211224
} else {
225+
structuredreporting.ReportDiff(ctx, report)
212226
resource.Name = a.id.String() // we need to set the name so that GCP API can identify the resource
213227
req := &pb.UpdateNetworkPeeringRequest{
214228
NetworkPeering: resource,

0 commit comments

Comments
 (0)