odoo
Odoo ERP — Postgres persistence, filestore PVC, worker tuning, master password via secrets backend
@r8s/odoo
Components (1)
Odoo
Odoo — open-source ERP / business applications suite.
import { Platform } from '@r8s/recipes'
import { Odoo } from '@r8s/odoo'
export default (
<Platform secrets={{ backend: 'openbao', mount: 'kv', path: 'apps' }}>
<Odoo name="erp" host="erp.example.com" workers={4} />
</Platform>
)
namestringOptional—Resource name (defaults to 'odoo')
namespacestringOptional—Kubernetes namespace (defaults to 'default')
versionstringOptional—Container image tag (defaults to '18' — pin a version in production)
hoststringRequired—Public hostname for the ERP web UI (required)
replicasnumberOptional—Number of replicas. Must stay at 1 — the filestore PVC is ReadWriteOnce and cannot attach to multiple pods (defaults to 1).
filestorestringOptional—Size of the filestore PersistentVolumeClaim (defaults to '20Gi'). Odoo stores attachments and binary fields here.
workersnumberOptional—Odoo process-level worker processes, rendered into odoo.conf (defaults to 2). Rule of thumb: (CPU threads * 2) + 1, accounting for cron workers.
masterPasswordSecretNamestringOptional—Name of an existing Secret containing key masterPassword. Odoo requires this to manage the super-admin (/web/database/manager). Required unless a secrets backend (openbao/vault) is configured on the surrounding Platform — the backend then provisions the password automatically. Plaintext passwords are not supported.
resources{ requests?: { cpu?: string, memory?: string }, limits?: { cpu?: string, memory?: string } }Optional—Requested resources
tls{ secretName: string, clusterIssuer: string }Optional—TLS configuration (defaults to letsencrypt-prod cluster issuer)