Add docker.client.network
This allow to create docker network.
Reclass:
docker:
client:
network:
monitoring:
driver: overlay
opt:
encrypted: true
Change-Id: Iad3e8fd6f2767caa22852066aa0060ba5044d16b
diff --git a/docker/client.sls b/docker/client.sls
index 6de632b..b7a87eb 100644
--- a/docker/client.sls
+++ b/docker/client.sls
@@ -2,6 +2,9 @@
{%- if client.enabled %}
include:
+ {%- if client.network is defined %}
+ - docker.client.network
+ {%- endif %}
- docker.client.container
{%- if client.compose is defined %}
- docker.client.compose
diff --git a/docker/client/network.sls b/docker/client/network.sls
new file mode 100644
index 0000000..6fb8d08
--- /dev/null
+++ b/docker/client/network.sls
@@ -0,0 +1,33 @@
+{% from "docker/map.jinja" import client with context %}
+
+include:
+ - docker.client
+
+{%- for name, network in client.get('network', {}).iteritems() %}
+{%- if network.get('enabled', True) %}
+
+docker_network_{{ name }}_create:
+ cmd.run:
+ - name: >
+ docker network create
+ {%- if network.get('attachable', False) %} --attachable {%- endif %}
+ {%- if network.get('internal', False) %} --internal {%- endif %}
+ {%- if network.get('ipv6', False) %} --ipv6 {%- endif %}
+ {%- if network.driver is defined %} --driver {{ network.driver }} {%- endif %}
+ {%- if network.gateway is defined %} --gateway {{ network.gateway }} {%- endif %}
+ {%- if network.iprange is defined %} --ip-range {{ network.iprange }} {%- endif %}
+ {%- if network.ipamdriver is defined %} --ipam-driver {{ network.ipamdriver }} {%- endif %}
+ {%- if network.subnet is defined %} --subnet {{ network.subnet }} {%- endif %}
+ {%- for param,value in network.get('opt', {}).iteritems() %} --opt {{ param }}={{ value }} {%- endfor %}
+ {{ name }}
+ - unless: "docker network ls | grep {{ name }}"
+
+{%- else %}
+
+docker_service_{{ name }}_rm:
+ cmd.run:
+ - name: docker network rm {{ name }}
+ - onlyif: "docker network ls | grep {{ name }}"
+
+{%- endif %}
+{%- endfor %}