...
1 package gateway
2
3 import (
4 v3cluster "github.com/emissary-ingress/emissary/v3/pkg/api/envoy/config/cluster/v3"
5 v3endpoint "github.com/emissary-ingress/emissary/v3/pkg/api/envoy/config/endpoint/v3"
6 v3listener "github.com/emissary-ingress/emissary/v3/pkg/api/envoy/config/listener/v3"
7 v3route "github.com/emissary-ingress/emissary/v3/pkg/api/envoy/config/route/v3"
8 gw "sigs.k8s.io/gateway-api/apis/v1alpha1"
9 )
10
11
12
13
14
15
16 type CompiledItem struct {
17 Source Source
18 Namespace string
19 Error string
20 }
21
22 func NewCompiledItem(source Source) CompiledItem {
23 return CompiledItem{Source: source}
24 }
25
26 func NewCompiledItemError(source Source, error string) CompiledItem {
27 return CompiledItem{Source: source, Error: error}
28 }
29
30
31
32 type CompiledConfig struct {
33 CompiledItem
34 Listeners []*CompiledListener
35 Routes []*CompiledRoute
36 Clusters []*CompiledCluster
37 LoadAssignments []*CompiledLoadAssignment
38 }
39
40
41
42 type CompiledListener struct {
43 CompiledItem
44 Listener *v3listener.Listener
45
46
47
48
49 Predicate func(route *CompiledRoute) bool
50 Domains []string
51 }
52
53
54 type CompiledRoute struct {
55 CompiledItem
56
57
58
59 HTTPRoute *gw.HTTPRoute
60
61 Routes []*v3route.Route
62 ClusterRefs []*ClusterRef
63 }
64
65
66 type ClusterRef struct {
67 CompiledItem
68 Name string
69
70
71
72 EndpointPath string
73 }
74
75
76 type CompiledCluster struct {
77 CompiledItem
78 Cluster *v3cluster.Cluster
79 }
80
81
82 type CompiledLoadAssignment struct {
83 CompiledItem
84 LoadAssignment *v3endpoint.ClusterLoadAssignment
85 }
86
View as plain text