_configuration.tpl 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. {{- define "odoo.configuration" -}}
  2. {{- $fullname := (include "ix.v1.common.lib.chart.names.fullname" $) -}}
  3. {{- $dbHost := (printf "%s-postgres" $fullname) -}}
  4. {{- $dbUser := "odoo" -}}
  5. {{- $dbName := "odoo" -}}
  6. {{- $dbPass := (randAlphaNum 32) -}}
  7. {{- with (lookup "v1" "Secret" .Release.Namespace (printf "%s-postgres-creds" $fullname)) -}}
  8. {{- $dbPass = ((index .data "POSTGRES_PASSWORD") | b64dec) -}}
  9. {{- end -}}
  10. {{/* Temporary set dynamic db details on values,
  11. so we can print them on the notes */}}
  12. {{- $_ := set .Values "odooDbPass" $dbPass -}}
  13. {{- $_ := set .Values "odooDbHost" $dbHost -}}
  14. {{- $dbURL := (printf "postgres://%s:%s@%s:5432/%s?sslmode=disable" $dbUser $dbPass $dbHost $dbName) }}
  15. secret:
  16. postgres-creds:
  17. enabled: true
  18. data:
  19. POSTGRES_USER: {{ $dbUser }}
  20. POSTGRES_DB: {{ $dbName }}
  21. POSTGRES_PASSWORD: {{ $dbPass }}
  22. POSTGRES_HOST: {{ $dbHost }}
  23. POSTGRES_URL: {{ $dbURL }}
  24. {{/* xmlrpc* keys are deprecated and http* keys are used in their place */}}
  25. {{- $reservedKeys := (list "data_dir" "addons_path" "http_enable" "http_interface"
  26. "http_port" "xmlrpc" "xmlrpc_port" "xmlrpc_interface"
  27. "db_port" "db_host" "db_name" "db_user" "db_sslmode"
  28. "db_password") -}}
  29. {{- $userKeys := list -}}
  30. odoo-config:
  31. enabled: true
  32. data:
  33. odoo.conf: |
  34. [options]
  35. ; Paths
  36. data_dir = /var/lib/odoo
  37. addons_path = /mnt/extra-addons
  38. ; Network Details
  39. http_enable = True
  40. http_port = {{ .Values.odooNetwork.webPort }}
  41. ; Database Details
  42. db_port = 5432
  43. db_host = {{ $dbHost }}
  44. db_name = {{ $dbName }}
  45. db_user = {{ $dbUser }}
  46. db_sslmode = disable
  47. db_password = {{ $dbPass }}
  48. {{- range $opt := .Values.odooConfig.additionalConf -}}
  49. {{- if (mustHas $opt.key $reservedKeys) -}}
  50. {{- fail (printf "Odoo - Key [%v] is not allowed to be modified") -}}
  51. {{- end -}}
  52. {{- $userKeys = mustAppend $userKeys $opt.key -}}
  53. {{- printf "%s = %s" $opt.key $opt.value | nindent 8 -}}
  54. {{- end -}}
  55. {{- if not (deepEqual $userKeys (uniq $userKeys)) -}}
  56. {{- fail (printf "Odoo - Additional configuration keys must be unique, but got [%v]" (join ", " $userKeys)) -}}
  57. {{- end -}}
  58. {{- end -}}