mirror of
https://github.com/thib8956/nginx-proxy
synced 2025-07-01 14:25:46 +00:00
test: ipv6 docker networks
This commit is contained in:
35
test/test_ipv6/test_ipv6.py
Normal file
35
test/test_ipv6/test_ipv6.py
Normal file
@ -0,0 +1,35 @@
|
||||
import pytest
|
||||
|
||||
|
||||
def test_unknown_virtual_host_ipv4(docker_compose, nginxproxy):
|
||||
r = nginxproxy.get("http://nginx-proxy/port")
|
||||
assert r.status_code == 503
|
||||
|
||||
|
||||
def test_forwards_to_web1_ipv4(docker_compose, nginxproxy):
|
||||
r = nginxproxy.get("http://web1.nginx-proxy.tld/port")
|
||||
assert r.status_code == 200
|
||||
assert r.text == "answer from port 81\n"
|
||||
|
||||
|
||||
def test_forwards_to_web2_ipv4(docker_compose, nginxproxy):
|
||||
r = nginxproxy.get("http://web2.nginx-proxy.tld/port")
|
||||
assert r.status_code == 200
|
||||
assert r.text == "answer from port 82\n"
|
||||
|
||||
|
||||
def test_unknown_virtual_host_ipv6(docker_compose, nginxproxy):
|
||||
r = nginxproxy.get("http://nginx-proxy/port", ipv6=True)
|
||||
assert r.status_code == 503
|
||||
|
||||
|
||||
def test_forwards_to_web1_ipv6(docker_compose, nginxproxy):
|
||||
r = nginxproxy.get("http://web1.nginx-proxy.tld/port", ipv6=True)
|
||||
assert r.status_code == 200
|
||||
assert r.text == "answer from port 81\n"
|
||||
|
||||
|
||||
def test_forwards_to_web2_ipv6(docker_compose, nginxproxy):
|
||||
r = nginxproxy.get("http://web2.nginx-proxy.tld/port", ipv6=True)
|
||||
assert r.status_code == 200
|
||||
assert r.text == "answer from port 82\n"
|
38
test/test_ipv6/test_ipv6.yml
Normal file
38
test/test_ipv6/test_ipv6.yml
Normal file
@ -0,0 +1,38 @@
|
||||
version: "2"
|
||||
|
||||
networks:
|
||||
net1:
|
||||
enable_ipv6: true
|
||||
ipam:
|
||||
config:
|
||||
- subnet: fd00:1::/80
|
||||
|
||||
services:
|
||||
web1:
|
||||
image: web
|
||||
expose:
|
||||
- "81"
|
||||
environment:
|
||||
WEB_PORTS: 81
|
||||
VIRTUAL_HOST: web1.nginx-proxy.tld
|
||||
networks:
|
||||
- net1
|
||||
|
||||
web2:
|
||||
image: web
|
||||
expose:
|
||||
- "82"
|
||||
environment:
|
||||
WEB_PORTS: 82
|
||||
VIRTUAL_HOST: web2.nginx-proxy.tld
|
||||
networks:
|
||||
- net1
|
||||
|
||||
sut:
|
||||
image: nginxproxy/nginx-proxy:test
|
||||
volumes:
|
||||
- /var/run/docker.sock:/tmp/docker.sock:ro
|
||||
environment:
|
||||
ENABLE_IPV6: "true"
|
||||
networks:
|
||||
- net1
|
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
|
Reference in New Issue
Block a user