This IDP exposes stack‑level toggles (“fuses”) so you can shape a deployment before syncing anything. Start simple with stack switches, then evolve toward finer‑grained controls per component.
Stack fuses
Defined in config.toml under [fuses]:
[fuses]policies = true # Kyverno + Policies appsecurity = true # Security stack (Trivy Operator)observability = true # Prometheus + Grafana + Loki + Fluent-bit (+ Pyrra)cicd = true # Argo Workflows + templatesbackstage = true # Backstage developer portalprod = false # Hardened profile (HA switches)Runtime behavior:
task stacks:deployreads fuses and applies only the enabled stacks (events are always on).fuses.prod = trueenables production hardening (today: HA for ArgoCD; future: more dials).
Try it:
# Show effective valuestask config:print
# Example: disable security stack, enable everything elseuv run dasel put -r toml -f config.toml fuses.security false >/dev/nulltask deployProfiles — concept to practice
Three reference profiles to guide safe defaults:
-
Demo (current defaults)
- Fuses: all stacks on
- Kyverno: audit (no enforce)
- HA: off; minimal persistence
- Retentions: short (Prometheus 6h)
-
Staging (candidate; not wired yet)
- Fuses: all stacks on
- Kyverno: audit (plus extra checks)
- HA: selective (ArgoCD on, others optional)
- Retentions: medium; basic alerting receivers
-
Prod (partial today via
fuses.prod=true)- Fuses: on per need
- Kyverno: audit (today); plan to move critical to enforce
- HA: enable for control planes (ArgoCD done; extend to ESO/cert-manager as needed)
- Retentions/persistence: real PVCs; longer retention; tuned resources
Suggested TOML extension (future):
[profiles]active = "demo" # or staging/prod
[profiles.staging]observability.retention = "24h"argocd.ha = truealerts.enabled = trueKyverno mode
By design (for now), policies use validationFailureAction: audit. This keeps the road
paved without blocking deploys. Candidates to enforce later:
- Namespace labels (already enforced)
- Component labels on Deployments/StatefulSets
- PriorityClass required for workloads
- ESO
creationPolicy: Mergefor sensitive targets
Fine‑grained toggles
Useful switches inside big stacks:
- Observability:
alertmanager.enabled,loki.enabled,fluent-bit.enabled,pyrra.enabled - Security:
trivy.enabled,image-policy.enabled - Delivery:
rollouts.enabled,kargo.enabled
Implementation options:
- Pass
--set enabled=<bool>when charts support it (Tasks detect fuses and add flags). - Split subcomponents into separate Application folders and gate per‑folder.
Reference
- Effective config:
task config:print - Contracts & Guardrails: operate/contracts.md