From 71ee3c4c62a6ab4e3d9fb43fd291cfc227329444 Mon Sep 17 00:00:00 2001 From: N Date: Sat, 17 Aug 2019 09:53:20 +0200 Subject: [PATCH] feat(linux): archlinux support (#229) --- docker/compose.sls | 2 +- docker/defaults.yaml | 1 - docker/install.sls | 23 +++++++++++++++++++---- docker/osfamilymap.yaml | 26 ++++++++++++++++++++++++-- 4 files changed, 44 insertions(+), 8 deletions(-) diff --git a/docker/compose.sls b/docker/compose.sls index c9bda46e..4f173c19 100644 --- a/docker/compose.sls +++ b/docker/compose.sls @@ -11,7 +11,7 @@ docker-compose: - name: /usr/bin/pip install docker-compose {%- else %} pip.installed: - {%- if docker.compose_version %} + {%- if 'compose_version' in docker and docker.compose_version %} - name: docker-compose == {{ docker.compose_version }} {%- else %} - name: docker-compose diff --git a/docker/defaults.yaml b/docker/defaults.yaml index ab3e1db9..09736788 100644 --- a/docker/defaults.yaml +++ b/docker/defaults.yaml @@ -18,7 +18,6 @@ docker: pkgs: - iptables - ca-certificates - - python3-docker pkg: name: docker-ce diff --git a/docker/install.sls b/docker/install.sls index e01a8bd1..6590a41b 100644 --- a/docker/install.sls +++ b/docker/install.sls @@ -37,13 +37,12 @@ docker-package: {%- if grains.os_family in ('Suse',) %} ##workaround https://github.com/saltstack-formulas/docker-formula/issues/198 cmd.run: - name: /usr/bin/pip install {{ '--upgrade' if docker.pip.upgrade else '' }} pip - {%- else %} + {%- elif docker.pip.install_pypi_pip %} ##onlyif you really need pypi pip instead of using official distro pip pip.installed: - name: pip - reload_modules: true - upgrade: {{ docker.pip.upgrade }} {%- endif %} - - onlyif: {{ docker.pip.install_pypi_pip }} #### onlyif you really need pypi pip instead of using official distro pip. - require: - pkg: docker-package-dependencies @@ -95,6 +94,22 @@ docker-service: - sig: {{ docker.process_signature }} {% endif %} +docker-install-docker-service-not-running-notify: + test.show_notification: + - text: | + In certain circumstances the docker service will not start. + Your kernel is missing some modules, or not in ideal state. + See https://github.com/moby/moby/blob/master/contrib/check-config.sh + Rebooting your host may fix docker service failure! + - onfail: + - service: docker-service + - unless: {{ grains.os_family in ('MacOS', 'Windows') }} #maybe not needed? + service.enabled: + - name: docker + - onfail: + - service: docker-service + - unless: {{ grains.os_family in ('MacOS', 'Windows') }} #maybe not needed? + {% if docker.install_docker_py %} docker-py: {%- if grains.os_family in ('Suse',) %} ##workaround https://github.com/saltstack-formulas/docker-formula/issues/198 @@ -102,9 +117,9 @@ docker-py: - name: /usr/bin/pip install {{ docker.python_package }} {%- else %} pip.installed: - {%- if "python_package" in docker %} + {%- if "python_package" in docker and docker.python_package %} - name: {{ docker.python_package }} - {%- elif "pip_version" in docker %} + {%- elif "pip_version" in docker and docker.pip_version %} - name: docker-py {{ docker.pip_version }} {%- else %} - name: docker-py diff --git a/docker/osfamilymap.yaml b/docker/osfamilymap.yaml index ca6f350d..53a4c95c 100644 --- a/docker/osfamilymap.yaml +++ b/docker/osfamilymap.yaml @@ -14,11 +14,28 @@ {% set macos_user = salt['cmd.run']("stat -f '%Su' /dev/console") %} {%- endif %} +Arch: + python_package: + pkgs: + - python-docker + - python-pip + - python2-pip ##see https://github.com/saltstack/salt/issues/48632 + pkg: + name: docker + # workaround https://github.com/saltstack-formulas/docker-formula/issues/219 + allow_updates: False + hold: False + use_upstream_app: False + pip: + install_pypi_pip: False + upgrade: False + Debian: pkgs: - apt-transport-https - python3-apt - python3-pip + - python3-docker repo: url_base: https://download.docker.com/linux/{{ grains['os'] |lower }} key_url: https://download.docker.com/linux/{{ grains['os'] |lower }}/gpg @@ -28,8 +45,9 @@ Debian: RedHat: pkgs: - python3-pip + - python3-docker repo: - url_base: https://download.docker.com/linux/{{ grains['os'] |lower }}/{{ grains['osmajorrelease'] }}/$basearch/stable/ + url_base: https://download.docker.com/linux/{{ grains['os'] |lower }}/{{ '' if not 'osmajorrelease' in grains else grains['osmajorrelease'] }}/$basearch/stable/ key_url: https://download.docker.com/linux/{{ grains['os'] |lower }}/gpg version: {{ grains['oscodename']|lower if 'oscodename' in grains else '' }} file: /etc/yum.repos.d/docker-ce.repo @@ -39,15 +57,19 @@ Suse: name: docker pkgs: - python3-pip + - python3-docker MacOS: rootuser: {{ macos_user | d('') }} + pkgs: + - python3-docker pkg: name: docker #homebrew + # workaround https://github.com/saltstack-formulas/docker-formula/issues/219 allow_updates: False hold: False use_upstream_app: True #docker desktop for mac app: name: Docker source: https://download.docker.com/mac/stable/Docker.dmg - source_hash: a55462f153284ff212f8857945a69d4e128afb6753f5572984877f7b6fc3fc25 \ No newline at end of file + source_hash: a55462f153284ff212f8857945a69d4e128afb6753f5572984877f7b6fc3fc25