Repository navigation
Feature Request: Add annotation to disable automatic certificate renewal #8085
Copy link
Copy link
Closed
Labels
lifecycle/rottenDenotes an issue or PR that has aged beyond stale and will be auto-closed.Denotes an issue or PR that has aged beyond stale and will be auto-closed.priority/important-longtermImportant over the long term, but may not be staffed and/or may need multiple releases to complete.Important over the long term, but may not be staffed and/or may need multiple releases to complete.
Description
Feature Request
Problem Statement
Currently, cert-manager automatically renews certificates when they approach expiry based on the renewBefore or renewBeforePercentage settings. However, there are scenarios where users need to disable automatic renewal for specific certificates while keeping cert-manager managing the certificate lifecycle.
Use Cases:
- Compliance Requirements: Some organizations have strict change control processes that require manual approval before certificate renewal
- Testing Scenarios: During testing or staging environments, teams may want to test certificate expiry handling
- Migration Periods: When migrating between certificate authorities or during infrastructure changes, temporary suspension of auto-renewal may be needed
- Cost Control: For certificates from paid CAs, organizations may want manual control over renewal timing
- Special Certificates: Certain certificates may have dependencies that require coordinated renewal with other systems
Proposed Solution
Add a new annotation cert-manager.io/disable-reissue that, when set to "true" on a Certificate resource, prevents automatic renewal even when the certificate approaches its expiry time.
Example Usage:
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: example-cert
namespace: default
annotations:
cert-manager.io/disable-reissue: "true" # Disable automatic renewal
spec:
secretName: example-cert-tls
issuerRef:
name: example-issuer
kind: Issuer
commonName: example.com
dnsNames:
- example.comImplementation Details
- Annotation Name:
cert-manager.io/disable-reissue - Accepted Values:
"true"- Disables automatic renewal"false"or absent - Default behavior (automatic renewal enabled)
- Scope: Only affects automatic renewal triggered by approaching expiry. Manual renewal (e.g., through cmctl or by modifying the Certificate) should still work
- Components to Modify:
certificates-triggercontroller: Skip renewal trigger when annotation is presentcertificates-readinesscontroller: Update status message to indicate reissue is disabled- Policy evaluation chain: Skip
CurrentCertificateNearingExpirycheck when annotation is set
Expected Behavior
When annotation is set to "true":
- Certificate will NOT be automatically renewed when approaching expiry
- Certificate Ready condition remains
Trueuntil actual expiry - Status should indicate that reissue is disabled (optional)
- Events/logs should note that renewal was skipped due to the annotation
- Manual renewal triggers should still function normally
When annotation is removed or set to "false":
- Normal reissue behavior resumes
- If certificate is already past its renewal time, renewal should be triggered immediately
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
lifecycle/rottenDenotes an issue or PR that has aged beyond stale and will be auto-closed.Denotes an issue or PR that has aged beyond stale and will be auto-closed.priority/important-longtermImportant over the long term, but may not be staffed and/or may need multiple releases to complete.Important over the long term, but may not be staffed and/or may need multiple releases to complete.
Activity
mladen-rusev-cyberark commentedon Oct 7, 2025
/priority important-longterm
There is an open design PR for this ->#8139
cert-manager-bot commentedon Apr 7, 2026
Issues go stale after 6 months of inactivity.
Mark the issue as fresh with
/remove-lifecycle stale.Stale issues remain open for an additional 3 months of inactivity and then close.
If this issue is safe to close now please do so with
/close./lifecycle stale
cert-manager-bot commentedon Jul 7, 2026
Stale issues rot after 3 months of inactivity.
Mark the issue as fresh with
/remove-lifecycle rotten.Rotten issues close after an additional 3 months of inactivity.
If this issue is safe to close now please do so with
/close./lifecycle rotten
/remove-lifecycle stale
wallrj commentedon Aug 10, 2026
Fixed in cert-manager 1.21: