in pkg/virtualgateway/resource_manager.go [159:195]
func (m *defaultResourceManager) updateSDKVirtualGateway(ctx context.Context, sdkVG *appmeshsdk.VirtualGatewayData, ms *appmesh.Mesh, vg *appmesh.VirtualGateway) (*appmeshsdk.VirtualGatewayData, error) {
actualSDKVGSpec := sdkVG.Spec
desiredSDKVGSpec, err := BuildSDKVirtualGatewaySpec(ctx, vg)
if err != nil {
return nil, err
}
opts := equality.CompareOptionForVirtualGatewaySpec()
if cmp.Equal(desiredSDKVGSpec, actualSDKVGSpec, opts) {
return sdkVG, nil
}
if !m.isSDKVirtualGatewayControlledByCRDVirtualGateway(ctx, sdkVG, vg) {
m.log.V(2).Info("skip virtualGateway update since it's not controlled",
"virtualGateway", k8s.NamespacedName(vg),
"virtualGatewayARN", aws.StringValue(sdkVG.Metadata.Arn),
)
return sdkVG, nil
}
diff := cmp.Diff(desiredSDKVGSpec, actualSDKVGSpec, opts)
m.log.V(2).Info("virtualGatewaySpec changed",
"virtualGateway", k8s.NamespacedName(vg),
"actualSDKVGSpec", actualSDKVGSpec,
"desiredSDKVGSpec", desiredSDKVGSpec,
"diff", diff,
)
resp, err := m.appMeshSDK.UpdateVirtualGatewayWithContext(ctx, &appmeshsdk.UpdateVirtualGatewayInput{
MeshName: ms.Spec.AWSName,
MeshOwner: ms.Spec.MeshOwner,
Spec: desiredSDKVGSpec,
VirtualGatewayName: sdkVG.VirtualGatewayName,
})
if err != nil {
return nil, err
}
return resp.VirtualGateway, nil
}