Upgrade vendored cert-manager and external-dns charts - #1197
Merged
jorgemoralespou merged 3 commits intoSep 15, 2026
Merged
jorgemoralespou merged 3 commits into
jorgemoralespou merged 3 commits into
Conversation
Vendor the cert-manager chart v1.21.2 (from v1.20.3) and the external-dns chart 1.22.0 with app version 0.22.0 (from 1.21.1 / 0.21.0). Update the Makefile VENDORED_CHARTS entries, SHA256SUMS, the embed.go constants and directives, the helm load test that hardcodes the cert-manager version, and the vendored-charts README table. external-dns 0.22.0 only reads annotations carrying the external-dns.kubernetes.io/ prefix by default, so the Contour reconciler now annotates the Envoy Service with external-dns.kubernetes.io/hostname and the installation architecture guide and release notes reflect the new key. The external-dns chart also makes policy a required value (the reconciler already sets sync) and exposes a replicaCount bounded to 0..1; the reconciler comments are updated to match. The Deployment names the cert-manager and external-dns reconcilers gate readiness on are unchanged, and the regenerated fine-grained install RBAC is identical.
Rewrite the OperationalBlock doc comment to explain why only BundledContour carries an operational block against the charts as vendored today: external-dns is single-instance (its chart bounds replicaCount to 0 or 1 and the controller has no leader election), Kyverno's four controllers have distinct HA guidance, and cert-manager is installed with its default workload settings. The previous text narrated the trim date and cited external-dns 1.21.1 hardcoding replicas, which no longer holds for chart 1.22.0. Tighten the KyvernoConfig comment that pointed at the same history. Regenerate the EducatesClusterConfig CRD (chart, operator embed, CLI embed) and the CLI EducatesConfig schema from the updated comment.
… Envoy Service external-dns reads exactly one annotation prefix, defaulting to external-dns.kubernetes.io/ from 0.22.0 and to external-dns.alpha.kubernetes.io/ before, with no fallback either way. Setting the wildcard hostname under both keys lets the bundled 0.22.0 pick it up, keeps a user-run external-dns older than 0.22 working, and avoids the wildcard record being dropped while the bundled release is upgraded in place, since Contour is reconciled before external-dns. The older key is deprecated and noted as such in the release notes; the installation architecture guide describes both keys.
jorgemoralespou
deleted the
feature/4.0/upgrade-cert-manager-external-dns
branch
September 15, 2026 10:53
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Bumps the two remaining vendored upstream cluster-service charts the
installer operator ships, and carries the follow-on changes those bumps
required.
Cluster-service charts
v1.20.3→v1.21.2v1.20.3→v1.21.21.21.1→1.22.00.21.0→0.22.0Followed the
educates-upgrade-cluster-servicesprotocol:VENDORED_CHARTS(Makefile),
SHA256SUMS,embed.goconstants and the on-disk tarballs allmove together, tarballs re-vendored through
make vendor-charts(hashverified) and the old ones removed. The helm load test that hardcodes the
cert-manager version and the vendored-charts README table are updated.
Reconciler assumptions re-verified by rendering both new charts:
cert-manager,cert-manager-webhookand
cert-manager-cainjectorDeployments and still honours thecrds.enabled/crds.keep/startupapicheck.enabledvaluesrenderCertManagerValuessets. The 1.21 chart drops the defaulttokenrequest Role/RoleBinding, restricts
createon Orders/Challenges incert-manager-edit, and removes the ServiceMonitortargetPort/pathvalues; the operator sets and uses none of those. The three v1.21.0
regressions (controller panic with
renewal.policy: Disabled, Secretinformer log spam, Issuers stuck
InvalidSolver) are fixed in v1.21.1.external-dnsDeployment.Chart 1.22.0 makes
policya required value (the reconciler already setssync) and replaces the hardcoded replica count with areplicaCountvalue bounded to 0..1, left at the default; the reconciler comments are
updated to match.
Regenerating the fine-grained installer RBAC produced no diff.
external-dns annotation prefix
external-dns 0.22.0 reads annotations under the
external-dns.kubernetes.io/prefix by default and no longer reads
external-dns.alpha.kubernetes.io/;each release reads exactly one prefix (
--annotation-prefix) with nofallback either way. The Contour reconciler now sets the wildcard hostname on
the Envoy Service under both keys:
keeps the wildcard record alive during an in-place upgrade of the bundled
release (Contour is reconciled before external-dns, so the annotation
swap would otherwise land while the old external-dns is still running
with
policy: sync).The old key is marked deprecated in the release notes for removal in a later
release. The release notes also warn that resources users annotate themselves
for the bundled external-dns (for example when
sourcesincludesingress)must move to the new prefix. The installation architecture guide describes
both keys.
Other 0.22.0 changes reviewed: on Route53 the ownership TXT records for alias
A records move from a
cname-to ana-prefix (upstream migrates themautomatically; leftover
cname-records can be cleaned with upstream'sscript). The removed providers (Akamai, Plural, Transip) and Pi-hole v5 are
not reachable through the CRD, which only offers Route53 and CloudDNS.
OperationalBlock doc comment
The
OperationalBlockdoc comment in the config API cited "external-dns1.21.1 hardcodes replicas to 1 and exposes no replica value", which no longer
holds. It is rewritten in terms of the charts as vendored today, the
KyvernoConfigcomment that pointed at the same history is tightened, andthe CRD (chart, operator embed, CLI embed) plus the CLI
EducatesConfigschema are regenerated from it.
Testing
make -C installer/operator verify-vendored-charts— all four tarballhashes verify.
make -C installer/operator test— passes, includingTestVendoredCharts_DirectoryConsistent, the per-chart_Embeddedtestsand the envtest suites.
make generate-installer-rbac+make embed-installer-chart— no drift.make ci-cli— passes (build, tests, installer-chart embed and CLI schemadrift checks).
DNSReadywith the newannotation keys needs a Managed-mode install against a Route53 or CloudDNS
zone.