[
https://issues.apache.org/jira/browse/IGNITE-29211?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ignite TC Bot updated IGNITE-29211:
-----------------------------------
External issue ID: IGN-2932
> Renew TLS certificates automatically before expiry
> --------------------------------------------------
>
> Key: IGNITE-29211
> URL: https://issues.apache.org/jira/browse/IGNITE-29211
> Project: Ignite
> Issue Type: Sub-task
> Reporter: Anton Vinogradov
> Assignee: Anton Vinogradov
> Priority: Major
> Labels: ise
>
> Allow a node to load certificates supplied by an external system before the
> current chain expires. Manual file replacement remains a separate workflow:
> replace the files and run {{--ssl reload}}.
> h3. Required behavior
> * Add opt-in renewal settings to AbstractSslContextFactory, disabled by
> default. Schedule attempts from the certificate lifetime and earliest expiry
> in its chain. Refuse startup when renewal is enabled but the factory supplies
> no chain metadata.
> * Reuse reload validation. Install only a valid replacement whose chain
> expires later. If the chain is unchanged, loading fails or the replacement is
> rejected, keep the current context and retry with bounded backoff and jitter.
> Continue retrying after expiry. Show the next attempt in {{--ssl status}} and
> log failures.
> * Publish one node metric, {{ssl.ConsecutiveRenewalFailures}}. Sum the
> consecutive unsuccessful automatic attempts of distinct factory instances,
> counting a shared factory once. An unchanged certificate is an unsuccessful
> attempt.
> * Reset only the affected factory's count when automatic renewal or manual
> reload installs a chain with a later expiry. Failed manual reloads do not
> increment the metric.
> * Serialize manual and automatic work for each factory. Replan after
> successful reload and prevent an obsolete automatic attempt from installing
> its result. Run automatic work in the node's operation context.
> * Interrupt and finish renewal work during shutdown. Cancellation must not
> count as a renewal failure or overwrite the last reload result.
> h3. Tests and documentation
> Cover scheduling, chain expiry, retries after expiry, unchanged certificates,
> counter aggregation and reset, races with manual reload, shutdown and
> default-off behavior. Explain when to enable renewal, how to inspect failures
> and how the metric changes.
> h3. Dependencies and remaining work
> The branch {{ignite-29211}} is prepared. Open its PR after IGNITE-29210 is
> merged, then run CI on the updated branch. HTTP REST integration in
> IGNITE-29212 is independent.
> When both IGNITE-29211 and IGNITE-29212 are present, document HTTP REST
> automatic renewal in the renewal configuration table, HTTP REST guide and
> ConnectorConfiguration Javadoc. Include these updates with whichever change
> merges second.
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)