in pkg/gatewayroute/resource_manager.go [236:273]
func (m *defaultResourceManager) updateSDKGatewayRoute(ctx context.Context, sdkGR *appmeshsdk.GatewayRouteData, ms *appmesh.Mesh, vg *appmesh.VirtualGateway, gr *appmesh.GatewayRoute, vsByKey map[types.NamespacedName]*appmesh.VirtualService) (*appmeshsdk.GatewayRouteData, error) {
actualSDKGRSpec := sdkGR.Spec
desiredSDKGRSpec, err := BuildSDKGatewayRouteSpec(ctx, gr, vsByKey)
if err != nil {
return nil, err
}
opts := cmpopts.EquateEmpty()
if cmp.Equal(desiredSDKGRSpec, actualSDKGRSpec, opts) {
return sdkGR, nil
}
if !m.isSDKGatewayRouteControlledByCRDGatewayRoute(ctx, sdkGR, gr) {
m.log.V(2).Info("skip gatewayRoute update since it's not controlled",
"gatewayRoute", k8s.NamespacedName(gr),
"gatewayRouteARN", aws.StringValue(sdkGR.Metadata.Arn),
)
return sdkGR, nil
}
diff := cmp.Diff(desiredSDKGRSpec, actualSDKGRSpec, opts)
m.log.V(2).Info("gatewayRouteSpec changed",
"gatewayRoute", k8s.NamespacedName(gr),
"actualSDKGRSpec", actualSDKGRSpec,
"desiredSDKGRSpec", desiredSDKGRSpec,
"diff", diff,
)
resp, err := m.appMeshSDK.UpdateGatewayRouteWithContext(ctx, &appmeshsdk.UpdateGatewayRouteInput{
MeshName: ms.Spec.AWSName,
MeshOwner: ms.Spec.MeshOwner,
Spec: desiredSDKGRSpec,
VirtualGatewayName: vg.Spec.AWSName,
GatewayRouteName: sdkGR.GatewayRouteName,
})
if err != nil {
return nil, err
}
return resp.GatewayRoute, nil
}