Skip to main content

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 (/health startup + liveness, /ready readiness)
  • No init container — image runs directly, .container-init.sh is never run
  • Migrations: component-tasks.migrations.commands run once per deploy as an ArgoCD Sync hook Job (from 1.3.7; 1.3.6 ran it as PreSync)

Dependencies​

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.