Only deploy components whose config changed; never needlessly reinstall

CIKlusterServices
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.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing