Skip to content

Commit

Permalink
feat(*): implement traffic split v1alpha2 w/ routes refactor
Browse files Browse the repository at this point in the history
* resolves openservicemesh#2400

Signed-off-by: Michelle Noorali <minooral@microsoft.com>
  • Loading branch information
Michelle Noorali committed Feb 12, 2021
1 parent 7870d63 commit ddd3bd0
Show file tree
Hide file tree
Showing 9 changed files with 382 additions and 95 deletions.
67 changes: 40 additions & 27 deletions pkg/catalog/mock_catalog.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 5 additions & 9 deletions pkg/catalog/routes.go
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,9 @@ func (mc *MeshCatalog) ListTrafficPoliciesForServiceAccount(sa service.K8sServic
return nil, nil, err
}

// TODO: handle traffic splits, merge policies from traffic splits into outbound policies (#705)
outboundPoliciesFromSplits := mc.listTrafficPoliciesForTrafficSplits(sa.Namespace)
outbound = trafficpolicy.MergeOutboundPolicies(outbound, outboundPoliciesFromSplits...)

return inbound, outbound, nil
}

Expand Down Expand Up @@ -677,11 +679,8 @@ func (mc *MeshCatalog) listPoliciesFromTrafficTargets(sa service.K8sServiceAccou

for _, source := range t.Spec.Sources {
if source.Name == sa.Name && source.Namespace == sa.Namespace { // found outbound
mergedPolicies, mergeErrors := trafficpolicy.MergeOutboundPolicies(outboundPolicies, mc.buildOutboundPolicies(sa, t)...)
mergedPolicies := trafficpolicy.MergeOutboundPolicies(outboundPolicies, mc.buildOutboundPolicies(sa, t)...)
outboundPolicies = mergedPolicies
for _, mergeError := range mergeErrors {
log.Error().Err(mergeError).Msgf("Error building outbound policies for source %s (%s) and with traffic target %s (%s)", source.Name, source.Namespace, t.Name, t.Namespace)
}
break
}
}
Expand All @@ -698,11 +697,8 @@ func (mc *MeshCatalog) ListPoliciesForPermissiveMode(services []service.MeshServ
inboundPolicies = trafficpolicy.MergeInboundPolicies(false, inboundPolicies, mc.buildInboundPermissiveModePolicies(svc)...)
}

mergedPolicies, mergeErrors := trafficpolicy.MergeOutboundPolicies(outboundPolicies, mc.buildOutboundPermissiveModePolicies(services)...)
mergedPolicies := trafficpolicy.MergeOutboundPolicies(outboundPolicies, mc.buildOutboundPermissiveModePolicies(services)...)
outboundPolicies = mergedPolicies
for _, mergeError := range mergeErrors {
log.Error().Err(mergeError).Msgf("Error building permissive mode outbound policies for services %v", services)
}
return inboundPolicies, outboundPolicies, nil
}

Expand Down
Loading

0 comments on commit ddd3bd0

Please sign in to comment.