Components
Each component is a small reusable Helm subchart under k8s/helm/charts/components/. App charts depend on them; projects opt in by setting component-<name>.enabled: true (or, for component-tasks, by declaring a non-empty cron/workers/manual list).
| Component | Produces | Default |
|---|---|---|
component-tasks | CronJobs + worker Deployments + manual (suspended) CronJobs | off (empty lists) |
component-database | MySQLApp CRD | enabled: false |
component-redis | Redis Deployment + Service | enabled: false |
component-external-secret | Infisical SecretStore + ExternalSecret | enabled: true |
component-traefik-ingress | Traefik Ingress | enabled: false |
component-pdb | PodDisruptionBudget | enabled: true |
component-shared-volume | RWX PersistentVolumeClaims | empty (driven by global.sharedVolumes) |
How dependencies are wired
A component is declared in the app chart's Chart.yaml:
dependencies:
- name: component-tasks
version: "1.0.7"
repository: "file://../components/tasks"
And configured via the project's values file under its full key:
component-tasks:
cron: [...]
workers: [...]
manual: [...]