PR progress checklist (to be filled in by reviewers)
[ ] Changes to documentation are appropriate (or tick if not required)
[ ] Changes to tests are appropriate (or tick if not required)
[ ] Reviews completed
What type of PR is this?
Primary type
[ ] [build] Changes related to the build system
[ ] [chore] Changes to the build process or auxiliary tools and libraries such as documentation generation
[ ] [ci] Changes to the continuous integration configuration
[ ] [feat] A new feature
[x] [fix] A bug fix
[ ] [perf] A code change that improves performance
[ ] [refactor] A code change that neither fixes a bug nor adds a feature
[ ] [revert] A change used to revert a previous commit
[ ] [style] Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc.)
Secondary type
[ ] [docs] Documentation changes
[ ] [test] Adding missing or correcting existing tests
Does this PR introduce a BREAKING CHANGE?
No.
Related issues and/or pull requests
None.
Describe the changes you're proposing
This PR fixes a few problems with requisites:
If letsencrypt.install_method != 'package', the create-initial-cert-*-* state did not have a dependency (direct or indirect) on the certbot utility, causing failure on a fresh system.
The letsencrypt-config state was missing a dependency on letsencrypt-config-directory.
The requisites for the cron job state are unnecessary when removing the cron job.
Applying the letsencrypt.domains state would trigger errors due to missing includes:
$ salt domain.example.com state.apply letsencrypt.domains
...
----------
ID: create-initial-cert-domain.example.com-domain.example.com
Function: cmd.run
Name: /usr/bin/certbot certonly \
--quiet \
--non-interactive \
--authenticator nginx \
--installer nginx \
--cert-name domain.example.com \
-d domain.example.com
Result: False
Comment: The following requisites were not found:
require:
pkg: letsencrypt-client
file: letsencrypt-config
Started: 20:28:25.859877
Duration: 0.018 ms
Changes:
----------
ID: letsencrypt-crontab-domain.example.com-domain.example.com
Function: cron.absent
Name: /usr/bin/certbot renew domain.example.com
Result: False
Comment: The following requisites were not found:
require:
pkg: letsencrypt-client
Started: 20:28:25.863317
Duration: 0.006 ms
Changes:
...
Pillar / config required to test the proposed changes
Debug log showing how the proposed changes work
Documentation checklist
[ ] Updated the README (e.g. Available states).
[ ] Updated pillar.example.
Testing checklist
[ ] Included in Kitchen (i.e. under state_top).
[ ] Covered by new/existing tests (e.g. InSpec, Serverspec, etc.).
PR progress checklist (to be filled in by reviewers)
What type of PR is this?
Primary type
[build]
Changes related to the build system[chore]
Changes to the build process or auxiliary tools and libraries such as documentation generation[ci]
Changes to the continuous integration configuration[feat]
A new feature[fix]
A bug fix[perf]
A code change that improves performance[refactor]
A code change that neither fixes a bug nor adds a feature[revert]
A change used to revert a previous commit[style]
Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc.)Secondary type
[docs]
Documentation changes[test]
Adding missing or correcting existing testsDoes this PR introduce a
BREAKING CHANGE
?No.
Related issues and/or pull requests
None.
Describe the changes you're proposing
This PR fixes a few problems with requisites:
letsencrypt.install_method != 'package'
, thecreate-initial-cert-*-*
state did not have a dependency (direct or indirect) on thecertbot
utility, causing failure on a fresh system.letsencrypt-config
state was missing a dependency onletsencrypt-config-directory
.Applying the
letsencrypt.domains
state would trigger errors due to missinginclude
s:Pillar / config required to test the proposed changes
Debug log showing how the proposed changes work
Documentation checklist
README
(e.g.Available states
).pillar.example
.Testing checklist
state_top
).Additional context