diff --git a/plugins/modules/podman_network.py b/plugins/modules/podman_network.py index 84e2339..830ffc4 100644 --- a/plugins/modules/podman_network.py +++ b/plugins/modules/podman_network.py @@ -306,6 +306,8 @@ class PodmanNetworkDiff: internal = not self.info['plugins'][0]['isgateway'] except (IndexError, KeyError): internal = False + # Whether network is rootless + rootless = os.geteuid() != 0 # Whether DNS plugin is installed dns_installed = False for f in [ @@ -320,10 +322,15 @@ class PodmanNetworkDiff: [k for k in self.info['plugins'] if 'domainname' in k]) if internal: before = True + if rootless: + before = False after = self.params['disable_dns'] # If dnsname plugin is not installed, default is disable_dns=True if not dns_installed and self.module.params['disable_dns'] is None: after = True + # Rootless networks will always have DNS enabled + if rootless and self.module.params['disable_dns'] is None: + after = False # Internal networks have dns disabled from v3 if self.params['internal']: after = True diff --git a/tests/integration/targets/podman_network/tasks/main.yml b/tests/integration/targets/podman_network/tasks/main.yml index 488ad2b..2cc3f64 100644 --- a/tests/integration/targets/podman_network/tasks/main.yml +++ b/tests/integration/targets/podman_network/tasks/main.yml @@ -222,3 +222,40 @@ - name: Cleanup command: podman network rm -f {{ network_name }} ignore_errors: true + +- name: Test podman_network rootless + become: false + block: + + - name: Create network + containers.podman.podman_network: + name: "{{ network_name }}" + register: net + + - name: Get existing network info + containers.podman.podman_network_info: + name: "{{ network_name }}" + register: info1 + + - name: Check info + assert: + that: + - info1 | length > 1 + - info1.networks.0.name == network_name + - net is changed + + - name: Create network again + containers.podman.podman_network: + name: "{{ network_name }}" + state: present + register: info2 + + - name: Check info + assert: + that: + - info2 is not changed + always: + + - name: Cleanup + command: podman network rm -f {{ network_name }} + ignore_errors: true