Skip to content

Commit b16d1b3

Browse files
committed
Merge branch 'master' into az-private-dns-zone-name-filter
2 parents 3852a36 + c006a49 commit b16d1b3

39 files changed

+656
-283
lines changed

.github/workflows/ci.yml .github/workflows/ci.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@ jobs:
2323
- name: Set up Go 1.x
2424
uses: actions/setup-go@v5
2525
with:
26-
go-version: '1.22'
26+
go-version: '1.22.2'
2727
id: go
2828

2929
- name: Check out code into the Go module directory
30-
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
30+
uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
3131

3232
- name: Install CI
3333
run: |

.github/workflows/codeql-analysis.yml .github/workflows/codeql-analysis.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,11 @@ jobs:
2626

2727
steps:
2828
- name: Checkout repository
29-
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
29+
uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
3030
- name: Install go version
3131
uses: actions/setup-go@v5
3232
with:
33-
go-version: '^1.22'
33+
go-version: '^1.22.2'
3434

3535
# Initializes the CodeQL tools for scanning.
3636
- name: Initialize CodeQL

.github/workflows/docs.yml .github/workflows/docs.yaml

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,19 +14,19 @@ jobs:
1414
name: Release Docs
1515
runs-on: ubuntu-latest
1616
steps:
17-
- uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
17+
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
1818
with:
1919
fetch-depth: 0
2020

21-
- uses: actions/setup-python@v5
21+
- uses: actions/setup-python@v5.1.0
2222
with:
2323
python-version: "3.10"
2424
cache: "pip"
2525
cache-dependency-path: "./docs/scripts/requirements.txt"
2626

2727
- uses: actions/setup-go@v5
2828
with:
29-
go-version: '^1.22'
29+
go-version: '^1.22.2'
3030

3131
- run: |
3232
pip install -r docs/scripts/requirements.txt

.github/workflows/json-yaml-validate.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ jobs:
1414
json-yaml-validate:
1515
runs-on: ubuntu-latest
1616
steps:
17-
- uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
17+
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
1818

1919
- name: json-yaml-validate
20-
uses: GrantBirki/json-yaml-validate@v2.6.1
20+
uses: GrantBirki/json-yaml-validate@v2.7.1
2121
with:
2222
comment: "true" # enable comment mode
2323
yaml_exclude_regex: "(charts/external-dns/templates.*|mkdocs.yml)"

.github/workflows/lint-test-chart.yaml

+4-4
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
shell: bash
1515
steps:
1616
- name: Checkout
17-
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
17+
uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
1818
with:
1919
fetch-depth: 0
2020

@@ -53,13 +53,13 @@ jobs:
5353
run: ah lint --kind helm || exit 1
5454

5555
- name: Install Helm
56-
uses: azure/setup-helm@5119fcb9089d432beecbf79bb2c7915207344b78 # v3.5
56+
uses: azure/setup-helm@fe7b79cd5ee1e45176fcad797de68ecaf3ca4814 # v4.2.0
5757
with:
5858
token: ${{ github.token }}
5959
version: latest
6060

6161
- name: Install Python
62-
uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0
62+
uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0
6363
with:
6464
token: ${{ github.token }}
6565
python-version: "3.x"
@@ -80,7 +80,7 @@ jobs:
8080

8181
- name: Create Kind cluster
8282
if: steps.changes.outputs.changed == 'true'
83-
uses: helm/kind-action@99576bfa6ddf9a8e612d83b513da5a75875caced # v1.9.0
83+
uses: helm/kind-action@0025e74a8c7512023d06dc019c617aa3cf561fde # v1.10.0
8484
with:
8585
wait: 120s
8686

.github/workflows/lint.yaml

+3-3
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,13 @@ jobs:
2323
- name: Set up Go 1.x
2424
uses: actions/setup-go@v5
2525
with:
26-
go-version: '1.22'
26+
go-version: '1.22.2'
2727
id: go
2828

2929
- name: Check out code into the Go module directory
30-
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
30+
uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
3131

3232
- name: Lint
3333
run: |
34-
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.56.2
34+
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.57.2
3535
make lint

.github/workflows/release-chart.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
shell: bash
2121
steps:
2222
- name: Checkout
23-
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
23+
uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
2424
with:
2525
fetch-depth: 0
2626

@@ -51,7 +51,7 @@ jobs:
5151
git config user.email "[email protected]"
5252
5353
- name: Install Helm
54-
uses: azure/setup-helm@5119fcb9089d432beecbf79bb2c7915207344b78 # v3.5
54+
uses: azure/setup-helm@fe7b79cd5ee1e45176fcad797de68ecaf3ca4814 # v4.2.0
5555
with:
5656
token: ${{ secrets.GITHUB_TOKEN }}
5757
version: latest

