- Shipped
- July 8, 2026 at 6:46 PM UTC
- Author
- Kamo
- Commit
- 6aa246e
deploy-services.yml re-applied every service AND reinstalled cluster operators (cert-manager, KubeVirt, CDI — with 600s waits) on every push to main, so a one-line rspamd change triggered a ~50min full-cluster reinstall. - Add a "Detect changed components" step that diffs the push and gates each deploy step on whether ITS top-level dir changed. Manual dispatch, an unknown base SHA, or a change to the workflow itself still force a full reconcile. - Guard the operator installs: cert-manager installs only if absent or a different version; KubeVirt+CDI skip the (re)install and Available waits when both CRs are already Deployed. So even a full reconcile never reinstalls a healthy operator. - Split rspamd into its own gated step so an rspamd change no longer redeploys the whole mail stack / reruns the MySQL jobs. - Add a concurrency group so two deploys can't race on kubectl apply.