Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
108 commits
Select commit Hold shift + click to select a range
204b8ca
Add container start/stop flexibility
Dec 31, 2016
fdcc6dc
Do not always upgrade pip
SndR85 Jan 28, 2017
963bea6
fix for docker-service not found in docker.containers
Mar 31, 2017
e028c51
Disable upstream repo if pillar docker:use_upstream_repo is False
msciciel Apr 2, 2017
57a731b
Merge pull request #112 from rocket-labs-sysadmins/docker_import
javierbertoli Apr 5, 2017
c2e00ee
Pull on restart systemd
alexproca Jun 26, 2017
1a425c2
Pull on restart upstart
alexproca Jun 26, 2017
5bdbea4
Add example
alexproca Jun 26, 2017
adad822
add fedora support
Jul 6, 2017
a04e74f
Merge pull request #116 from ghovat/patch-2
aboe76 Aug 3, 2017
c7510a0
Get init system via grains instead of command.
vladvasiliu Sep 13, 2017
8fb6ade
Update documentation for docker-compose (#98)
ghostsquad Sep 13, 2017
d42aa3d
[tests] fix suite for new Travis Trusty build (#123)
blbradley Sep 13, 2017
1ae367e
Merge remote-tracking branch 'upstream/master'
vladvasiliu Sep 13, 2017
2758546
Get init system via grains instead of command (#122)
vladvasiliu Sep 14, 2017
b536b2f
Merge commit '2758546416d53313f4fbd2ad3b497247383456c9'
vladvasiliu Sep 14, 2017
f40f3b2
Print cmd as string (without []) in systemd and upstart service defin…
vladvasiliu Sep 14, 2017
a1bdb6c
Added support for command arguments and refactored pillar variable ha…
vladvasiliu Sep 15, 2017
a9e6396
Change WantedBy target to multi-user
xenophonf Oct 22, 2017
f9ae050
Merge pull request #127 from irtnog/change-systemd-target
aboe76 Nov 2, 2017
cfce6e6
Merge remote-tracking branch 'upstream/master'
vladvasiliu Nov 9, 2017
ecf1324
Merge pull request #1 from vladvasiliu/master
ernstae Nov 25, 2017
2a1a644
Adding a couple lines of documentation in the README.rst to support t…
Nov 25, 2017
ffd95ee
Merge pull request #1 from ernstae/master
vladvasiliu Nov 25, 2017
7a89085
Do not duplicate messages to systemd-journald service
stamak Dec 26, 2017
3ee134f
Merge pull request #130 from stamak/duplicate_messages
javierbertoli Feb 15, 2018
90a4a75
Fix docker.compose.version pillar. Breaks compose-ng
noelmcloughlin Feb 21, 2018
4a2d317
Merge pull request #134 from noelmcloughlin/fixcompose1
aboe76 Feb 21, 2018
6d67f90
Merge pull request #114 from alexproca/pull-on-restart
aboe76 Feb 21, 2018
b7421b7
Merge pull request #113 from msciciel/option-use-upstream-repo
aboe76 Feb 21, 2018
6539a81
Disable upstream repo if pillar docker:use_upstream_repo is False
msciciel Apr 2, 2017
8e6e747
Pull on restart systemd
alexproca Jun 26, 2017
343e67f
Pull on restart upstart
alexproca Jun 26, 2017
a63ed26
Add example
alexproca Jun 26, 2017
1dfcb76
Do not duplicate messages to systemd-journald service
stamak Dec 26, 2017
79497bf
Fix docker.compose.version pillar. Breaks compose-ng
noelmcloughlin Feb 21, 2018
2209e2a
Print cmd as string (without []) in systemd and upstart service defin…
vladvasiliu Sep 14, 2017
7a083d0
Added support for command arguments and refactored pillar variable ha…
vladvasiliu Sep 15, 2017
8a4c3cc
Merge branch 'master' into master
vladvasiliu Feb 22, 2018
971204a
Fixed wront merge resolution for 8a4c3cc.
vladvasiliu Feb 22, 2018
da4b3e0
Merge branch 'master' into not-upgrade-pip
noelmcloughlin Feb 23, 2018
6072a0c
Support new salt docker module api
noelmcloughlin Feb 22, 2018
9850c82
Fix docker-compose check. incude compose sls
noelmcloughlin Feb 23, 2018
4f533e2
Merge pull request #101 from scornelissen85/not-upgrade-pip
aboe76 Feb 24, 2018
f006686
Make depreciated pillars obvious for newcomers
noelmcloughlin Feb 22, 2018
2240092
Merge pull request #138 from noelmcloughlin/fixcompose2
noelmcloughlin Feb 25, 2018
dcc92a4
Merge branch 'master' into dockermodApiChange
noelmcloughlin Feb 25, 2018
c9e9f73
Suse support, docker package
noelmcloughlin Feb 25, 2018
d03f613
Merge branch 'master' into add-container-mgmt-flexibility
noelmcloughlin Feb 25, 2018
b865700
Resolve conflicts to see if Travis-CI works
noelmcloughlin Feb 26, 2018
8406e63
Update upstart.conf
noelmcloughlin Feb 26, 2018
820452f
Resolve conflict to see if Travis-CI works
noelmcloughlin Feb 26, 2018
b0721dd
Resolve conflicts to see if Travis-CI works
noelmcloughlin Feb 26, 2018
4947cc3
systemd: service file should not be executable
alxwr Mar 7, 2018
1b04b11
Merge pull request #140 from saltstack-formulas/nonexec-service-config
noelmcloughlin Mar 7, 2018
8b57196
fix iteritems
Mar 10, 2018
8c329c1
Merge pull request #141 from aboe76/python3_support
javierbertoli Mar 10, 2018
132b5c1
No iptables, ca-certificates on MacOS
noelmcloughlin Mar 16, 2018
621b3d2
Merge pull request #142 from noelmcloughlin/macos1
aboe76 Mar 22, 2018
92a2dab
Merge pull request #139 from noelmcloughlin/suse
aboe76 Mar 22, 2018
39a4f8e
Merge pull request #137 from noelmcloughlin/dockermodApiChange
aboe76 Mar 22, 2018
9558056
Merge pull request #135 from noelmcloughlin/pillarexample
aboe76 Mar 22, 2018
d43d4c4
Merge branch 'master' into master
noelmcloughlin Apr 27, 2018
e93efc1
Merge pull request #125 from vladvasiliu/master
aboe76 Apr 28, 2018
84dac73
Merge branch 'master' into add-container-mgmt-flexibility
noelmcloughlin Apr 30, 2018
8219667
Merge pull request #100 from ghostsquad/add-container-mgmt-flexibility
noelmcloughlin Apr 30, 2018
0c1a4f8
fix wrong merge
Jun 2, 2018
5e8b989
Merge pull request #145 from toanju/master
noelmcloughlin Jun 11, 2018
1689ae9
Add osmap for configurable python-pip pkgname
Jun 11, 2018
09534e3
Trusty needs storage drivers; update kitchen tests
Jun 11, 2018
079f8e8
Use python-pip (not two conflicting pip); update kitchen tests
Jun 11, 2018
295bc22
Merge pull request #148 from noelmcloughlin/osfamily
javierbertoli Jun 27, 2018
41840c0
Merge pull request #149 from noelmcloughlin/drivers
javierbertoli Jun 27, 2018
b45dc4e
Merge branch 'master' into compose
noelmcloughlin Jun 27, 2018
5e74fa3
Merge pull request #147 from noelmcloughlin/compose
javierbertoli Jun 27, 2018
db7e673
Fix unreachable code, jessie, & update kitchen test
Jun 11, 2018
347444a
Merge branch 'master' into unreachable_code
noelmcloughlin Jun 28, 2018
e8c47cf
Merge pull request #146 from noelmcloughlin/unreachable_code
javierbertoli Jun 28, 2018
fa11326
configDir requires docker pkg. fix #126
noelmcloughlin Jun 28, 2018
d83c959
Use pkg.installed not latest; Add allow_updates & version params
noelmcloughlin Jun 29, 2018
b95c769
Merge pull request #152 from noelmcloughlin/fix126
javierbertoli Jun 29, 2018
3d92122
Merge pull request #153 from noelmcloughlin/fix111
aboe76 Jun 29, 2018
9e34ec5
remove duplicate code in init.sls
noelmcloughlin Jun 29, 2018
2c73847
Merge pull request #155 from noelmcloughlin/cleanup_docker-package
aboe76 Jun 29, 2018
1925c48
fix syntax error
noelmcloughlin Jun 29, 2018
a3d13d6
Merge pull request #156 from noelmcloughlin/syntaxerror
aboe76 Jun 29, 2018
172c17f
Fixed undefined use_old_repo variable error
Jul 2, 2018
7fe5265
Merge pull request #157 from comozo/fixed-undefined-use-old-repo-vari…
aboe76 Jul 2, 2018
f3bafb3
add pip packagename for freebsd os
noelmcloughlin Jul 11, 2018
58dacb5
Merge pull request #158 from noelmcloughlin/freebsd
aboe76 Jul 11, 2018
3652849
Add new state to manage repo, update defaults
javierbertoli Jul 21, 2018
a905257
kernel.sls is only valid for Debian family
javierbertoli Jul 21, 2018
65023b6
Centos docker-in-docker is not supported for testing
javierbertoli Jul 21, 2018
0827056
Merge pull request #151 from netmanagers/master
aboe76 Jul 23, 2018
92ff9e4
Remove unmaintained changelog file
noelmcloughlin Jul 25, 2018
d9b7bb3
Merge pull request #159 from noelmcloughlin/changelog
javierbertoli Jul 25, 2018
19a1f3a
Fix hard coded pip pkg name
Aug 10, 2018
4d21355
Merge pull request #163 from Poil/fix_pip_pkg_name
javierbertoli Aug 10, 2018
5482608
Support proxy
Aug 10, 2018
14b96c8
Merge pull request #164 from Poil/support_proxy
javierbertoli Aug 10, 2018
49dca2f
Fix require_in and include docker state
noelmcloughlin Aug 19, 2018
ab1edc3
Merge pull request #165 from noelmcloughlin/update
javierbertoli Aug 20, 2018
d646e73
Add general docker.remove state
noelmcloughlin Sep 11, 2018
e6c2d4d
Corrected pip-pkg variable name
noelmcloughlin Sep 12, 2018
5bb129b
Update kitchen suites for docker-ce 18.*
noelmcloughlin Sep 12, 2018
27d611e
Merge pull request #166 from noelmcloughlin/removeit
aboe76 Sep 13, 2018
dfc1db2
Merge pull request #167 from noelmcloughlin/undefinedVar
javierbertoli Sep 13, 2018
48e36f7
RD-873 merge upstream changes
RyanShelf Oct 15, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 48 additions & 9 deletions .kitchen.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,32 +6,71 @@ driver:

provisioner:
name: salt_solo
log_level: debug
log_level: warning
require_chef: false
formula: docker
state_top:
base:
'*':
- docker.remove
- docker
pillars:
top.sls:
base:
'*':
- docker

platforms:
- name: ubuntu-14.04
- name: ubuntu-18.04
driver_config:
provision_command:
- apt-get update && apt-get install -y locales ifupdown
- locale-gen en_US.UTF-8
- update-locale LANG=en_US.UTF-8
- mkdir -p /run/sshd
run_command: /lib/systemd/systemd
- name: debian-stretch
driver_config:
provision_command:
- apt-get update && apt-get install -y locales ifupdown
- locale-gen en_US.UTF-8
run_command: /lib/systemd/systemd
- name: debian-jessie
driver_config:
run_command: /sbin/init
provision_command:
- apt-get update && apt-get install -y locales ifupdown
- locale-gen en_US.UTF-8
run_command: /lib/systemd/systemd
# - name: centos-7
# driver_config:
# run_command: /lib/systemd/systemd

suites:
- name: default
- name: version-1.12.2
provisioner:
pillars:
top.sls:
base:
'*':
- docker
docker.sls:
docker:
version: '1.12.2*'
use_upstream_repo: true
- name: version-1.13.1
provisioner:
pillars:
docker.sls:
docker:
version: '1.13.1*'
use_old_repo: true
excludes:
- ubuntu-18.04
- name: version-18
provisioner:
pillars:
docker.sls:
docker:
version: '18.*'
use_old_repo: true
excludes:
- debian-stretch
- debian-jessie

verifier:
name: shell
Expand Down
16 changes: 13 additions & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,22 @@
sudo: required


language: ruby
language: python

services:
- docker

before_install:
- pip install -r requirements.txt
- bundle install

script: bundle exec kitchen verify

env:
matrix:
- INSTANCE: default-ubuntu-1804
- INSTANCE: default-debian-jessie
- INSTANCE: default-debian-stretch
- INSTANCE: version-1131-debian-jessie
- INSTANCE: version-1131-debian-stretch

script:
- bundle exec kitchen verify ${INSTANCE}
10 changes: 0 additions & 10 deletions CHANGELOG.rst

This file was deleted.

23 changes: 20 additions & 3 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,9 @@ To use it, just include *docker.containers* in your *top.sls*, and configure it
- "--rm"
myapp:
image: "myregistry.com:5000/training/app:3.0"
args:
- "https://someargument_as_an_url"
- "--port 5500"
cmd: python app.py
runoptions:
- "--log-driver=syslog"
Expand All @@ -67,13 +70,18 @@ In the example pillar above:
- Upstart files are created for each container, so ``service <container_name> stop|start|status`` should just work
- ``service <container_name> stop`` will wipeout the container completely (ie ``docker stop <container_name> + docker rm <container_name>``)

``docker.repo``
---------------

Configures the upstream docker's repo (true, by default).


``docker.compose``
------------------

Add support for using `Docker Compose <https://docs.docker.com/compose/>`_
Installs `Docker Compose <https://docs.docker.com/compose/>`_
(previously ``fig``) to define groups of containers and their relationships
with one another.
with one another. Use `docker.compose-ng` to run `docker-compose`.

``docker.compose-ng``
---------------------
Expand Down Expand Up @@ -178,6 +186,16 @@ In this case, extra *docker run* options can be provided in your *"registry:look

By default, the storage backend used by the registry is "filesystem". Use environment variables to override that, for example to use S3 as backend storage.

``docker.remove``
----------------

Stop Docker daemon. Remove older docker packages (usually called 'docker' and 'docker-engine').

Development
===========

Note that some of the internal states such as `docker.running` are references to the internal `dockerio states <https://docs.saltstack.com/en/latest/ref/states/all/salt.states.dockerio.html>`


Testing
=======
Expand All @@ -198,4 +216,3 @@ Requirements
gem install bundler
bundle install
kitchen test

14 changes: 10 additions & 4 deletions docker/codenamemap.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,15 @@ jessie:
humanname: Jessie Backports
dist: jessie-backports

trusty:
kernel:
pkgs:
- linux-image-extra-virtual
- linux-image-extra-{{ grains.kernelrelease }}

precise:
kernel:
pkg:
pkgs:
- linux-image-generic-lts-raring
- linux-headers-generic-lts-raring
pkgs:
- linux-image-generic-lts-raring
- linux-headers-generic-lts-raring

33 changes: 29 additions & 4 deletions docker/compose-ng.sls
Original file line number Diff line number Diff line change
@@ -1,9 +1,20 @@
{%- from "docker/map.jinja" import docker with context %}
{%- from "docker/map.jinja" import compose with context %}

include:
- docker.compose

{%- for name, container in compose.items() %}
{%- set id = container.container_name|d(name) %}
{%- set required_containers = [] %}
{%- if grains['saltversioninfo'] >= [2017, 7, 0] %}
{{id}}:
docker_image.present:
- force: {{ docker.containers.force_present }}
{%- else %}
{{id}} image:
docker.pulled:
{%- endif %}
{%- if ':' in container.image %}
{%- set image = container.image.split(':',1) %}
- name: {{image[0]}}
Expand All @@ -13,19 +24,25 @@
{%- endif %}

{{id}} container:
{%- if 'dvc' in container and container.dvc %}
{%- if grains['saltversioninfo'] >= [2017, 7, 0] %}
docker_container.running:
- skip_translate: {{ docker.containers.skip_translate }}
- force: {{ docker.containers.force_running }}
{%- else %}
{%- if 'dvc' in container and container.dvc %}
docker.installed:
{%- else %}
{%- else %}
docker.running:
{%- endif %}
{%- endif %}
{%- endif %}
- name: {{id}}
- image: {{container.image}}
{%- if 'command' in container %}
- command: {{container.command}}
{%- endif %}
{%- if 'environment' in container and container.environment is iterable %}
- environment:
{%- for variable, value in container.environment.iteritems() %}
{%- for variable, value in container.environment.items() %}
- {{variable}}: {{value}}
{%- endfor %}
{%- endif %}
Expand Down Expand Up @@ -76,10 +93,18 @@
{%- endif %}
{%- endif %}
- require:
{%- if grains['saltversioninfo'] >= [2017, 7, 0] %}
- docker_image: {{id}}
{%- else %}
- docker: {{id}} image
{%- endif %}
{%- if required_containers is defined %}
{%- for containerid in required_containers %}
{%- if grains['saltversioninfo'] >= [2017, 7, 0] %}
- docker_image: {{containerid}}
{%- else %}
- docker: {{containerid}}
{%- endif %}
{%- endfor %}
{%- endif %}
{% endfor %}
23 changes: 14 additions & 9 deletions docker/compose.sls
Original file line number Diff line number Diff line change
@@ -1,16 +1,21 @@
{% from "docker/map.jinja" import compose with context %}
{% from "docker/map.jinja" import docker with context %}

compose-pip:
include:
- docker

docker-compose-pip:
pkg.installed:
- name: python-pip
pip.installed:
- name: pip
- upgrade: True
- name: {{ docker.pip.pkgname }}
- require_in:
- pip: docker-compose

compose:
docker-compose:
pip.installed:
{%- if "version" in compose %}
- name: docker-compose == {{ compose.version }}
{%- if docker.compose_version %}
- name: docker-compose == {{ docker.compose_version }}
{%- else %}
- name: docker-compose
{%- endif %}
{%- if docker.proxy %}
- proxy: {{ docker.proxy }}
{%- endif %}
6 changes: 3 additions & 3 deletions docker/containers.sls
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ docker-image-{{ name }}-retry:
- cmd: docker-image-{{ name }}

{# TODO: SysV init script #}
{%- set init_system = salt["cmd.run"]("bash -c 'ps -p1 | grep -q systemd && echo systemd || echo upstart'") %}
{# Use grains instead of command to get init system #}
{%- set init_system = grains['init'] %}

docker-container-startup-config-{{ name }}:
file.managed:
Expand All @@ -34,11 +35,10 @@ docker-container-startup-config-{{ name }}:
- source: salt://docker/files/systemd_processor.conf
{%- elif init_system == "systemd" %}
- name: /etc/systemd/system/docker-{{ name }}.service
- source: salt://docker/files/systemd.conf
{%- elif init_system == "upstart" %}
- name: /etc/init/docker-{{ name }}.conf
- source: salt://docker/files/upstart.conf
{%- endif %}
- source: salt://docker/files/service_file.jinja
- mode: 700
- user: root
- template: jinja
Expand Down
33 changes: 32 additions & 1 deletion docker/defaults.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,38 @@

docker:
process_signature: '/usr/bin/docker'
python_pip_package: 'python-pip'
install_docker_py: False
refresh_repo: True
configfile: /etc/default/docker
config: []

use_upstream_repo: True
use_old_repo: False
proxy: False

# Repo parameters are set in docker/osfamilymap.yaml

pkg:
name: docker-ce
old_name: docker-engine
# For backward compatibility, this will be overriden by
# docker:version, if defined
version: latest
allow_updates: False
hold: False

pip:
pkgname: python-pip
upgrade: False

compose_version:

containers:
skip_translate: None
force_present: False
force_running: False

kernel:
pkg:
fromrepo: ''
pkgs: []
19 changes: 19 additions & 0 deletions docker/files/service_file.jinja
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{#- Ugly, but covers the cases where variable evaluates to false, is empty, or non-existent #}
{%- set runoptions = container.get("runoptions") or [] %}
{%- set stopoptions = container.get("stopoptions") or [] %}
{%- set cmd = container.get("cmd") or "" %}
{%- set args = container.get("args") or [] %}

{%- set runoptions = runoptions|join(' ') %}
{%- set stopoptions = stopoptions|join(' ') %}
{%- set args = args|join(' ') %}

{%- set docker_start_command = "run %s --name=%s %s %s %s"|format(runoptions, name, container.image, cmd, args) %}
{%- set docker_stop_command = "stop %s %s"|format(stopoptions, name) %}
{%- set docker_poststop_command = "rm -f %s"|format(name) %}

{%- if grains['init'] == 'systemd' %}
{%- include 'docker/files/systemd.conf' %}
{%- elif grains['init'] == 'upstart' %}
{%- include 'docker/files/upstart.conf' %}
{%- endif %}
Loading