Skip to content

fix(azure): external-dns extraArgs must be a list, not a map - #355

Merged
amdove merged 1 commit into
mainfrom
fix-azure-external-dns-extraargs
Jul 17, 2026
Merged

fix(azure): external-dns extraArgs must be a list, not a map#355
amdove merged 1 commit into
mainfrom
fix-azure-external-dns-extraargs

Conversation

@amdove

@amdove amdove commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Description

The ExternalDNS Helm install fails on the kubernetes-sigs external-dns chart (v1.14.4) with:

Error: INSTALLATION FAILED: values don't meet the specifications of the schema(s)... - extraArgs: Invalid type. Expected: array, given: object

In lib/steps/helm_azure.go (azureHelmExternalDNS), extraArgs was set as a map:

"extraArgs": map[string]interface{}{
    "txt-wildcard-replacement": "wildcard",
},

The kubernetes-sigs external-dns chart expects extraArgs to be an array of raw flag strings (the chart does range .Values.extraArgs and appends each item to the container args). The map form fails the chart's values.schema.json and, even without the strict schema, would have rendered the bare value (wildcard) instead of the flag.

Code Flow

azureHelmExternalDNS builds the external-dns Helm values map that is marshalled to YAML and applied via a HelmChart custom resource. This change switches extraArgs to the list form, passing the full flag string --txt-wildcard-replacement=wildcard — matching the convention already used in the AWS path (lib/steps/clusters_aws.go, which passes --aws-zone-match-parent as a list item). This is the only place the Azure external-dns values are built.

Category of change

  • Bug fix (non-breaking change which fixes an issue)
  • Version upgrade (upgrading the version of a service or product)
  • New feature (non-breaking change which adds functionality)
  • Build: a code change that affects the build system or external dependencies
  • Performance: a code change that improves performance
  • Refactor: a code change that neither fixes a bug nor adds a feature
  • Documentation: documentation changes
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist

  • I have reviewed my own diff and added inline comments on lines I want reviewers to focus on or that I am uncertain about

The kubernetes-sigs external-dns chart (v1.14.4) expects extraArgs to be
an array of raw flag strings (the chart does `range .Values.extraArgs`
and appends each item to the container args). Passing a map fails the
chart's values.schema.json ("extraArgs: Invalid type. Expected: array,
given: object") and would render the value instead of the flag.

Switch the Azure external-dns values to the list form used elsewhere
(clusters_aws.go), passing the full flag string
`--txt-wildcard-replacement=wildcard`.
@amdove
amdove marked this pull request as ready for review July 17, 2026 16:17
@amdove
amdove requested a review from a team as a code owner July 17, 2026 16:17
@claude

claude Bot commented Jul 17, 2026

Copy link
Copy Markdown

Claude finished @amdove's task in 33s —— View job


PR Review

  • Gather context
  • Read changed file and review guidelines
  • Review the diff
  • Post review findings

The fix is correct and the minimal change is appropriate. A few notes:

Correctness

The old map form passed {"txt-wildcard-replacement": "wildcard"} which (a) failed the chart's JSON schema validation (expected: array, given: object) and (b) would have rendered the bare value rather than a flag string even without strict schema validation. The new list form ["--txt-wildcard-replacement=wildcard"] matches the chart's expected format and is consistent with how --aws-zone-match-parent is passed in the AWS path (clusters_aws.go:797).

No concerns. The change is correct, well-scoped, and follows existing convention. Ready to merge.

@amdove
amdove added this pull request to the merge queue Jul 17, 2026
Merged via the queue into main with commit ee4a8bf Jul 17, 2026
7 checks passed
@amdove
amdove deleted the fix-azure-external-dns-extraargs branch July 17, 2026 16:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants