@@ -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
4546func 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