1
0
Fork 0
mirror of https://github.com/containers/ansible-podman-collections.git synced 2026-02-04 07:11:49 +00:00

Add slirp4netns idempotency for pods (#369)

Fix #367
This commit is contained in:
Sergey 2022-01-16 23:44:08 +02:00 committed by GitHub
parent 71117a3a86
commit 547abfea53
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 70 additions and 0 deletions

View file

@ -415,6 +415,13 @@ class PodmanPodDiff:
if before == ['podman']:
before = []
after = self.params['network']
# Special case for options for slirp4netns rootless networking from v2
if net_mode_before == 'slirp4netns' and 'createcommand' in self.info:
cr_com = self.info['createcommand']
if '--network' in cr_com:
cr_net = cr_com[cr_com.index('--network') + 1].lower()
if 'slirp4netns:' in cr_net:
before = [cr_net]
# Currently supported only 'host' and 'none' network modes idempotency
if after in ['bridge', 'host', 'slirp4netns']:
net_mode_after = after

View file

@ -683,6 +683,69 @@
- "'Restart=always' in system1.podman_systemd['poditto-pod2']"
- "'autogenerated by Podman' not in system1.podman_systemd['poditto-pod2']"
- name: Remove pod2
containers.podman.podman_pod:
name: pod2
state: absent
- name: Run pod2 with network slirp4netns
containers.podman.podman_pod:
name: pod2
state: started
network: slirp4netns:outbound_addr=10.10.10.46
- name: Run container1 in pod
containers.podman.podman_container:
name: container1
image: alpine
command: top
pod: pod2
state: started
- name: Run pod2 with network slirp4netns - again
containers.podman.podman_pod:
name: pod2
state: started
network: slirp4netns:outbound_addr=10.10.10.46
register: slip4net_pod
- name: Run container1 in pod slirp4netns
containers.podman.podman_container:
name: container1
image: alpine
command: top
pod: pod2
state: started
register: slip4net_cont
- name: Check that slirp4netns is idempotent
assert:
that:
- slip4net_pod is not changed
- slip4net_cont is not changed
- name: Run pod2 with different network slirp4netns
containers.podman.podman_pod:
name: pod2
state: started
network: slirp4netns:outbound_addr=10.10.10.47
register: slip4net_pod2
- name: Run container1 in different pod slirp4netns
containers.podman.podman_container:
name: container1
image: alpine
command: top
pod: pod2
state: started
register: slip4net_cont2
- name: Check that slirp4netns is idempotent and changed
assert:
that:
- slip4net_pod2 is changed
- slip4net_cont2 is changed
always:
- name: Delete all pods leftovers from tests