mirror of https://github.com/docker/docker-py.git
Add support for ingress in create_network
Signed-off-by: Joffrey F <joffrey@docker.com>
This commit is contained in:
parent
7af7e1b73a
commit
ff718f5dac
|
@ -41,7 +41,8 @@ class NetworkApiMixin(object):
|
|||
@minimum_version('1.21')
|
||||
def create_network(self, name, driver=None, options=None, ipam=None,
|
||||
check_duplicate=None, internal=False, labels=None,
|
||||
enable_ipv6=False, attachable=None, scope=None):
|
||||
enable_ipv6=False, attachable=None, scope=None,
|
||||
ingress=None):
|
||||
"""
|
||||
Create a network. Similar to the ``docker network create``.
|
||||
|
||||
|
@ -60,6 +61,8 @@ class NetworkApiMixin(object):
|
|||
attachable (bool): If enabled, and the network is in the global
|
||||
scope, non-service containers on worker nodes will be able to
|
||||
connect to the network.
|
||||
ingress (bool): If set, create an ingress network which provides
|
||||
the routing-mesh in swarm mode.
|
||||
|
||||
Returns:
|
||||
(dict): The created network reference object
|
||||
|
@ -129,6 +132,14 @@ class NetworkApiMixin(object):
|
|||
)
|
||||
data['Attachable'] = attachable
|
||||
|
||||
if ingress is not None:
|
||||
if version_lt(self._version, '1.29'):
|
||||
raise InvalidVersion(
|
||||
'ingress is not supported in API version < 1.29'
|
||||
)
|
||||
|
||||
data['Ingress'] = ingress
|
||||
|
||||
url = self._url("/networks/create")
|
||||
res = self._post_json(url, data=data)
|
||||
return self._result(res, json=True)
|
||||
|
|
|
@ -111,6 +111,8 @@ class NetworkCollection(Collection):
|
|||
labels (dict): Map of labels to set on the network. Default
|
||||
``None``.
|
||||
enable_ipv6 (bool): Enable IPv6 on the network. Default ``False``.
|
||||
ingress (bool): If set, create an ingress network which provides
|
||||
the routing-mesh in swarm mode.
|
||||
|
||||
Returns:
|
||||
(:py:class:`Network`): The network that was created.
|
||||
|
|
|
@ -452,6 +452,14 @@ class TestNetworks(BaseAPIIntegrationTest):
|
|||
net = self.client.inspect_network(net_id)
|
||||
assert net['Attachable'] is True
|
||||
|
||||
@requires_api_version('1.29')
|
||||
def test_create_network_ingress(self):
|
||||
assert self.client.init_swarm('eth0')
|
||||
self.client.remove_network('ingress')
|
||||
_, net_id = self.create_network(driver='overlay', ingress=True)
|
||||
net = self.client.inspect_network(net_id)
|
||||
assert net['Ingress'] is True
|
||||
|
||||
@requires_api_version('1.25')
|
||||
def test_prune_networks(self):
|
||||
net_name, _ = self.create_network()
|
||||
|
|
Loading…
Reference in New Issue