You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Select public hosted zone for Amazon-issued ACM DNS validation
The create-acm-cert (EnableCertificateManagement) feature writes the ACM DNS
validation CNAME into the most-specific matching Route 53 hosted zone. In
split-horizon DNS (a private zone that is a subdomain of a public zone) that
most-specific zone is the private one. ACM validates Amazon-issued (public)
certificates over public DNS, so the record never resolves and the certificate
is stuck in PENDING_VALIDATION forever; the HTTPS listener never finalizes.
Select the validation record's hosted zone from public zones only (nearest
public ancestor) for Amazon-issued certificates. If no public zone matches,
fail fast with an actionable error pointing at the certificate-arn annotation
instead of creating a certificate that hangs in PENDING_VALIDATION.
The delete path attempts cleanup in both the most-specific zone (records
written by earlier controller versions) and the public zone (records written
after this change), so validation records are not orphaned across the upgrade.
Fixes#4840
Signed-off-by: niv1612 <35202955+niv1612@users.noreply.github.com>
Copy file name to clipboardExpand all lines: docs/guide/ingress/certificate_management.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -38,6 +38,8 @@ Amazon Issued certificates are currently validated using DNS Method and Route53
38
38
E-Mail validation is not supported due to significant higher delays between requesting a certificate and it's issuance.
39
39
When using a PCA, certificates don't have to be validated.
40
40
41
+
Because ACM validates Amazon-issued certificates over **public** DNS, the controller writes the validation record into the nearest-ancestor **public** Route53 hosted zone. In split-horizon setups (a private zone that is a subdomain of a public zone), the private zone is skipped so the record lands where ACM can resolve it. If no public hosted zone matches the domain (private-only domain, or the public parent lives in an account the controller can't see), the controller fails fast. In that case, pre-create the certificate yourself and reference it with the [`certificate-arn`](annotations.md#certificate-arn) annotation.
42
+
41
43
## Ingress Group Behavior
42
44
43
45
When using certificate management with [IngressGroups](ingress_class.md#specgroup), each ingress in the group gets its own certificate based on its own hostnames. All certificates are attached to the shared ALB's HTTPS listener.
c.logger.Info("validation records no longer found, ignoring", "name", opts.ResourceRecord.Name, "value", opts.ResourceRecord.Value, "type", opts.ResourceRecord.Type)
263
-
continue
264
-
}
265
-
iferr!=nil&&strings.Contains(err.Error(), "do not match the current values") {
266
-
c.logger.Info("validation records have been reused for another certificate, ignoring", "name", opts.ResourceRecord.Name, "value", opts.ResourceRecord.Value, "type", opts.ResourceRecord.Type)
c.logger.Info("validation records no longer found, ignoring", "name", opts.ResourceRecord.Name, "value", opts.ResourceRecord.Value, "type", opts.ResourceRecord.Type)
274
+
continue
275
+
}
276
+
iferr!=nil&&strings.Contains(err.Error(), "do not match the current values") {
277
+
c.logger.Info("validation records have been reused for another certificate, ignoring", "name", opts.ResourceRecord.Name, "value", opts.ResourceRecord.Value, "type", opts.ResourceRecord.Type)
0 commit comments