From 12f32f58246376881fe30a6c4c0da8ffbbc6f641 Mon Sep 17 00:00:00 2001 From: uumas Date: Sun, 14 Sep 2025 03:07:03 +0300 Subject: [PATCH] network: Support macvlan driver --- roles/network/defaults/main.yaml | 2 ++ roles/network/handlers/main.yaml | 7 +++++++ roles/network/meta/argument_specs.yaml | 8 ++++++++ roles/network/tasks/main.yaml | 10 ++++++++-- 4 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 roles/network/defaults/main.yaml create mode 100644 roles/network/handlers/main.yaml diff --git a/roles/network/defaults/main.yaml b/roles/network/defaults/main.yaml new file mode 100644 index 0000000..651deaa --- /dev/null +++ b/roles/network/defaults/main.yaml @@ -0,0 +1,2 @@ +--- +network_driver: bridge diff --git a/roles/network/handlers/main.yaml b/roles/network/handlers/main.yaml new file mode 100644 index 0000000..ced8482 --- /dev/null +++ b/roles/network/handlers/main.yaml @@ -0,0 +1,7 @@ +--- +- name: Restart network service {{ network_name }} + ansible.builtin.systemd_service: + name: "{{ network_name }}-network.service" + state: restarted + daemon_reload: true + ignore_errors: "{{ ansible_check_mode }}" diff --git a/roles/network/meta/argument_specs.yaml b/roles/network/meta/argument_specs.yaml index d828eb9..405c934 100644 --- a/roles/network/meta/argument_specs.yaml +++ b/roles/network/meta/argument_specs.yaml @@ -7,3 +7,11 @@ argument_specs: description: Name of the network. Must be unique within a host. type: str required: true + network_driver: + description: Driver to manage the network + type: str + required: false + default: bridge + choices: + - bridge + - macvlan diff --git a/roles/network/tasks/main.yaml b/roles/network/tasks/main.yaml index 1e1ce59..0358ae9 100644 --- a/roles/network/tasks/main.yaml +++ b/roles/network/tasks/main.yaml @@ -1,10 +1,16 @@ --- -- name: "Create container network service {{ network_name }}" +- name: Create container network service {{ network_name }} containers.podman.podman_network: name: "{{ network_name }}" state: quadlet quadlet_file_mode: "0644" - notify: Reload systemd daemon + driver: "{{ network_driver }}" + quadlet_options: >- + {{ + ['Options=parent=' ~ ansible_default_ipv4.interface] + if network_driver == 'macvlan' else [] + }} + notify: Restart network service {{ network_name }} - name: Add network to created networks variable ansible.builtin.set_fact: