in pkg/virtualrouter/resource_manager.go [58:104]
func (m *defaultResourceManager) Reconcile(ctx context.Context, vr *appmesh.VirtualRouter) error {
ms, err := m.findMeshDependency(ctx, vr)
if err != nil {
return err
}
if err := m.validateMeshDependencies(ctx, ms); err != nil {
return err
}
vnByKey, err := m.findVirtualNodeDependencies(ctx, vr)
if err != nil {
return err
}
if err := m.validateVirtualNodeDependencies(ctx, ms, vnByKey); err != nil {
return err
}
sdkVR, err := m.findSDKVirtualRouter(ctx, ms, vr)
if err != nil {
return err
}
var sdkRouteByName map[string]*appmeshsdk.RouteData
if sdkVR == nil {
sdkVR, err = m.createSDKVirtualRouter(ctx, ms, vr)
if err != nil {
return err
}
sdkRouteByName, err = m.routesManager.create(ctx, ms, vr, vnByKey)
if err != nil {
return err
}
} else {
err = m.routesManager.remove(ctx, ms, sdkVR, vr)
if err != nil {
return err
}
sdkVR, err = m.updateSDKVirtualRouter(ctx, sdkVR, vr)
if err != nil {
return err
}
sdkRouteByName, err = m.routesManager.update(ctx, ms, vr, vnByKey)
if err != nil {
return err
}
}
return m.updateCRDVirtualRouter(ctx, vr, sdkVR, sdkRouteByName)
}