mirror of https://github.com/linkerd/linkerd2.git
A route may have two conditions in a parent status: a condition that states whether it has been accepted by the parents, and a condition that states whether all backend references -- that traffic matched against route is sent to -- have resolved successfully. Currently, the policy controller does not support the latter. This change introduces support for checking and setting a backendRef specific condition. A successful condition (ResolvedRefs = True) is met when all backend references point to a supported type, and that type exists in the cluster. Currently, only Service objects are supported. A nonexistent object, or an unsupported kind will reject the entire condition; the particular reason will be reflected in the condition's message. Since statuses are set on a route's parents, the same condition will apply to _all_ parents in a route (since there is no way to elicit different backends for different parents). If a route does not have any backend references, then the parent reference type will be used. As such, any parents that are not Services will automatically get an invalid backend condition (exception to the rule in the third paragraph where a condition is shared by all parents). When the parent is supported (i.e a Service) we needn't check its existence since the parent condition will already reflect that. --- Signed-off-by: Matei David <matei@buoyant.io> Co-authored-by: Eliza Weisman <eliza@buoyant.io> Co-authored-by: Oliver Gould <ver@buoyant.io> |
||
|---|---|---|
| .. | ||
| core | ||
| grpc | ||
| k8s | ||
| src | ||
| .dockerignore | ||
| Cargo.toml | ||
| Dockerfile | ||