Skip to main content

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

ComponentProducesDefault
component-tasksCronJobs + worker Deployments + manual (suspended) CronJobsoff (empty lists)
component-databaseMySQLApp CRDenabled: false
component-redisRedis Deployment + Serviceenabled: false
component-external-secretInfisical SecretStore + ExternalSecretenabled: true
component-traefik-ingressTraefik Ingressenabled: false
component-pdbPodDisruptionBudgetenabled: true
component-shared-volumeRWX PersistentVolumeClaimsempty (driven by global.sharedVolumes)
component-varnishVarnish StatefulSet + Services (full-page cache for oym/craft-cacheable sites)enabled: false

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: [...]