mirror of
https://github.com/thib8956/nginx-proxy
synced 2025-02-24 01:38:15 +00:00
test: ipv6 docker networks
This commit is contained in:
parent
5aea820aaa
commit
dcc97b9cff
3
.github/workflows/test.yml
vendored
3
.github/workflows/test.yml
vendored
@ -36,6 +36,9 @@ jobs:
|
|||||||
pip install -r python-requirements.txt
|
pip install -r python-requirements.txt
|
||||||
working-directory: test/requirements
|
working-directory: test/requirements
|
||||||
|
|
||||||
|
- name: Pull nginx:alpine image
|
||||||
|
run: docker pull nginx:alpine
|
||||||
|
|
||||||
- name: Build Docker web server image
|
- name: Build Docker web server image
|
||||||
run: make build-webserver
|
run: make build-webserver
|
||||||
|
|
||||||
|
19
test/test_ipv6/test_ipv6_prefer_ipv4_network.py
Normal file
19
test/test_ipv6/test_ipv6_prefer_ipv4_network.py
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
import pytest
|
||||||
|
|
||||||
|
|
||||||
|
def test_forwards_to_ipv4_only_network(docker_compose, nginxproxy):
|
||||||
|
r = nginxproxy.get("http://ipv4only.nginx-proxy.tld/port")
|
||||||
|
assert r.status_code == 200
|
||||||
|
assert r.text == "answer from port 80\n"
|
||||||
|
|
||||||
|
|
||||||
|
def test_forwards_to_dualstack_network(docker_compose, nginxproxy):
|
||||||
|
r = nginxproxy.get("http://dualstack.nginx-proxy.tld")
|
||||||
|
assert r.status_code == 200
|
||||||
|
assert "Welcome to nginx!" in r.text
|
||||||
|
|
||||||
|
|
||||||
|
def test_dualstack_network_prefer_ipv4_config(docker_compose, nginxproxy):
|
||||||
|
conf = nginxproxy.get_conf().decode('ASCII')
|
||||||
|
assert "IPv6 address: fd00:cafe:face:feed::2 (ignored; reachable but IPv4 prefered)" in conf
|
||||||
|
assert "server 172.16.20.2:80;" in conf
|
45
test/test_ipv6/test_ipv6_prefer_ipv4_network.yml
Normal file
45
test/test_ipv6/test_ipv6_prefer_ipv4_network.yml
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
version: "2"
|
||||||
|
|
||||||
|
networks:
|
||||||
|
ipv4net:
|
||||||
|
ipam:
|
||||||
|
config:
|
||||||
|
- subnet: 172.16.10.0/24
|
||||||
|
dualstacknet:
|
||||||
|
enable_ipv6: true
|
||||||
|
ipam:
|
||||||
|
config:
|
||||||
|
- subnet: 172.16.20.0/24
|
||||||
|
- subnet: fd00:cafe:face:feed::/64
|
||||||
|
|
||||||
|
services:
|
||||||
|
ipv4only:
|
||||||
|
image: web
|
||||||
|
expose:
|
||||||
|
- "80"
|
||||||
|
environment:
|
||||||
|
WEB_PORTS: 80
|
||||||
|
VIRTUAL_HOST: ipv4only.nginx-proxy.tld
|
||||||
|
networks:
|
||||||
|
ipv4net:
|
||||||
|
ipv4_address: 172.16.10.2
|
||||||
|
|
||||||
|
dualstack:
|
||||||
|
image: nginx:alpine
|
||||||
|
environment:
|
||||||
|
VIRTUAL_HOST: dualstack.nginx-proxy.tld
|
||||||
|
networks:
|
||||||
|
dualstacknet:
|
||||||
|
ipv4_address: 172.16.20.2
|
||||||
|
ipv6_address: fd00:cafe:face:feed::2
|
||||||
|
|
||||||
|
sut:
|
||||||
|
image: nginxproxy/nginx-proxy:test
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/tmp/docker.sock:ro
|
||||||
|
networks:
|
||||||
|
ipv4net:
|
||||||
|
ipv4_address: 172.16.10.3
|
||||||
|
dualstacknet:
|
||||||
|
ipv4_address: 172.16.20.3
|
||||||
|
ipv6_address: fd00:cafe:face:feed::3
|
19
test/test_ipv6/test_ipv6_prefer_ipv6_network.py
Normal file
19
test/test_ipv6/test_ipv6_prefer_ipv6_network.py
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
import pytest
|
||||||
|
|
||||||
|
|
||||||
|
def test_forwards_to_ipv4_only_network(docker_compose, nginxproxy):
|
||||||
|
r = nginxproxy.get("http://ipv4only.nginx-proxy.tld/port")
|
||||||
|
assert r.status_code == 200
|
||||||
|
assert r.text == "answer from port 80\n"
|
||||||
|
|
||||||
|
|
||||||
|
def test_forwards_to_dualstack_network(docker_compose, nginxproxy):
|
||||||
|
r = nginxproxy.get("http://dualstack.nginx-proxy.tld")
|
||||||
|
assert r.status_code == 200
|
||||||
|
assert "Welcome to nginx!" in r.text
|
||||||
|
|
||||||
|
|
||||||
|
def test_dualstack_network_prefer_ipv6_config(docker_compose, nginxproxy):
|
||||||
|
conf = nginxproxy.get_conf().decode('ASCII')
|
||||||
|
assert "IPv4 address: 172.16.20.2 (ignored; reachable but IPv6 prefered)" in conf
|
||||||
|
assert "server [fd00:cafe:face:feed::2]:80;" in conf
|
47
test/test_ipv6/test_ipv6_prefer_ipv6_network.yml
Normal file
47
test/test_ipv6/test_ipv6_prefer_ipv6_network.yml
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
version: "2"
|
||||||
|
|
||||||
|
networks:
|
||||||
|
ipv4net:
|
||||||
|
ipam:
|
||||||
|
config:
|
||||||
|
- subnet: 172.16.10.0/24
|
||||||
|
dualstacknet:
|
||||||
|
enable_ipv6: true
|
||||||
|
ipam:
|
||||||
|
config:
|
||||||
|
- subnet: 172.16.20.0/24
|
||||||
|
- subnet: fd00:cafe:face:feed::/64
|
||||||
|
|
||||||
|
services:
|
||||||
|
ipv4only:
|
||||||
|
image: web
|
||||||
|
expose:
|
||||||
|
- "80"
|
||||||
|
environment:
|
||||||
|
WEB_PORTS: 80
|
||||||
|
VIRTUAL_HOST: ipv4only.nginx-proxy.tld
|
||||||
|
networks:
|
||||||
|
ipv4net:
|
||||||
|
ipv4_address: 172.16.10.2
|
||||||
|
|
||||||
|
dualstack:
|
||||||
|
image: nginx:alpine
|
||||||
|
environment:
|
||||||
|
VIRTUAL_HOST: dualstack.nginx-proxy.tld
|
||||||
|
networks:
|
||||||
|
dualstacknet:
|
||||||
|
ipv4_address: 172.16.20.2
|
||||||
|
ipv6_address: fd00:cafe:face:feed::2
|
||||||
|
|
||||||
|
sut:
|
||||||
|
image: nginxproxy/nginx-proxy:test
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/tmp/docker.sock:ro
|
||||||
|
environment:
|
||||||
|
PREFER_IPV6_NETWORK: "true"
|
||||||
|
networks:
|
||||||
|
ipv4net:
|
||||||
|
ipv4_address: 172.16.10.3
|
||||||
|
dualstacknet:
|
||||||
|
ipv4_address: 172.16.20.3
|
||||||
|
ipv6_address: fd00:cafe:face:feed::3
|
Loading…
x
Reference in New Issue
Block a user