Multi-layer routing
Co-authored-by: Romain <rtribotte@users.noreply.github.com>
This commit is contained in:
parent
8392503df7
commit
d6598f370c
37 changed files with 2834 additions and 37 deletions
|
|
@ -19,6 +19,10 @@ type IngressRouteSpec struct {
|
|||
// TLS defines the TLS configuration.
|
||||
// More info: https://doc.traefik.io/traefik/v3.5/reference/routing-configuration/http/routing/router/#tls
|
||||
TLS *TLS `json:"tls,omitempty"`
|
||||
// ParentRefs defines references to parent IngressRoute resources for multi-layer routing.
|
||||
// When set, this IngressRoute's routers will be children of the referenced parent IngressRoute's routers.
|
||||
// More info: https://doc.traefik.io/traefik/v3.5/routing/routers/#parentrefs
|
||||
ParentRefs []IngressRouteRef `json:"parentRefs,omitempty"`
|
||||
}
|
||||
|
||||
// Route holds the HTTP route configuration.
|
||||
|
|
@ -211,6 +215,14 @@ type MiddlewareRef struct {
|
|||
Namespace string `json:"namespace,omitempty"`
|
||||
}
|
||||
|
||||
// IngressRouteRef is a reference to an IngressRoute resource.
|
||||
type IngressRouteRef struct {
|
||||
// Name defines the name of the referenced IngressRoute resource.
|
||||
Name string `json:"name"`
|
||||
// Namespace defines the namespace of the referenced IngressRoute resource.
|
||||
Namespace string `json:"namespace,omitempty"`
|
||||
}
|
||||
|
||||
// +genclient
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
// +kubebuilder:storageversion
|
||||
|
|
|
|||
|
|
@ -432,6 +432,22 @@ func (in *IngressRouteList) DeepCopyObject() runtime.Object {
|
|||
return nil
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *IngressRouteRef) DeepCopyInto(out *IngressRouteRef) {
|
||||
*out = *in
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressRouteRef.
|
||||
func (in *IngressRouteRef) DeepCopy() *IngressRouteRef {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(IngressRouteRef)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *IngressRouteSpec) DeepCopyInto(out *IngressRouteSpec) {
|
||||
*out = *in
|
||||
|
|
@ -452,6 +468,11 @@ func (in *IngressRouteSpec) DeepCopyInto(out *IngressRouteSpec) {
|
|||
*out = new(TLS)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.ParentRefs != nil {
|
||||
in, out := &in.ParentRefs, &out.ParentRefs
|
||||
*out = make([]IngressRouteRef, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue