Business Applications

odoo

Odoo ERP — Postgres persistence, filestore PVC, worker tuning, master password via secrets backend

@r8s/odoo

odooerpcrmbusiness

Components (1)

01

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)