in pkg/virtualrouter/resource_manager.go [266:300]
func (m *defaultResourceManager) updateCRDVirtualRouter(ctx context.Context, vr *appmesh.VirtualRouter, sdkVR *appmeshsdk.VirtualRouterData, sdkRouteByName map[string]*appmeshsdk.RouteData) error {
oldVR := vr.DeepCopy()
needsUpdate := false
if aws.StringValue(vr.Status.VirtualRouterARN) != aws.StringValue(sdkVR.Metadata.Arn) {
vr.Status.VirtualRouterARN = sdkVR.Metadata.Arn
needsUpdate = true
}
if aws.Int64Value(vr.Status.ObservedGeneration) != vr.Generation {
vr.Status.ObservedGeneration = aws.Int64(vr.Generation)
needsUpdate = true
}
routeARNByName := make(map[string]string)
for name, sdkRoute := range sdkRouteByName {
routeARNByName[name] = aws.StringValue(sdkRoute.Metadata.Arn)
}
if !cmp.Equal(vr.Status.RouteARNs, routeARNByName) {
vr.Status.RouteARNs = routeARNByName
needsUpdate = true
}
vrActiveConditionStatus := corev1.ConditionFalse
if sdkVR.Status != nil && aws.StringValue(sdkVR.Status.Status) == appmeshsdk.VirtualRouterStatusCodeActive {
vrActiveConditionStatus = corev1.ConditionTrue
}
if updateCondition(vr, appmesh.VirtualRouterActive, vrActiveConditionStatus, nil, nil) {
needsUpdate = true
}
if !needsUpdate {
return nil
}
return m.k8sClient.Status().Patch(ctx, vr, client.MergeFrom(oldVR))
}