From a3dafa925b7cc2d857795672cde3bb684e51324b Mon Sep 17 00:00:00 2001 From: Paul Payne Date: Fri, 19 Jun 2026 21:33:17 +0000 Subject: [PATCH] Adds odoo app. --- odoo/app.yaml | 6 ++ odoo/versions/18/README.md | 37 +++++++++++ odoo/versions/18/db-init-job.yaml | 63 ++++++++++++++++++ odoo/versions/18/deployment.yaml | 95 +++++++++++++++++++++++++++ odoo/versions/18/ingress.yaml | 26 ++++++++ odoo/versions/18/kustomization.yaml | 17 +++++ odoo/versions/18/manifest.yaml | 19 ++++++ odoo/versions/18/namespace.yaml | 4 ++ odoo/versions/18/pvc.yaml | 11 ++++ odoo/versions/18/schema-init-job.yaml | 54 +++++++++++++++ odoo/versions/18/service.yaml | 13 ++++ 11 files changed, 345 insertions(+) create mode 100644 odoo/app.yaml create mode 100644 odoo/versions/18/README.md create mode 100644 odoo/versions/18/db-init-job.yaml create mode 100644 odoo/versions/18/deployment.yaml create mode 100644 odoo/versions/18/ingress.yaml create mode 100644 odoo/versions/18/kustomization.yaml create mode 100644 odoo/versions/18/manifest.yaml create mode 100644 odoo/versions/18/namespace.yaml create mode 100644 odoo/versions/18/pvc.yaml create mode 100644 odoo/versions/18/schema-init-job.yaml create mode 100644 odoo/versions/18/service.yaml diff --git a/odoo/app.yaml b/odoo/app.yaml new file mode 100644 index 0000000..deaff92 --- /dev/null +++ b/odoo/app.yaml @@ -0,0 +1,6 @@ +name: odoo +is: odoo +description: Odoo is an open-source ERP and business suite offering CRM, accounting, inventory, project management, e-commerce, and more in a single platform. +icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/odoo.svg +category: business +latest: "18" diff --git a/odoo/versions/18/README.md b/odoo/versions/18/README.md new file mode 100644 index 0000000..80a852b --- /dev/null +++ b/odoo/versions/18/README.md @@ -0,0 +1,37 @@ +# Odoo + +Odoo is a comprehensive open-source ERP and CRM suite covering accounting, sales, inventory, HR, project management, and more. + +## Dependencies + +- **PostgreSQL** - Database for storing all business data + +## Configuration + +Key settings in `config.yaml`: + +- **domain** - Where Odoo will be accessible +- **storage** - Persistent volume size (default: `2Gi`) +- **db.name** - Database name (default: `odoo`) + +## First-Time Setup + +1. Add and deploy the app: + ```bash + wild app add odoo + wild app deploy odoo + ``` + +2. **First start takes 10–15 minutes** as Odoo installs the base module and runs all database migrations. The startup probe allows up to 20 minutes before failing. + +3. Once ready, log in with: + - **Email**: `admin` + - **Password**: value of `adminPassword` in your `secrets.yaml` + +4. The Odoo home menu will appear — install additional modules (Sales, Accounting, Inventory, etc.) from **Apps**. + +## Notes + +- The `adminPassword` in `secrets.yaml` is the **master password** for the Odoo database manager — this is separate from the `admin` user password, which is set during first boot using the same value +- Odoo is started with `-d -i base` to explicitly name the database and install the base module — this is required for the health check to pass +- Each restart re-runs the base module check (idempotent) which adds a few seconds to startup time diff --git a/odoo/versions/18/db-init-job.yaml b/odoo/versions/18/db-init-job.yaml new file mode 100644 index 0000000..bdcc986 --- /dev/null +++ b/odoo/versions/18/db-init-job.yaml @@ -0,0 +1,63 @@ +apiVersion: batch/v1 +kind: Job +metadata: + name: odoo-db-init + labels: + component: db-init +spec: + template: + metadata: + labels: + component: db-init + spec: + restartPolicy: OnFailure + securityContext: + runAsNonRoot: true + runAsUser: 999 + runAsGroup: 999 + seccompProfile: + type: RuntimeDefault + containers: + - name: db-init + image: postgres:17 + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: false + command: ["/bin/bash", "-c"] + args: + - | + PGPASSWORD=${POSTGRES_ADMIN_PASSWORD} psql -h ${DB_HOSTNAME} -U postgres <