Add external-dns-crossplane-resources HelmRelease#1837
Conversation
Deploy external-dns-crossplane-resources chart to create the AWS IAM role for external-dns Route53 access via Crossplane. This replaces the IAM role previously managed by capa-iam-operator. The App CR follows the same pattern as cilium-crossplane-resources and cert-manager-crossplane-resources, using the shared crossplane-config ConfigMap for cluster-specific values (clusterName, accountID, baseDomain). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The Crossplane IAM Role is named {clusterName}-external-dns, replacing
the {clusterName}-Route53Manager-Role previously created by
capa-iam-operator.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace the App CR template with OCIRepository + HelmRelease pattern, aligning with the ongoing migration in PR #1758. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
| valuesFrom: | ||
| # Created by aws-crossplane-cluster-config-operator once the cluster gets provisioned | ||
| - kind: ConfigMap | ||
| name: {{ printf "%s-crossplane-config" (include "resource.default.name" $) | quote }} | ||
| valuesKey: values | ||
| optional: false |
There was a problem hiding this comment.
Instead of creating a dependency on this ConfigMap (and hence on the controller that creates it), could we inline here the required values? I think we only need three values:
- basedomain:
.Values.global.connectivity.baseDomain - aws account id:
{{ include "aws-account-id" $ }} - cluster name:
{{ include "resource.default.name" $ }}
You can see examples of this approach for other HelmReleases in this repo
Replace valuesFrom referencing the crossplane-config ConfigMap with inline values. This removes the runtime dependency on aws-crossplane-cluster-config-operator since clusterName, accountID, and baseDomain are all available at template time. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
AndiDog
left a comment
There was a problem hiding this comment.
LGTM, but let's wait if we need some other changes due to giantswarm/external-dns-crossplane-resources#35
… external-dns-crossplane-resources - Add _oidc.tpl with aws-oidc-domain helper (domain without https://, China-aware) - Replace inline conditional in cert-manager-crossplane-resources-app.yaml with the helper - Inject oidcDomain and oidcDomains values into external-dns-crossplane-resources HelmRelease
|
/run cluster-test-suites |
|
Important Some test suites failed. See the Checks tab for detailed results per suite. Re-run only the failed tests: |
Signed-off-by: Matias Charriere <matias@giantswarm.io>
Signed-off-by: Matias Charriere <matias@giantswarm.io>
|
/run cluster-test-suites TARGET_SUITES=./providers/capa/standard |
|
Important Some test suites failed. See the Checks tab for detailed results per suite. Re-run only the failed tests: |
|
/run cluster-test-suites TARGET_SUITES=./providers/capa/standard |
Signed-off-by: Matias Charriere <matias@giantswarm.io>
|
There were differences in the rendered Helm template, please check! Output |
|
/run cluster-test-suites TARGET_SUITES=./providers/capa/standard |
Summary
external-dns-crossplane-resourceschart on CAPA clusterscapa-iam-operator{clusterID}-crossplane-configConfigMap for cluster-specific valuesCompanion PR: giantswarm/external-dns-crossplane-resources#35
Test plan
eks.amazonaws.com/role-arnServiceAccount annotation🤖 Generated with Claude Code