Varnish/Ingress may implement and merge Ingresses across namespaces.
An Ingress definition with ingress.class for Varnish can identify the Varnish Service that implements its rules: * If it has the ingress.varnish-cache.org/varnish-svc annotation, then the values names the Varnish Service, which may be named using namespace/name notation. If the namespace is left out, then the same namespace as the Ingress is assumed. * If the Ingress does not have the annotation, then: * If there is only one Varnish-as-Ingress Service in the cluster (with label app:varnish-ingress), then that Service implements the rules. * Otherwise if there is only one Varnish Service in the same namespace as the Ingress, then that Service implements the rules. * Otherwise error A Varnish Service can define Services from different namespaces as its backends, if it implements Ingresses from those namespaces which define those Services as Ingress backends. (Ingresses only define backends from the same namespace.) Ingresses can be merged under these conditions: * No host is specified in more than one Ingress. * There is no more than one default backends in all of the Ingresses to be merged. If either of these rules are violated, then error. This resolves the question of merging Ingresses (to be documented in upcoming commits). Ref #26 Ref #13
Showing with 675 additions and 134 deletions