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 insecrets.externalSecret.itemsin your vault collection with the value in the password field, and setsecrets.externalSecret.storeNameto your store.