Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions charts/external-dns/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [UNRELEASED]

### Added

- Add option to configure `annotationFilter` via dedicated chart value. ([#5737](https://github.com/kubernetes-sigs/external-dns/pull/5737)) _@dshatokhin_

## [v1.18.0] - 2025-07-14

### Changed
Expand Down
3 changes: 2 additions & 1 deletion charts/external-dns/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ If `namespaced` is set to `true`, please ensure that `sources` my only contains
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| affinity | object | `{}` | Affinity settings for `Pod` [scheduling](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/). If an explicit label selector is not provided for pod affinity or pod anti-affinity one will be created from the pod selector labels. |
| annotationFilter | string | `nil` | Filter resources queried for endpoints by annotation selector. |
| automountServiceAccountToken | bool | `true` | Set this to `false` to [opt out of API credential automounting](https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#opt-out-of-api-credential-automounting) for the `Pod`. |
| commonLabels | object | `{}` | Labels to add to all chart resources. |
| deploymentAnnotations | object | `{}` | Annotations to add to the `Deployment`. |
Expand All @@ -117,7 +118,7 @@ If `namespaced` is set to `true`, please ensure that `sources` my only contains
| imagePullSecrets | list | `[]` | Image pull secrets. |
| initContainers | list | `[]` | [Init containers](https://kubernetes.io/docs/concepts/workloads/pods/init-containers/) to add to the `Pod` definition. |
| interval | string | `"1m"` | Interval for DNS updates. |
| labelFilter | string | `nil` | Filter resources queried for endpoints by label selector |
| labelFilter | string | `nil` | Filter resources queried for endpoints by label selector. |
| livenessProbe | object | See _values.yaml_ | [Liveness probe](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/) configuration for the `external-dns` container. |
| logFormat | string | `"text"` | Log format. |
| logLevel | string | `"info"` | Log level. |
Expand Down
3 changes: 3 additions & 0 deletions charts/external-dns/templates/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,9 @@ spec:
{{- if .Values.labelFilter }}
- --label-filter={{ .Values.labelFilter }}
{{- end }}
{{- if .Values.annotationFilter }}
- --annotation-filter={{ .Values.annotationFilter }}
{{- end }}
{{- range .Values.managedRecordTypes }}
- --managed-record-types={{ . }}
{{- end }}
Expand Down
35 changes: 22 additions & 13 deletions charts/external-dns/values.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,13 @@
"description": "Affinity settings for `Pod` [scheduling](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/). If an explicit label selector is not provided for pod affinity or pod anti-affinity one will be created from the pod selector labels.",
"type": "object"
},
"annotationFilter": {
"description": "Filter resources queried for endpoints by annotation selector.",
"type": [
"string",
"null"
]
},
"automountServiceAccountToken": {
"description": "Set this to `false` to [opt out of API credential automounting](https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#opt-out-of-api-credential-automounting) for the `Pod`.",
"type": "boolean"
Expand All @@ -23,9 +30,8 @@
"type": "object",
"properties": {
"type": {
"type": [
"string"
],
"default": "Recreate",
"type": "string",
"enum": [
"Recreate",
"RollingUpdate"
Expand Down Expand Up @@ -98,6 +104,13 @@
"null"
]
},
"gatewayNamespace": {
"description": "_Gateway API_ gateway namespace to watch.",
"type": [
"string",
"null"
]
},
"global": {
"type": "object",
"properties": {
Expand Down Expand Up @@ -151,7 +164,7 @@
"type": "string"
},
"labelFilter": {
"description": "Filter resources queried for endpoints by label selector",
"description": "Filter resources queried for endpoints by label selector.",
"type": [
"string",
"null"
Expand Down Expand Up @@ -192,9 +205,7 @@
"logFormat": {
"description": "Log format.",
"default": "text",
"type": [
"string"
],
"type": "string",
"enum": [
"text",
"json"
Expand All @@ -203,9 +214,7 @@
"logLevel": {
"description": "Log level.",
"default": "info",
"type": [
"string"
],
"type": "string",
"enum": [
"panic",
"debug",
Expand Down Expand Up @@ -272,9 +281,7 @@
"policy": {
"description": "How DNS records are synchronized between sources and providers; available values are `create-only`, `sync`, \u0026 `upsert-only`.",
"default": "upsert-only",
"type": [
"string"
],
"type": "string",
"enum": [
"create-only",
"sync",
Expand Down Expand Up @@ -367,6 +374,7 @@
]
},
"port": {
"default": "string",
"type": [
"integer",
"string"
Expand Down Expand Up @@ -420,6 +428,7 @@
]
},
"port": {
"default": "string",
"type": [
"integer",
"string"
Expand Down
17 changes: 10 additions & 7 deletions charts/external-dns/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ image: # @schema additionalProperties: false
# -- Image tag for the `external-dns` container, this will default to `.Chart.AppVersion` if not set.
tag: # @schema type:[string, null]
# -- Image pull policy for the `external-dns` container.
pullPolicy: IfNotPresent # @schema enum:[IfNotPresent, Always];
pullPolicy: IfNotPresent # @schema enum:[IfNotPresent, Always]

# -- Image pull secrets.
imagePullSecrets: [] # @schema item: object
Expand Down Expand Up @@ -44,11 +44,11 @@ service:
# -- Service HTTP port.
port: 7979 # @schema minimum:0; default:7979
# -- Service IP families (e.g. IPv4 and/or IPv6).
ipFamilies: [] # @schema type: [array, null]; item: string; itemEnum: ["IPv4", "IPv6"]; minItems:0; maxItems:2; uniqueItems: true;
ipFamilies: [] # @schema type: [array, null]; item: string; itemEnum: ["IPv4", "IPv6"]; minItems:0; maxItems:2; uniqueItems: true
# - IPv4
# - IPv6
# -- Service IP family policy.
ipFamilyPolicy: # @schema type: [string, null]; enum:[SingleStack, PreferDualStack, RequireDualStack, null];
ipFamilyPolicy: # @schema type: [string, null]; enum:[SingleStack, PreferDualStack, RequireDualStack, null]

rbac: # @schema additionalProperties: true
# -- If `true`, create a `ClusterRole` & `ClusterRoleBinding` with access to the Kubernetes API.
Expand Down Expand Up @@ -234,13 +234,16 @@ domainFilters: []
# -- Intentionally exclude domains from being managed.
excludeDomains: []

# -- Filter resources queried for endpoints by label selector
# -- Filter resources queried for endpoints by label selector.
labelFilter: # @schema type: [string,null]; default: null

# -- Filter resources queried for endpoints by annotation selector.
annotationFilter: # @schema type: [string,null]; default: null

# -- Record types to manage (default: A, AAAA, CNAME)
managedRecordTypes: [] # @schema type: [array, null]; item: string; uniqueItems: true;
managedRecordTypes: [] # @schema type: [array, null]; item: string; uniqueItems: true

provider: # @schema type: [object, string];
provider: # @schema type: [object, string]
# -- _ExternalDNS_ provider name; for the available providers and how to configure them see [README](https://github.com/kubernetes-sigs/external-dns/blob/master/charts/external-dns/README.md#providers).
name: aws
webhook:
Expand Down Expand Up @@ -300,7 +303,7 @@ provider: # @schema type: [object, string];

# -- Extra arguments to provide to _ExternalDNS_.
# An array or map can be used, with maps allowing for value overrides; maps also support slice values to use the same arg multiple times.
extraArgs: {} # @schema type: [array, null, object]; item: string; uniqueItems: true;
extraArgs: {} # @schema type: [array, null, object]; item: string; uniqueItems: true

secretConfiguration:
# -- If `true`, create a `Secret` to store sensitive provider configuration (**DEPRECATED**).
Expand Down
4 changes: 2 additions & 2 deletions scripts/helm-tools.sh
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,8 @@ update_schema() {

diff_schema() {
cd charts/external-dns
helm schema \
-output diff-schema.schema.json
helm schema \
--output diff-schema.schema.json
trap 'rm -rf -- "diff-schema.schema.json"' EXIT
CURRENT_SCHEMA=$(cat values.schema.json)
GENERATED_SCHEMA=$(cat diff-schema.schema.json)
Expand Down
Loading