Goal
Run puppetsync on a schedule (e.g. a cron-triggered GHA workflow) against the whole org, so the baseline is continuously enforced instead of enforced in occasional hand-driven sessions.
Prerequisites
This is the capstone on top of:
Together those make "safe to run when nothing needs changing" true, which is exactly the property a scheduled run needs.
Sketch
- GHA workflow on this repo with a
schedule: trigger (plus workflow_dispatch: for manual runs), running the sync plan against the org-wide dynamic inventory.
- Auth via a bot account token; pushes over HTTPS with the token (the
push changes using HTTPS basic auth + GitHub token (CI friendly) stretch goal already noted in plans/init.pp).
- The run's three-bucket summary (PR'd / unchanged / failed) becomes the job output; failures should be loud (issue comment, Slack, or failed job).
Effectively this turns puppetsync into the same kind of continuously-running fleet manager that Renovate already is for dependencies, with the two dividing the labor: Renovate owns versions, puppetsync owns structure.
Goal
Run puppetsync on a schedule (e.g. a cron-triggered GHA workflow) against the whole org, so the baseline is continuously enforced instead of enforced in occasional hand-driven sessions.
Prerequisites
This is the capstone on top of:
Together those make "safe to run when nothing needs changing" true, which is exactly the property a scheduled run needs.
Sketch
schedule:trigger (plusworkflow_dispatch:for manual runs), running the sync plan against the org-wide dynamic inventory.push changes using HTTPS basic auth + GitHub token (CI friendly)stretch goal already noted inplans/init.pp).Effectively this turns puppetsync into the same kind of continuously-running fleet manager that Renovate already is for dependencies, with the two dividing the labor: Renovate owns versions, puppetsync owns structure.