.github/workflows/staging-image-tester.yml .github/workflows/staging-image-tester.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@ jobs:
2323
- name: Set up Go 1.x
2424
uses: actions/setup-go@v5
2525
with:
26-
go-version: '1.22'
26+
go-version: '1.22.2'
2727
id: go
2828

2929
- name: Check out code into the Go module directory
30-
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
30+
uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
3131

3232
- name: Install CI
3333
run: |

.golangci.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -69,5 +69,5 @@ issues:
6969
linters: [ typecheck ]
7070

7171
run:
72-
skip-files:
72+
exclude-files:
7373
- endpoint/zz_generated.deepcopy.go

Makefile

+2-2
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ ifeq (, $(shell which controller-gen))
3636
CONTROLLER_GEN_TMP_DIR=$$(mktemp -d) ;\
3737
cd $$CONTROLLER_GEN_TMP_DIR ;\
3838
go mod init tmp ;\
39-
go get sigs.k8s.io/controller-tools/cmd/controller-gen@v0.5.0 ;\
39+
go get sigs.k8s.io/controller-tools/cmd/controller-gen@v0.14.0 ;\
4040
rm -rf $$CONTROLLER_GEN_TMP_DIR ;\
4141
}
4242
CONTROLLER_GEN=$(GOBIN)/controller-gen
@@ -45,7 +45,7 @@ CONTROLLER_GEN=$(shell which controller-gen)
4545
endif
4646

4747
golangci-lint:
48-
@command -v golangci-lint > /dev/null || curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.55.2
48+
@command -v golangci-lint > /dev/null || curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.57.2
4949

5050
# Run the golangci-lint tool
5151
.PHONY: go-lint

README.md

+11-15
Original file line numberDiff line numberDiff line change
@@ -79,24 +79,20 @@ Known providers using webhooks:
7979

8080
| Provider | Repo |
8181
| -------- | ----------- |
82-
| IONOS | https://github.com/ionos-cloud/external-dns-ionos-webhook |
83-
| Adguard Home Provider | https://github.com/muhlba91/external-dns-provider-adguard |
84-
| STACKIT | https://github.com/stackitcloud/external-dns-stackit-webhook |
85-
| GleSYS | https://github.com/glesys/external-dns-glesys |
86-
| Hetzner | https://github.com/mconfalonieri/external-dns-hetzner-webhook |
87-
| Bizfly Cloud | https://github.com/bizflycloud/external-dns-bizflycloud-webhook |
88-
| Netcup | https://github.com/mrueg/external-dns-netcup-webhook |
82+
| Adguard Home Provider | https://github.com/muhlba91/external-dns-provider-adguard |
83+
| Bizfly Cloud | https://github.com/bizflycloud/external-dns-bizflycloud-webhook |
8984
| Gcore | https://github.com/G-Core/external-dns-gcore-webhook |
85+
| GleSYS | https://github.com/glesys/external-dns-glesys |
86+
| Hetzner | https://github.com/mconfalonieri/external-dns-hetzner-webhook |
87+
| IONOS | https://github.com/ionos-cloud/external-dns-ionos-webhook |
88+
| Netcup | https://github.com/mrueg/external-dns-netcup-webhook |
89+
| STACKIT | https://github.com/stackitcloud/external-dns-stackit-webhook |
9090

91-
## Status of providers
91+
## Status of in-tree providers
9292

