From 597faa3fd500abd76ba10161ad544e064968741d Mon Sep 17 00:00:00 2001 From: uumas Date: Mon, 15 Sep 2025 12:34:57 +0300 Subject: [PATCH] service: Set static ips for other containers too --- roles/service/tasks/additional.yaml | 2 ++ roles/service/tasks/database.yaml | 2 ++ roles/service/tasks/main.yaml | 2 ++ roles/service/tasks/oauth2_proxy.yaml | 1 + roles/service/tasks/redis.yaml | 2 ++ roles/service/tasks/socat.yaml | 1 + roles/service/vars/main/additional.yaml | 7 +++++++ roles/service/vars/main/general.yaml | 1 + 8 files changed, 18 insertions(+) diff --git a/roles/service/tasks/additional.yaml b/roles/service/tasks/additional.yaml index 62ab7ef..0f0c60e 100644 --- a/roles/service/tasks/additional.yaml +++ b/roles/service/tasks/additional.yaml @@ -11,6 +11,7 @@ container_mounts: "{{ _service_additional_container_mounts }}" container_publish_ports: "{{ _service_additional_container.publish_ports | default([]) }}" container_networks: "{{ _service_container_networks }}" + container_ip: "{{ _service_additional_container_ip }}" container_secrets: "{{ _service_additional_container.secrets | default(_service_container_secrets) }}" container_env: "{{ _service_additional_container.env | default(service_container_env) }}" container_requires: "{{ _service_container_requires }}" @@ -19,3 +20,4 @@ loop: "{{ _service_additional_containers }}" loop_control: loop_var: _service_additional_container + index_var: _service_additional_container_index diff --git a/roles/service/tasks/database.yaml b/roles/service/tasks/database.yaml index 9f256b2..5d790f5 100644 --- a/roles/service/tasks/database.yaml +++ b/roles/service/tasks/database.yaml @@ -10,6 +10,8 @@ source: "{{ _service_database_name }}" destination: /var/lib/postgresql/data container_networks: "{{ _service_database_networks }}" + container_ip: >- + {{ service_container_ip | ansible.utils.ipmath(1) if _service_static_ip else '' }} container_secrets: - name: "{{ _service_database_name }}" target: "{{ service_database_type }}" diff --git a/roles/service/tasks/main.yaml b/roles/service/tasks/main.yaml index 7700fbd..51873c1 100644 --- a/roles/service/tasks/main.yaml +++ b/roles/service/tasks/main.yaml @@ -47,6 +47,8 @@ vars: socat_service_name: "{{ service_name }}" socat_target_http_port: "{{ service_container_http_port }}" + socat_container_ip: >- + {{ service_container_ip | ansible.utils.ipmath(3) if _service_static_ip else '' }} - name: Reverse proxy for {{ service_name }} ansible.builtin.include_tasks: proxy.yaml diff --git a/roles/service/tasks/oauth2_proxy.yaml b/roles/service/tasks/oauth2_proxy.yaml index 6ba7a5d..1a1d42c 100644 --- a/roles/service/tasks/oauth2_proxy.yaml +++ b/roles/service/tasks/oauth2_proxy.yaml @@ -34,3 +34,4 @@ vars: socat_service_name: "{{ service_name }}-oauth2-proxy" socat_target_http_port: 4180 + socat_container_ip: "" diff --git a/roles/service/tasks/redis.yaml b/roles/service/tasks/redis.yaml index 582dd19..fb10dfd 100644 --- a/roles/service/tasks/redis.yaml +++ b/roles/service/tasks/redis.yaml @@ -7,4 +7,6 @@ container_image: docker.io/valkey/valkey:alpine container_networks: - "{{ service_name }}" + container_ip: >- + {{ service_container_ip | ansible.utils.ipmath(2) if _service_static_ip else '' }} container_auto_update: "{{ service_auto_update }}" diff --git a/roles/service/tasks/socat.yaml b/roles/service/tasks/socat.yaml index eea8e2d..acfa30e 100644 --- a/roles/service/tasks/socat.yaml +++ b/roles/service/tasks/socat.yaml @@ -18,6 +18,7 @@ container_user: nobody container_networks: - "{{ socat_service_name }}" + container_ip: "{{ socat_container_ip }}" container_requires: - "{{ socat_service_name }}-socat.socket" - "{{ socat_service_name }}.service" diff --git a/roles/service/vars/main/additional.yaml b/roles/service/vars/main/additional.yaml index bf4e54f..9b20fa1 100644 --- a/roles/service/vars/main/additional.yaml +++ b/roles/service/vars/main/additional.yaml @@ -11,6 +11,13 @@ _service_additional_containers: >- | map('combine') }} +_service_additional_container_ip: >- + {{ + service_container_ip | + ansible.utils.ipmath(20 + _service_additional_container_index) + if _service_static_ip else '' + }} + _service_additional_volume_mounts: "{{ _service_additional_container.mounts | selectattr('type', '==', 'volume') }}" _service_additional_template_mounts: "{{ _service_additional_container.mounts | selectattr('type', '==', 'template') }}" diff --git a/roles/service/vars/main/general.yaml b/roles/service/vars/main/general.yaml index 44a0904..b6c31c8 100644 --- a/roles/service/vars/main/general.yaml +++ b/roles/service/vars/main/general.yaml @@ -1,5 +1,6 @@ --- _service_container_networks: "{{ [service_name] + service_container_additional_networks }}" +_service_static_ip: "{{ service_container_ip | length > 0 }}" _service_container_requires: >- {{