Skip to content

Commit 68b1cdb

Browse files
chore(source): code cleanup
Signed-off-by: ivan katliarchuk <[email protected]>
2 parents fe83c0d + f08289d commit 68b1cdb

File tree

6 files changed

+285
-87
lines changed

6 files changed

+285
-87
lines changed

docs/advanced/fqdn-templating.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,9 @@ The template uses the following data from the source object (e.g., a `Service` o
6868
| Function | Description |
6969
|:-------------|:-----------------------------------------------------------------------------------------|
7070
| `trimPrefix` | Function from the `strings` package. Returns `string` without the provided leading prefix. |
71+
| `replace` | Function that performs a simple replacement of all `old` string with `new` in the source string. |
72+
| `isIPv4` | Function that checks if a string is a valid IPv4 address. |
73+
| `isIPv6` | Function that checks if a string is a valid IPv6 address (including IPv4-mapped IPv6). |
7174

7275
---
7376

@@ -304,3 +307,12 @@ args:
304307
```
305308
306309
By setting the hostname annotation in the ingress resource, ExternalDNS constructs the FQDN accordingly. This approach allows for dynamic DNS entries without hardcoding hostnames.
310+
311+
### Using a Node's Addresses for FQDNs
312+
313+
```yml
314+
args:
315+
- --fqdn-template="{{range .Status.Addresses}}{{if and (eq .Type \"ExternalIP\") (isIPv4 .Address)}}{{.Address | replace \".\" \"-\"}}{{break}}{{end}}{{end}}.example.com
316+
```
317+
318+
This is a complex template that iternates through a list of a Node's Addresses and creates a FQDN with public IPv4 addresses.

go.mod

Lines changed: 27 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ require (
3131
github.com/cloudfoundry-community/go-cfclient v0.0.0-20190201205600-f136f9222381
3232
github.com/datawire/ambassador v1.12.4
3333
github.com/denverdino/aliyungo v0.0.0-20230411124812-ab98a9173ace
34-
github.com/digitalocean/godo v1.145.0
34+
github.com/digitalocean/godo v1.146.0
3535
github.com/dnsimple/dnsimple-go v1.7.0
3636
github.com/exoscale/egoscale v0.102.3
3737
github.com/ffledgling/pdns-go v0.0.0-20180219074714-524e7daccd99
@@ -41,37 +41,37 @@ require (
4141
github.com/google/go-cmp v0.7.0
4242
github.com/google/uuid v1.6.0
4343
github.com/linki/instrumented_http v0.3.0
44-
github.com/linode/linodego v1.49.0
44+
github.com/linode/linodego v1.50.0
4545
github.com/maxatome/go-testdeep v1.14.0
46-
github.com/miekg/dns v1.1.65
46+
github.com/miekg/dns v1.1.66
4747
github.com/onsi/ginkgo v1.16.5
4848
github.com/openshift/api v0.0.0-20230607130528-611114dca681
4949
github.com/openshift/client-go v0.0.0-20230607134213-3cd0021bbee3
50-
github.com/oracle/oci-go-sdk/v65 v65.89.3
50+
github.com/oracle/oci-go-sdk/v65 v65.90.0
5151
github.com/ovh/go-ovh v1.7.0
5252
github.com/patrickmn/go-cache v2.1.0+incompatible
5353
github.com/pluralsh/gqlclient v1.12.2
54-
github.com/projectcontour/contour v1.30.3
54+
github.com/projectcontour/contour v1.31.0
5555
github.com/prometheus/client_golang v1.22.0
5656
github.com/scaleway/scaleway-sdk-go v1.0.0-beta.33
5757
github.com/sirupsen/logrus v1.9.3
5858
github.com/stretchr/testify v1.10.0
59-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1158
59+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1162
6060
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod v1.0.1136
6161
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns v1.0.1145
6262
github.com/transip/gotransip/v6 v6.26.0
6363
github.com/ultradns/ultradns-sdk-go v1.3.7
6464
go.etcd.io/etcd/client/v3 v3.5.21
6565
go.uber.org/ratelimit v0.3.1
66-
golang.org/x/net v0.39.0
67-
golang.org/x/oauth2 v0.29.0
68-
golang.org/x/sync v0.13.0
69-
golang.org/x/text v0.24.0
66+
golang.org/x/net v0.40.0
67+
golang.org/x/oauth2 v0.30.0
68+
golang.org/x/sync v0.14.0
69+
golang.org/x/text v0.25.0
7070
golang.org/x/time v0.11.0
71-
google.golang.org/api v0.231.0
72-
gopkg.in/ns1/ns1-go.v2 v2.14.2
73-
istio.io/api v1.25.2
74-
istio.io/client-go v1.25.2
71+
google.golang.org/api v0.232.0
72+
gopkg.in/ns1/ns1-go.v2 v2.14.3
73+
istio.io/api v1.26.0
74+
istio.io/client-go v1.26.0
7575
k8s.io/api v0.33.0
7676
k8s.io/apimachinery v0.33.0
7777
k8s.io/client-go v0.33.0
@@ -108,10 +108,10 @@ require (
108108
github.com/coreos/go-systemd/v22 v22.5.0 // indirect
109109
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
110110
github.com/deepmap/oapi-codegen v1.9.1 // indirect
111-
github.com/emicklei/go-restful/v3 v3.12.0 // indirect
111+
github.com/emicklei/go-restful/v3 v3.12.1 // indirect
112112
github.com/fatih/structs v1.1.0 // indirect
113113
github.com/felixge/httpsnoop v1.0.4 // indirect
114-
github.com/fsnotify/fsnotify v1.7.0 // indirect
114+
github.com/fsnotify/fsnotify v1.8.0 // indirect
115115
github.com/fxamacker/cbor/v2 v2.7.0 // indirect
116116
github.com/gabriel-vasile/mimetype v1.4.8 // indirect
117117
github.com/go-logr/stdr v1.2.2 // indirect
@@ -132,7 +132,6 @@ require (
132132
github.com/golang/protobuf v1.5.4 // indirect
133133
github.com/google/gnostic-models v0.6.9 // indirect
134134
github.com/google/go-querystring v1.1.0 // indirect
135-
github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad // indirect
136135
github.com/google/s2a-go v0.1.9 // indirect
137136
github.com/googleapis/enterprise-certificate-proxy v0.3.6 // indirect
138137
github.com/googleapis/gax-go/v2 v2.14.1 // indirect
@@ -148,13 +147,13 @@ require (
148147
github.com/jcmturner/goidentity/v6 v6.0.1 // indirect
149148
github.com/jcmturner/gokrb5/v8 v8.4.3 // indirect
150149
github.com/jcmturner/rpc/v2 v2.0.3 // indirect
151-
github.com/jinzhu/copier v0.3.5 // indirect
150+
github.com/jinzhu/copier v0.4.0 // indirect
152151
github.com/jmespath/go-jmespath v0.4.0 // indirect
153152
github.com/josharian/intern v1.0.0 // indirect
154153
github.com/json-iterator/go v1.1.12 // indirect
155154
github.com/kylelemons/godebug v1.1.0 // indirect
156155
github.com/leodido/go-urn v1.4.0 // indirect
157-
github.com/mailru/easyjson v0.7.7 // indirect
156+
github.com/mailru/easyjson v0.9.0 // indirect
158157
github.com/mattn/go-runewidth v0.0.15 // indirect
159158
github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db // indirect
160159
github.com/mitchellh/go-homedir v1.1.0 // indirect
@@ -170,8 +169,8 @@ require (
170169
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect
171170
github.com/pkg/errors v0.9.1 // indirect
172171
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
173-
github.com/prometheus/client_model v0.6.1 // indirect
174-
github.com/prometheus/common v0.62.0 // indirect
172+
github.com/prometheus/client_model v0.6.2 // indirect
173+
github.com/prometheus/common v0.63.0 // indirect
175174
github.com/prometheus/procfs v0.15.1 // indirect
176175
github.com/rivo/uniseg v0.2.0 // indirect
177176
github.com/schollz/progressbar/v3 v3.8.6 // indirect
@@ -196,13 +195,13 @@ require (
196195
go.uber.org/atomic v1.10.0 // indirect
197196
go.uber.org/multierr v1.11.0 // indirect
198197
go.uber.org/zap v1.27.0 // indirect
199-
golang.org/x/crypto v0.37.0 // indirect
198+
golang.org/x/crypto v0.38.0 // indirect
200199
golang.org/x/mod v0.24.0 // indirect
201-
golang.org/x/sys v0.32.0 // indirect
202-
golang.org/x/term v0.31.0 // indirect
200+
golang.org/x/sys v0.33.0 // indirect
201+
golang.org/x/term v0.32.0 // indirect
203202
golang.org/x/tools v0.32.0 // indirect
204-
google.golang.org/genproto/googleapis/api v0.0.0-20250218202821-56aae31c358a // indirect
205-
google.golang.org/genproto/googleapis/rpc v0.0.0-20250425173222-7b384671a197 // indirect
203+
google.golang.org/genproto/googleapis/api v0.0.0-20250324211829-b45e905df463 // indirect
204+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250428153025-10db94c68c34 // indirect
206205
google.golang.org/grpc v1.72.0 // indirect
207206
google.golang.org/protobuf v1.36.6 // indirect
208207
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
@@ -212,10 +211,10 @@ require (
212211
gopkg.in/yaml.v2 v2.4.0 // indirect
213212
gopkg.in/yaml.v3 v3.0.1 // indirect
214213
k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff // indirect
215-
k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 // indirect
214+
k8s.io/utils v0.0.0-20241210054802-24370beab758 // indirect
216215
moul.io/http2curl v1.0.0 // indirect
217216
sigs.k8s.io/controller-runtime v0.20.4 // indirect
218-
sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect
217+
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect
219218
sigs.k8s.io/randfill v1.0.0 // indirect
220219
sigs.k8s.io/structured-merge-diff/v4 v4.7.0 // indirect
221220
sigs.k8s.io/yaml v1.4.0 // indirect

0 commit comments

Comments
 (0)