Skip to content

Rework the way certificates renewal is managed#81

Merged
neomilium merged 1 commit intomainfrom
rework-renewal
Feb 28, 2026
Merged

Rework the way certificates renewal is managed#81
neomilium merged 1 commit intomainfrom
rework-renewal

Conversation

@smortex
Copy link
Copy Markdown
Member

@smortex smortex commented Feb 17, 2026

Some linux distributions do not ship cron by default anymore. The module unconditionally manage cron entries, resulting in catalog application failures on these operating systems until cron is installed.

To avoid this hard dependency, allow to choose how certificates renewal is te be handled with the new dehydrated::renewal_provider parameter which replate the dehydrated::cron_integration parameter.

If you previously set cron_integration => true, you must remove this parameter and replace it with renewal_provider => 'cron'. If you prefer to rely on systemd to renew certificates, you can set renewal_provider accordingly.

We also introduce another new parameter renewal_interval which allows to select how ofter certificate renewals are attempted. Because the world is moving toward short-lived certificates, the default internal is daily, but can be set to weekly to match the previous behavior. Also note that the default value never is suppored and allows to switch from one provider to another without leftovers from the legacy provider. For this a two-step upgrade is required:

  1. Keep renewal_provider unchanged and set renewal_interval => 'never', apply a catalog;
  2. Change renewal_provider to the new provider and set renewal_interval to the expected value.

@smortex smortex added the backwards-incompatible This change will lead to a major version bump for the next release label Feb 17, 2026
@smortex smortex marked this pull request as ready for review February 17, 2026 23:08
@smortex smortex requested review from a team as code owners February 17, 2026 23:08
@smortex smortex force-pushed the rework-renewal branch 2 times, most recently from 2e5bf6a to cee8886 Compare February 18, 2026 03:51
Some linux distributions do not ship cron by default anymore.  The
module unconditionally manage cron entries, resulting in catalog
application failures on these operating systems until cron is installed.

To avoid this hard dependency, allow to choose how certificates renewal
is te be handled with the new `dehydrated::renewal_provider` parameter
which replate the `dehydrated::cron_integration` parameter.

If you previously set `cron_integration => true`, you must remove this
parameter and replace it with `renewal_provider => 'cron'`.  If you
prefer to rely on systemd to renew certificates, you can set
`renewal_provider` accordingly.

We also introduce another new parameter `renewal_interval` which allows
to select how ofter certificate renewals are attempted.  Because the
world is moving toward short-lived certificates, the default internal is
`daily`, but can be set to `weekly` to match the previous behavior.
Also note that the default value `never` is suppored and allows to
switch from one provider to another without leftovers from the legacy
provider.  For this a two-step upgrade is required:

1. Keep `renewal_provider` unchanged and set `renewal_interval =>
   'never'`, apply a catalog;
2. Change `renewal_provider` to the new provider and set
   `renewal_interval` to the expected value.
@neomilium
Copy link
Copy Markdown
Member

IMHO, this PR explanation contains clear migration instructions that should be in README.md.

@smortex
Copy link
Copy Markdown
Member Author

smortex commented Feb 28, 2026

These instructions only make sense when updating, and the CHANGELOG will link to this PR. I am fine with not adding these details to the main README.

@neomilium neomilium merged commit 55e6c24 into main Feb 28, 2026
9 checks passed
@neomilium neomilium deleted the rework-renewal branch February 28, 2026 14:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backwards-incompatible This change will lead to a major version bump for the next release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants