sveltekit
Helm chart for SvelteKit applications.
- Workload kind:
Deployment(rolling update,maxSurge: 1,maxUnavailable: 0) — not a StatefulSet - Container port: 3000 (service exposes 80 → 3000)
- Probes: always on (
/healthstartup + liveness,/readyreadiness) - No init container — image runs directly,
.container-init.shis never run - Migrations:
component-tasks.migrations.commandsrun once per deploy as an ArgoCDSynchook Job (from 1.3.7; 1.3.6 ran it asPreSync)
Dependencies
component-traefik-ingresscomponent-pdbcomponent-external-secretcomponent-taskscomponent-shared-volumecomponent-database
No Redis subchart — SvelteKit deployments here are typically frontends.
Shared volumes (RWX)
Cross-pod shared storage is opt-in via global.sharedVolumes. See component-shared-volume for the schema and examples.
global:
sharedVolumes:
- name: assets
size: 2Gi
mounts:
- path: /app/static/uploads
Migrations
Database migrations run once per deploy as an ArgoCD Sync hook Job, after the app secrets and database are ready and before any new pod of the app, its workers or its cron jobs starts:
component-tasks:
migrations:
commands:
- ["./node_modules/.bin/drizzle-kit", "migrate"]
The chart has no init container, so this is the only place migrations run. Charts before 1.3.6 bundle component-tasks 1.2.13, which ignores the migrations block without an error; 1.3.6 runs the Job as PreSync, before the secrets and database exist, so use 1.3.7 or later. Fields and behaviour: component-tasks → Migrations.