93-
ExternalDNS supports multiple DNS providers which have been implemented by the [ExternalDNS contributors](https://github.com/kubernetes-sigs/external-dns/graphs/contributors). Maintaining all of those in a central repository is a challenge and we have limited resources to test changes. This means that it is very hard to test all providers for possible regressions and, as written in the [Contributing](#Contributing) section, we encourage contributors to step in as maintainers for the individual providers and help by testing the integrations.
93+
ExternalDNS supports multiple DNS providers which have been implemented by the [ExternalDNS contributors](https://github.com/kubernetes-sigs/external-dns/graphs/contributors). Maintaining all of those in a central repository is a challenge, which introduces lots of toil and potential risks.
9494

95-
End-to-end testing of ExternalDNS is currently
96-
[performed](https://github.com/zalando-incubator/kubernetes-on-aws/blob/dev/test/e2e/external_dns.go)
97-
in the separate
98-
[kubernetes-on-aws](https://github.com/zalando-incubator/kubernetes-on-aws)
99-
repository.
95+
This mean that `external-dns` has begun the process to move providers out of tree. See #4347 for more details. Those who are interested can create a webhook provider based on an _in-tree_ provider and after submit a PR to reference it here.
10096

10197
We define the following stability levels for providers:
10298

@@ -112,7 +108,7 @@ The following table clarifies the current status of the providers according to t
112108
| AWS Route 53 | Stable | |
113109
| AWS Cloud Map | Beta | |
114110
| Akamai Edge DNS | Beta | |
115-
| AzureDNS | Beta | |
111+
| AzureDNS | Stable | |
116112
| BlueCat | Alpha | @seanmalloy @vinny-sabatini |
117113
| Civo | Alpha | @alejandrojnm |
118114
| CloudFlare | Beta | |

charts/external-dns/CHANGELOG.md

+34-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1818

1919
## [UNRELEASED]
2020

21-
- Added support for dnsConfig. ([#4265](https://github.com/kubernetes-sigs/external-dns/pull/4265)) [@davhdavh](https://github.com/davhdavh)
21+
## Added
22+
23+
- Added support for setting `excludeDomains` argument. ([#4380](https://github.com/kubernetes-sigs/external-dns/pull/4380))[@bford-evs](https://github.com/bford-evs)
24+
25+
## [v1.14.4] - 2023-04-03
26+
27+
### Added
28+
29+
- Added support for setting `dnsConfig`. ([#4265](https://github.com/kubernetes-sigs/external-dns/pull/4265)) _@davhdavh_
30+
- Added support for `DNSEndpoint` CRD. ([#4322](https://github.com/kubernetes-sigs/external-dns/pull/4322)) _@onedr0p_
31+
32+
### Changed
33+
34+
- Updated _ExternalDNS_ OCI image version to [v0.14.1](https://github.com/kubernetes-sigs/external-dns/releases/tag/v0.14.1). ([#4357](https://github.com/kubernetes-sigs/external-dns/pull/4357)) _@stevehipwell_
2235

2336
## [v1.14.3] - 2023-01-26
2437

@@ -156,3 +169,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
156169
### Changed
157170

158171
- Fix RBAC for `istio-virtualservice` source when `istio-gateway` isn't also added. ([#2564](https://github.com/kubernetes-sigs/external-dns/pull/2564)) [@mcwarman](https://github.com/mcwarman)
172+
173+
<!--
174+
RELEASE LINKS
175+
-->
176+
[UNRELEASED]: https://github.com/kubernetes-sigs/external-dns/tree/master/charts/external-dns
177+
[v1.14.4]: https://github.com/kubernetes-sigs/external-dns/releases/tag/external-dns-helm-chart-1.14.4
178+
[v1.14.3]: https://github.com/kubernetes-sigs/external-dns/releases/tag/external-dns-helm-chart-1.14.3
179+
[v1.14.2]: https://github.com/kubernetes-sigs/external-dns/releases/tag/external-dns-helm-chart-1.14.2
180+
[v1.14.1]: https://github.com/kubernetes-sigs/external-dns/releases/tag/external-dns-helm-chart-1.14.1
181+
[v1.14.0]: https://github.com/kubernetes-sigs/external-dns/releases/tag/external-dns-helm-chart-1.14.0
182+
[v1.13.1]: https://github.com/kubernetes-sigs/external-dns/releases/tag/external-dns-helm-chart-1.13.1
183+
[v1.13.0]: https://github.com/kubernetes-sigs/external-dns/releases/tag/external-dns-helm-chart-1.13.0
184+
[v1.12.2]: https://github.com/kubernetes-sigs/external-dns/releases/tag/external-dns-helm-chart-1.12.2
185+
[v1.12.1]: https://github.com/kubernetes-sigs/external-dns/releases/tag/external-dns-helm-chart-1.12.1
186+
[v1.12.0]: https://github.com/kubernetes-sigs/external-dns/releases/tag/external-dns-helm-chart-1.12.0
187+
[v1.11.0]: https://github.com/kubernetes-sigs/external-dns/releases/tag/external-dns-helm-chart-1.11.0
188+
[v1.10.1]: https://github.com/kubernetes-sigs/external-dns/releases/tag/external-dns-helm-chart-1.10.1
189+
[v1.10.0]: https://github.com/kubernetes-sigs/external-dns/releases/tag/external-dns-helm-chart-1.10.0
190+
[v1.9.0]: https://github.com/kubernetes-sigs/external-dns/releases/tag/external-dns-helm-chart-1.9.0
191+
[v1.8.0]: https://github.com/kubernetes-sigs/external-dns/releases/tag/external-dns-helm-chart-1.8.0

charts/external-dns/Chart.yaml

+6-8
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ apiVersion: v2
22
name: external-dns
33
description: ExternalDNS synchronizes exposed Kubernetes Services and Ingresses with DNS providers.
44
type: application
5-
version: 1.14.3
6-
appVersion: 0.14.0
5+
version: 1.14.4
6+
appVersion: 0.14.1
77
keywords:
88
- kubernetes
99
- externaldns
@@ -20,9 +20,7 @@ maintainers:
2020
2121
annotations:
2222
artifacthub.io/changes: |
23-
- kind: fixed
24-
description: "Fixed args for webhook deployment."
25-
- kind: fixed
26-
description: "Fixed support for `gateway-grpcroute`, `gateway-tlsroute`, `gateway-tcproute` & `gateway-udproute`."
27-
- kind: fixed
28-
description: "Fixed incorrect implementation for setting the `automountServiceAccountToken`."
23+
- kind: added
24+
description: "Added support for dnsConfig."
25+
- kind: changed
26+
description: "Updated _ExternalDNS_ OCI image version to [v0.14.1](https://github.com/kubernetes-sigs/external-dns/releases/tag/v0.14.1)."

charts/external-dns/README.md

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# external-dns
22

3-
![Version: 1.14.3](https://img.shields.io/badge/Version-1.14.3-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.14.0](https://img.shields.io/badge/AppVersion-0.14.0-informational?style=flat-square)
3+
![Version: 1.14.4](https://img.shields.io/badge/Version-1.14.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.14.1](https://img.shields.io/badge/AppVersion-0.14.1-informational?style=flat-square)
44

55
ExternalDNS synchronizes exposed Kubernetes Services and Ingresses with DNS providers.
66

@@ -27,7 +27,7 @@ helm repo add external-dns https://kubernetes-sigs.github.io/external-dns/
2727
After you've installed the repo you can install the chart.
2828

2929
```shell
30-
helm upgrade --install external-dns external-dns/external-dns --version 1.14.3
30+
helm upgrade --install external-dns external-dns/external-dns --version 1.14.4
3131
```
3232

3333
## Providers
@@ -87,6 +87,7 @@ If `namespaced` is set to `true`, please ensure that `sources` my only contains
8787
| dnsPolicy | string | `nil` | [DNS policy](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy) for the pod, if not set the default will be used. |
8888
| domainFilters | list | `[]` | |
8989
| env | list | `[]` | [Environment variables](https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/) for the `external-dns` container. |
90+
| excludeDomains | list | `[]` | |
9091
| extraArgs | list | `[]` | Extra arguments to provide to _ExternalDNS_. |
9192
| extraVolumeMounts | list | `[]` | Extra [volume mounts](https://kubernetes.io/docs/concepts/storage/volumes/) for the `external-dns` container. |
9293
| extraVolumes | list | `[]` | Extra [volumes](https://kubernetes.io/docs/concepts/storage/volumes/) for the `Pod`. |
+84
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
apiVersion: apiextensions.k8s.io/v1
2+
kind: CustomResourceDefinition
3+
metadata:
4+
name: dnsendpoints.externaldns.k8s.io
5+
annotations:
6+
api-approved.kubernetes.io: "https://github.com/kubernetes-sigs/external-dns/pull/2007"
7+
spec:
8+
group: externaldns.k8s.io
9+
names:
10+
kind: DNSEndpoint
11+
listKind: DNSEndpointList
12+
plural: dnsendpoints
13+
singular: dnsendpoint
14+
scope: Namespaced
15+
versions:
16+
- name: v1alpha1
17+
schema:
18+
openAPIV3Schema:
19+
properties:
20+
apiVersion:
21+
description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
22+
type: string
23+
kind:
24+
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
25+
type: string
26+
metadata:
27+
type: object
28+
spec:
29+
description: DNSEndpointSpec defines the desired state of DNSEndpoint
30+
properties:
31+
endpoints:
32+
items:
33+
description: Endpoint is a high-level way of a connection between a service and an IP
34+
properties:
35+
dnsName:
36+
description: The hostname of the DNS record
37+
type: string
38+
labels:
39+
additionalProperties:
40+
type: string
41+
description: Labels stores labels defined for the Endpoint
42+
type: object
43+
providerSpecific:
44+
description: ProviderSpecific stores provider specific config
45+
items:
46+
description: ProviderSpecificProperty holds the name and value of a configuration which is specific to individual DNS providers
47+
properties:
48+
name:
49+
type: string
50+
value:
51+
type: string
52+
type: object
53+
type: array
54+
recordTTL:
55+
description: TTL for the record
56+
format: int64
57+
type: integer
58+
recordType:
59+
description: RecordType type of record, e.g. CNAME, A, SRV, TXT etc
60+
type: string
61+
setIdentifier:
62+
description: Identifier to distinguish multiple records with the same name and type (e.g. Route53 records with routing policies other than 'simple')
63+
type: string
64+
targets:
65+
description: The targets the DNS record points to
66+
items:
67+
type: string
68+
type: array
69+
type: object
70+
type: array
71+
type: object
72+
status:
73+
description: DNSEndpointStatus defines the observed state of DNSEndpoint
74+
properties:
75+
observedGeneration:
76+
description: The generation observed by the external-dns controller.
77+
format: int64
78+
type: integer
79+
type: object
80+
type: object
81+
served: true
82+
storage: true
83+
subresources:
84+
status: {}

0 commit comments

Comments
 (0)