From 7af3d4a22160ba4b54c82b850f0f168d73399a80 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20-=20Le=20Filament?= <theo@le-filament.com>
Date: Thu, 12 Dec 2024 17:42:52 +0100
Subject: [PATCH] feat: allow to specify container image to use

---
 defaults/main.yml       | 7 +++++++
 templates/Dockerfile.j2 | 8 ++++----
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/defaults/main.yml b/defaults/main.yml
index babc4a5..6b448f0 100644
--- a/defaults/main.yml
+++ b/defaults/main.yml
@@ -1,9 +1,11 @@
 ---
 ## Odoo configuration per version
+odoo_default_generic_image: "lefilament/odoo"
 odoo_setup_version: 16
 odoo_setup_conf:
   17:
     odoo_version: '17.0'
+    odoo_generic_image: "{{ odoo_default_generic_image }}"
     postgres_version: '16'
     modules_auto_install_disabled: google_gmail,l10_fr_invoice_addr,mail_bot,snailmail,sms,web_unsplash
     modules_auto_install_enabled: account_move_name_sequence,account_usability,mail_debrand,partner_firstname,web_no_bubble,web_responsive,web_theme_classic
@@ -12,6 +14,7 @@ odoo_setup_conf:
     websocket_uri_trailing: ''
   16:
     odoo_version: '16.0'
+    odoo_generic_image: "{{ odoo_default_generic_image }}"
     postgres_version: '15'
     modules_auto_install_disabled: google_gmail,l10_fr_invoice_addr,mail_bot,web_unsplash
     modules_auto_install_enabled: account_move_name_sequence,account_usability,disable_odoo_online,lefilament_release_agent,mail_debrand,partner_disable_gravatar,partner_firstname,password_security,portal_odoo_debranding,remove_login_links,remove_odoo_enterprise,web_no_bubble,web_responsive,web_theme_classic
@@ -20,11 +23,13 @@ odoo_setup_conf:
     websocket_uri_trailing: ''
   15:
     odoo_version: '15.0'
+    odoo_generic_image: "{{ odoo_default_generic_image }}"
     postgres_version: '13'
     websocket_uri: 'longpolling'
     websocket_uri_trailing: '/'
   14:
     odoo_version: '14.0'
+    odoo_generic_image: "{{ odoo_default_generic_image }}"
     postgres_version: '13'
     modules_auto_install_disabled: mail_bot,web_unsplash
     modules_auto_install_enabled: account_move_name_sequence,account_reconcile_show_boolean,account_reconciliation_widget,disable_odoo_online,lefilament_release_agent,mail_debrand,partner_disable_gravatar,partner_firstname,password_security,remove_login_links,remove_odoo_enterprise,web_responsive,web_no_bubble
@@ -33,6 +38,7 @@ odoo_setup_conf:
     websocket_uri_trailing: '/'
   12:
     odoo_version: '12.0'
+    odoo_generic_image: "{{ odoo_default_generic_image }}"
     postgres_version: '10'
     modules_auto_install_disabled: mail_bot,web_unsplash
     modules_auto_install_enabled: disable_odoo_online,lefilament_release_agent,mail_debrand,partner_disable_gravatar,partner_firstname,password_security,remove_odoo_enterprise,web_responsive,web_no_bubble
@@ -41,6 +47,7 @@ odoo_setup_conf:
     websocket_uri_trailing: '/'
   10:
     odoo_version: '10.0'
+    odoo_generic_image: "{{ odoo_default_generic_image }}"
     postgres_version: '9.6'
     websocket_uri: 'longpolling'
     websocket_uri_trailing: '/'
diff --git a/templates/Dockerfile.j2 b/templates/Dockerfile.j2
index a40c369..85a6294 100644
--- a/templates/Dockerfile.j2
+++ b/templates/Dockerfile.j2
@@ -1,9 +1,9 @@
 ## Image to get git repos
 {# TODO: make base image a variable #}
 {% if template_odoo_instance.value.from_image_digest is defined %}
-FROM lefilament/odoo@{{ template_odoo_instance.value.from_image_digest }}
+FROM {{ template_odoo_instance_setup.odoo_generic_image }}@{{ template_odoo_instance.value.from_image_digest }}
 {% else %}
-FROM lefilament/odoo:{{ template_odoo_instance_setup.odoo_version }}{% if template_odoo_instance.value.odoo_python36 | default(false) %}_py3.6{% endif %}{% if template_odoo_instance.value.odoo_multilingual | default(false) %}_ml{% endif %} as odoo_addons
+FROM {{ template_odoo_instance_setup.odoo_generic_image }}:{{ template_odoo_instance_setup.odoo_version }}{% if template_odoo_instance.value.odoo_python36 | default(false) %}_py3.6{% endif %}{% if template_odoo_instance.value.odoo_multilingual | default(false) %}_ml{% endif %} as odoo_addons
 {% endif %}
 LABEL stage=builder
 
@@ -47,9 +47,9 @@ RUN echo 'info: getting Odoo modules...' \
 ## Final image
 {# TODO: make base image a variable #}
 {% if template_odoo_instance.value.from_image_digest is defined %}
-FROM lefilament/odoo@{{ template_odoo_instance.value.from_image_digest }}
+FROM {{ template_odoo_instance_setup.odoo_generic_image }}@{{ template_odoo_instance.value.from_image_digest }}
 {% else %}
-FROM lefilament/odoo:{{ template_odoo_instance_setup.odoo_version }}{% if template_odoo_instance.value.odoo_python36 | default(false) %}_py3.6{% endif %}{% if template_odoo_instance.value.odoo_multilingual | default(false) %}_ml{% endif %} as final
+FROM {{ template_odoo_instance_setup.odoo_generic_image }}:{{ template_odoo_instance_setup.odoo_version }}{% if template_odoo_instance.value.odoo_python36 | default(false) %}_py3.6{% endif %}{% if template_odoo_instance.value.odoo_multilingual | default(false) %}_ml{% endif %} as final
 {% endif %}
 
 USER root
-- 
GitLab