@@ -5,7 +5,7 @@ sources create DNS entries based on their respective `gateway.networking.k8s.io`
5
5
6
6
## Filtering the Routes considered
7
7
8
- These sources support the ` --label-filter ` flag, which filters * Route resources
8
+ These sources support the ` --label-filter ` flag, which filters \ * Route resources
9
9
by a set of labels.
10
10
11
11
## Domain names
@@ -16,76 +16,76 @@ of [domain names from the *Route](#domain-names-from-route).
16
16
It then iterates over each of the ` status.parents ` with
17
17
a [ matching Gateway] ( #matching-gateways ) and at least one [ matching listener] ( #matching-listeners ) .
18
18
For each matching listener, if the
19
- listener has a ` hostname ` , it narrows the set of domain names from the * Route to the portion
19
+ listener has a ` hostname ` , it narrows the set of domain names from the \ * Route to the portion
20
20
that overlaps the ` hostname ` . If a matching listener does not have a ` hostname ` , it uses
21
21
the un-narrowed set of domain names.
22
22
23
23
### Domain names from Route
24
24
25
- The set of domain names from a * Route is sourced from the following places:
25
+ The set of domain names from a \ * Route is sourced from the following places:
26
26
27
- * If the * Route is a GRPCRoute, HTTPRoute, or TLSRoute, adds each of the` spec.hostnames ` .
27
+ - If the \ * Route is a GRPCRoute, HTTPRoute, or TLSRoute, adds each of the` spec.hostnames ` .
28
28
29
- * Adds the hostnames from any ` external-dns.alpha.kubernetes.io/hostname ` annotation on the * Route.
30
- This behavior is suppressed if the ` --ignore-hostname-annotation ` flag was specified.
29
+ - Adds the hostnames from any ` external-dns.alpha.kubernetes.io/hostname ` annotation on the \ * Route.
30
+ This behavior is suppressed if the ` --ignore-hostname-annotation ` flag was specified.
31
31
32
- * If no endpoints were produced by the previous steps
33
- or the ` --combine-fqdn-annotation ` flag was specified, then adds hostnames
34
- generated from any` --fqdn-template ` flag.
32
+ - If no endpoints were produced by the previous steps
33
+ or the ` --combine-fqdn-annotation ` flag was specified, then adds hostnames
34
+ generated from any` --fqdn-template ` flag.
35
35
36
- * If no endpoints were produced by the previous steps, each
37
- attached Gateway listener will use its ` hostname ` , if present.
36
+ - If no endpoints were produced by the previous steps, each
37
+ attached Gateway listener will use its ` hostname ` , if present.
38
38
39
39
### Matching Gateways
40
40
41
- Matching Gateways are discovered by iterating over the * Route's ` status.parents ` :
41
+ Matching Gateways are discovered by iterating over the \ * Route's ` status.parents ` :
42
42
43
- * Ignores parents with a ` parentRef.group ` other than
44
- ` gateway.networking.k8s.io ` or a ` parentRef.kind ` other than ` Gateway ` .
43
+ - Ignores parents with a ` parentRef.group ` other than
44
+ ` gateway.networking.k8s.io ` or a ` parentRef.kind ` other than ` Gateway ` .
45
45
46
- * If the ` --gateway-namespace ` flag was specified, ignores parents with a ` parentRef.namespace ` other
47
- than the specified value.
46
+ - If the ` --gateway-namespace ` flag was specified, ignores parents with a ` parentRef.namespace ` other
47
+ than the specified value.
48
48
49
- * If the ` --gateway-label-filter ` flag was specified, ignores parents whose Gateway does not match the
50
- specified label filter.
49
+ - If the ` --gateway-label-filter ` flag was specified, ignores parents whose Gateway does not match the
50
+ specified label filter.
51
51
52
- * Ignores parents whose Gateway either does not exist or has not accepted the route.
52
+ - Ignores parents whose Gateway either does not exist or has not accepted the route.
53
53
54
54
### Matching listeners
55
55
56
56
Iterates over all listeners for the parent's ` parentRef.sectionName ` :
57
57
58
- * Ignores listeners whose ` protocol ` field does not match the kind of the * Route per the following table:
58
+ - Ignores listeners whose ` protocol ` field does not match the kind of the \ * Route per the following table:
59
59
60
- | kind | protocols |
61
- | ------------ | ------------- |
62
- | GRPCRoute | HTTP, HTTPS |
63
- | HTTPRoute | HTTP, HTTPS |
64
- | TCPRoute | TCP |
65
- | TLSRoute | TLS |
66
- | UDPRoute | UDP |
60
+ | kind | protocols |
61
+ | --------- | ----------- |
62
+ | GRPCRoute | HTTP, HTTPS |
63
+ | HTTPRoute | HTTP, HTTPS |
64
+ | TCPRoute | TCP |
65
+ | TLSRoute | TLS |
66
+ | UDPRoute | UDP |
67
67
68
- * If the parent's ` parentRef.port ` port is specified, ignores listeners without a matching ` port ` .
68
+ - If the parent's ` parentRef.port ` port is specified, ignores listeners without a matching ` port ` .
69
69
70
- * Ignores listeners which specify an ` allowedRoutes ` which does not allow the route.
70
+ - Ignores listeners which specify an ` allowedRoutes ` which does not allow the route.
71
71
72
72
## Targets
73
73
74
- The targets of the DNS entries created from a * Route are sourced from the following places:
74
+ The targets of the DNS entries created from a \ * Route are sourced from the following places:
75
75
76
- 1 . If a matching parent Gateway has an ` external-dns.alpha.kubernetes.io/target ` annotation, uses
77
- the values from that.
76
+ 1 . If a matching parent Gateway has an ` external-dns.alpha.kubernetes.io/target ` annotation, uses
77
+ the values from that.
78
78
79
- 2 . Otherwise, iterates over that parent Gateway's ` status.addresses ` ,
80
- adding each address's ` value ` .
79
+ 2 . Otherwise, iterates over that parent Gateway's ` status.addresses ` ,
80
+ adding each address's ` value ` .
81
81
82
- The targets from each parent Gateway matching the * Route are then combined and de-duplicated.
82
+ The targets from each parent Gateway matching the \ * Route are then combined and de-duplicated.
83
83
84
84
## Dualstack Routes
85
85
86
86
Gateway resources may be served from an external-loadbalancer which may support both IPv4 and "dualstack" (both IPv4 and IPv6) interfaces.
87
87
External DNS Controller uses the ` external-dns.alpha.kubernetes.io/dualstack ` annotation to determine this. If this annotation is
88
- set to ` true ` then ExternalDNS will create two alias records (one A record
88
+ set to ` true ` then ExternalDNS will create two records (one A record
89
89
and one AAAA record) for each hostname associated with the Route resource.
90
90
91
91
Example:
@@ -95,17 +95,11 @@ apiVersion: gateway.networking.k8s.io/v1
95
95
kind : HTTPRoute
96
96
metadata :
97
97
annotations :
98
- konghq.com/strip-path : " true"
99
98
external-dns.alpha.kubernetes.io/dualstack : " true"
100
99
name : echo
101
100
spec :
102
101
hostnames :
103
102
- echoserver.example.org
104
- parentRefs :
105
- - group : gateway.networking.k8s.io
106
- kind : Gateway
107
- name : kong
108
- namespace : kong
109
103
rules :
110
104
- backendRefs :
111
105
- group : " "
0 commit comments