Skip to content

Odoo

Odoo Community business applications with a PostgreSQL database and a filestore volume

Chart odoo
Version 0.1.3
Application version 19.0
Kind Application
Source charts/odoo

The values are listed under Values, the changes per version under Changelog.

Purpose

Odoo Community: business applications such as CRM, sales, invoicing, inventory and a website builder. The chart runs the official Odoo image with a PostgreSQL database from the CloudNativePG operator and one volume for the filestore. At the first start it creates one database, installs the modules in odoo.initModules and sets the password of the user admin. The database manager page is switched off (list_db = False).

The chart contains and pulls no Odoo Enterprise code. To run Enterprise, build your own image on the official one, copy the Enterprise addons you are licensed for into it, and set image.repository, image.tag, odoo.addonsPath (the directory of those addons) and odoo.initModules (for example base,web_enterprise). A private image also needs a pull Secret in the project, named in image.pullSecrets. Enter your subscription code in Odoo afterwards.

Install

helm repo add grncloud https://apps.openshift.eu
helm install odoo grncloud/odoo

Install one release per project. The first start takes a few minutes: the database server starts, then Odoo fills the database. Log in as admin with:

oc get route odoo -o jsonpath='https://{.spec.host}{"\n"}'
oc get secret odoo-credentials -o jsonpath='{.data.admin-password}' | base64 -d
Value Default Meaning
route.hostname empty Hostname. Empty: OpenShift assigns one.
image.repository docker.io/library/odoo Image. Set your own for Enterprise or own addons.
odoo.initModules base Modules installed when the database is created.
odoo.workers 0 Worker processes. Above 0 needs route.hostname.
odoo.extraConfig empty Extra key: value lines for odoo.conf.
persistence.size 10Gi Size of the filestore volume.
postgres.instances 1 Database instances. 2 or more survive a node failure.
postgres.storage.size 10Gi Size of each database volume.
secrets.type kubernetes externalSecret reads the passwords from a secret store.
secrets.adminPassword empty Password of admin at the first start. Empty: generated.
secrets.masterPassword empty Master password of Odoo. Empty: generated.

The admin password is applied once, when the database is created; change it in Odoo afterwards. Both passwords are generated at the first install and kept on every upgrade with helm upgrade. A tool that renders the chart without access to the cluster, such as Argo CD or helm template, generates new values on every render: set both there.

The database password is generated by CloudNativePG in the Secret odoo-postgres-app. helm uninstall removes the filestore volume and the database. Make a backup first.

Delivery instructions

  • A hostname outside the default application domain needs a DNS record pointing at the platform's ingress. Ask the platform team for the target; the certificate follows automatically once the name resolves.
  • Outgoing mail needs a mail server you configure in Odoo (Settings, Technical, Outgoing Mail Servers). Ask the platform team whether direct delivery from the cluster is open.
  • Database backups to object storage are set up by the platform for CloudNativePG clusters; ask the platform team to confirm the schedule and to test a restore.
  • With secrets.type=externalSecret, create the items named in secrets.externalSecret.items in your vault collection with the value in the password field, and set secrets.externalSecret.storeName to your store.