Add support for creating internal networks
Signed-off-by: Jonathan Giannuzzi <jonathan@giannuzzi.be>
This commit is contained in:
parent
c3fd6a8f4d
commit
83f35e132b
7 changed files with 77 additions and 3 deletions
|
|
@ -576,6 +576,24 @@ class CLITestCase(DockerClientTestCase):
|
|||
assert 'forward_facing' in front_aliases
|
||||
assert 'ahead' in front_aliases
|
||||
|
||||
@v2_only()
|
||||
def test_up_with_network_internal(self):
|
||||
self.require_api_version('1.23')
|
||||
filename = 'network-internal.yml'
|
||||
self.base_dir = 'tests/fixtures/networks'
|
||||
self.dispatch(['-f', filename, 'up', '-d'], None)
|
||||
internal_net = '{}_internal'.format(self.project.name)
|
||||
|
||||
networks = [
|
||||
n for n in self.client.networks()
|
||||
if n['Name'].startswith('{}_'.format(self.project.name))
|
||||
]
|
||||
|
||||
# One network was created: internal
|
||||
assert sorted(n['Name'] for n in networks) == [internal_net]
|
||||
|
||||
assert networks[0]['Internal'] is True
|
||||
|
||||
@v2_only()
|
||||
def test_up_with_network_static_addresses(self):
|
||||
filename = 'network-static-addresses.yml'
|
||||
|
|
|
|||
13
tests/fixtures/networks/network-internal.yml
vendored
Executable file
13
tests/fixtures/networks/network-internal.yml
vendored
Executable file
|
|
@ -0,0 +1,13 @@
|
|||
version: "2"
|
||||
|
||||
services:
|
||||
web:
|
||||
image: busybox
|
||||
command: top
|
||||
networks:
|
||||
- internal
|
||||
|
||||
networks:
|
||||
internal:
|
||||
driver: bridge
|
||||
internal: True
|
||||
|
|
@ -756,6 +756,33 @@ class ProjectTest(DockerClientTestCase):
|
|||
with self.assertRaises(ProjectError):
|
||||
project.up()
|
||||
|
||||
@v2_only()
|
||||
def test_project_up_with_network_internal(self):
|
||||
self.require_api_version('1.23')
|
||||
config_data = config.Config(
|
||||
version=V2_0,
|
||||
services=[{
|
||||
'name': 'web',
|
||||
'image': 'busybox:latest',
|
||||
'networks': {'internal': None},
|
||||
}],
|
||||
volumes={},
|
||||
networks={
|
||||
'internal': {'driver': 'bridge', 'internal': True},
|
||||
},
|
||||
)
|
||||
|
||||
project = Project.from_config(
|
||||
client=self.client,
|
||||
name='composetest',
|
||||
config_data=config_data,
|
||||
)
|
||||
project.up()
|
||||
|
||||
network = self.client.networks(names=['composetest_internal'])[0]
|
||||
|
||||
assert network['Internal'] is True
|
||||
|
||||
@v2_only()
|
||||
def test_project_up_volumes(self):
|
||||
vol_name = '{0:x}'.format(random.getrandbits(32))
|
||||
|
|
|
|||
|
|
@ -101,6 +101,10 @@ class ConfigTest(unittest.TestCase):
|
|||
{'subnet': '172.28.0.0/16'}
|
||||
]
|
||||
}
|
||||
},
|
||||
'internal': {
|
||||
'driver': 'bridge',
|
||||
'internal': True
|
||||
}
|
||||
}
|
||||
}, 'working_dir', 'filename.yml')
|
||||
|
|
@ -140,6 +144,10 @@ class ConfigTest(unittest.TestCase):
|
|||
{'subnet': '172.28.0.0/16'}
|
||||
]
|
||||
}
|
||||
},
|
||||
'internal': {
|
||||
'driver': 'bridge',
|
||||
'internal': True
|
||||
}
|
||||
})
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue