Merge "Add possibility to specify Compose file version"
diff --git a/README.rst b/README.rst
index ef6b711..1b2f875 100644
--- a/README.rst
+++ b/README.rst
@@ -33,6 +33,22 @@
max-size: 50m
+Configure proxy for docker host
+
+.. code-block:: yaml
+
+ docker:
+ host:
+ proxy:
+ enabled: true
+ http: http://user:pass@proxy:3128
+ https: http://user:pass@proxy:3128
+ no_proxy:
+ - localhost
+ - 127.0.0.1
+ - docker-registry
+
+
Docker Swarm
------------
diff --git a/docker/files/http-proxy.conf b/docker/files/http-proxy.conf
new file mode 100644
index 0000000..13d494d
--- /dev/null
+++ b/docker/files/http-proxy.conf
@@ -0,0 +1,5 @@
+{%- from "docker/map.jinja" import host with context -%}
+[Service]
+Environment="HTTP_PROXY={{ host.proxy.http }}"
+Environment="HTTPS_PROXY={{ host.proxy.https }}"
+Environment="NO_PROXY={{ host.proxy.no_proxy|join(',') }}"
diff --git a/docker/host.sls b/docker/host.sls
index 81d6344..dbd2cc0 100644
--- a/docker/host.sls
+++ b/docker/host.sls
@@ -38,6 +38,33 @@
- watch_in:
- service: docker_service
+{%- if host.get('proxy', {}).get('enabled') %}
+{%- if host.proxy.get('http') or host.proxy.get('https') or host.proxy.get('no_proxy') %}
+
+/etc/systemd/system/docker.service.d/http-proxy.conf:
+ file.managed:
+ - source: salt://docker/files/http-proxy.conf
+ - template: jinja
+ - makedirs: True
+ - require_in:
+ - service: docker_service
+
+{% else %}
+
+/etc/systemd/system/docker.service.d/http-proxy.conf:
+ file.absent
+
+{%- endif %}
+
+systemd_reload_due_proxy:
+ module.run:
+ - name: service.systemctl_reload
+ - onchanges:
+ - file: /etc/systemd/system/docker.service.d/http-proxy.conf
+
+{%- endif %}
+
+
docker_service:
service.running:
- name: {{ host.service }}
diff --git a/docker/meta/sphinx.yml b/docker/meta/sphinx.yml
index 15f4ce3..f4571d3 100644
--- a/docker/meta/sphinx.yml
+++ b/docker/meta/sphinx.yml
@@ -7,7 +7,7 @@
name: host
param:
version:
- value: "{{ salt['cmd.run']('docker --version') }}"
+ value: "{{ salt['cmd.shell']('docker --version', python_shell=True) }}"
{%- endif %}
{%- if pillar.docker.swarm is defined %}
{%- from "docker/map.jinja" import swarm with context %}
diff --git a/tests/pillar/host_single_proxy.sls b/tests/pillar/host_single_proxy.sls
new file mode 100644
index 0000000..516e970
--- /dev/null
+++ b/tests/pillar/host_single_proxy.sls
@@ -0,0 +1,18 @@
+docker:
+ host:
+ enabled: true
+ options:
+ bip: 192.168.0.1/24
+ log-driver: json-file
+ log-opts:
+ size: 50m
+ insecure-registry:
+ - srv01
+ - srv02
+ - srv03
+ proxy:
+ http: http://proxy:3128
+ https: http://[::1]:3128
+ no_proxy:
+ - local1
+ - local2