From 687e1bd0016d91943db939e909144669e18c8ab7 Mon Sep 17 00:00:00 2001
From: Slavi Pantaleev <slavi@devture.com>
Date: Sat, 20 Apr 2024 08:18:01 +0300
Subject: [PATCH] Add support easily passing additional Docker daemon options

Provoked by: https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3247#issuecomment-2067207227
---
 roles/mash/playbook_base/defaults/main.yml | 8 ++++++++
 templates/group_vars_mash_servers          | 8 +-------
 2 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/roles/mash/playbook_base/defaults/main.yml b/roles/mash/playbook_base/defaults/main.yml
index 380e934..ca7278a 100644
--- a/roles/mash/playbook_base/defaults/main.yml
+++ b/roles/mash/playbook_base/defaults/main.yml
@@ -65,6 +65,14 @@ mash_playbook_reverse_proxy_type: none
 # Also see `devture_docker_sdk_for_python_installation_enabled`.
 mash_playbook_docker_installation_enabled: false
 
+mash_playbook_docker_installation_daemon_options: "{{ mash_playbook_docker_installation_daemon_options_auto | combine(mash_playbook_docker_installation_daemon_options_custom, recursive=True) }}"
+
+mash_playbook_docker_installation_daemon_options_auto:
+  experimental: "{{ devture_systemd_docker_base_ipv6_enabled }}"
+  ip6tables: "{{ devture_systemd_docker_base_ipv6_enabled }}"
+
+mash_playbook_docker_installation_daemon_options_custom: {}
+
 # Controls whether to attach Traefik labels to services.
 # This is separate from `devture_traefik_enabled`, because you may wish to disable Traefik installation by the playbook,
 # yet still use Traefik installed in another way.
diff --git a/templates/group_vars_mash_servers b/templates/group_vars_mash_servers
index 838c91b..df836b6 100644
--- a/templates/group_vars_mash_servers
+++ b/templates/group_vars_mash_servers
@@ -1016,13 +1016,7 @@ devture_playbook_state_preserver_commit_hash_preservation_dst: "{{ mash_playbook
 #                                                                      #
 ########################################################################
 
-docker_daemon_options: |
-  {{
-    {
-      'experimental': devture_systemd_docker_base_ipv6_enabled,
-      'ip6tables': devture_systemd_docker_base_ipv6_enabled,
-    }
-  }}
+docker_daemon_options: "{{ mash_playbook_docker_installation_daemon_options }}"
 
 ########################################################################
 #                                                                      #