Skip to content

Commit c070739

Browse files
Merge pull request #285 from danny-smit/fix-clean-with-use-upstream-repo
fix(clean): fix syntax error with use_upstream repo
2 parents 7d62dae + a7f382f commit c070739

File tree

8 files changed

+202
-14
lines changed

8 files changed

+202
-14
lines changed

docker/networks/clean.sls

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,4 @@ include:
2020
- name: {{ name }}
2121
2222
{%- endfor %}
23+
{%- endif %}

docker/osfamilymap.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ RedHat:
5959
docker:
6060
# environ_file: /etc/sysconfig/docker
6161
repo:
62+
name: docker-ce
6263
baseurl: 'https://download.docker.com/linux/{{ grains.os|lower }}/$releasever/$basearch/stable'
6364
file: '/etc/yum.repos.d/docker-ce.repo'
6465
gpgkey: 'https://download.docker.com/linux/{{ grains.os|lower }}/gpg'

docker/software/package/clean.sls

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,21 @@
66
{%- set formula = d.formula %}
77
88
{%- if d.pkg.docker.use_upstream in ('package', 'repo') %}
9-
{%- if grains.kernel|lower in ('linux',) %}
10-
{%- if d.pkg.docker.use_upstream == 'repo' %}
9+
{%- set enable_repo = grains.os_family in ('RedHat', 'Debian') and d.pkg.docker.get('repo') %}
10+
{%- if enable_repo %}
11+
{%- set sls_repo_clean = tplroot ~ '.software.package.repo.clean' %}
1112
include:
12-
- .package.repo.clean
13-
{%- endif %}
13+
- {{ sls_repo_clean }}
14+
{%- endif %}
1415
16+
{%- if grains.kernel|lower in ('linux', 'darwin') %}
1517
{{ formula }}-software-package-clean-pkg:
1618
pkg.removed:
1719
- name: {{ d.pkg.docker.name }}
1820
- reload_modules: {{ d.misc.reload|default(true, true) }}
19-
{%- if d.pkg.docker.use_upstream == 'repo' %}
21+
{%- if enable_repo %}
2022
- require:
21-
- pkgrepo: {{ formula }}-package-repo-absent
23+
- pkgrepo: {{ formula }}-software-package-repo-absent
2224
{%- endif %}
2325
2426
{%- elif grains.os_family == 'MacOS' %}

docker/software/package/install.sls

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,14 @@
66
{%- set formula = d.formula %}
77
88
{%- if d.pkg.docker.use_upstream in ('package', 'repo') %}
9+
{%- set enable_repo = grains.os_family in ('RedHat', 'Debian') and d.pkg.docker.get('repo') %}
910
{%- set docker_pkg_version = d.version | default(d.pkg.version, true) %}
10-
{%- if grains.os_family in ('RedHat', 'Debian') %}
11+
{%- if enable_repo %}
1112
{%- set sls_repo_install = tplroot ~ '.software.package.repo.install' %}
12-
1313
include:
1414
- {{ sls_repo_install }}
1515
{%- endif %}
16+
1617
{%- if grains.kernel|lower in ('linux', 'darwin') %}
1718
{%- if 'deps' in d.pkg and d.pkg.deps %}
1819
@@ -43,7 +44,7 @@ include:
4344
{%- if grains.os|lower not in ('suse',) %}
4445
- hold: {{ d.misc.hold|default(false, true) }}
4546
{%- endif %}
46-
{%- if grains.os_family in ('RedHat', 'Debian') %}
47+
{%- if enable_repo %}
4748
- require:
4849
- pkgrepo: {{ formula }}-software-package-repo-managed
4950
{%- endif %}

docker/software/package/repo/clean.sls

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,10 @@
55
{%- from tplroot ~ "/map.jinja" import data as d with context %}
66
{%- set formula = d.formula %}
77
8+
{%- if 'repo' in d.pkg.docker and d.pkg.docker.repo %}
9+
810
{{ formula }}-software-package-repo-absent:
911
pkgrepo.absent:
1012
- name: {{ d.pkg.docker.repo.name }}
11-
- onlyif:
12-
- {{ d.pkg.docker.repo }}
13+
14+
{%- endif %}

docker/software/package/repo/install.sls

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,5 @@
1313
{{- format_kwargs(d.pkg.docker.repo) }}
1414
- humanname: {{ grains["os"] }} {{ grains["oscodename"]|capitalize }} Docker Package Repository
1515
- refresh: {{ d.misc.refresh }}
16-
- onlyif:
17-
- {{ d.pkg.docker.repo }}
1816
1917
{%- endif %}

kitchen.yml

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -632,6 +632,23 @@ suites:
632632
verifier:
633633
inspec_tests:
634634
- path: test/integration/package
635+
- name: repo
636+
provisioner:
637+
state_top:
638+
base:
639+
'*':
640+
- docker._mapdata
641+
- docker
642+
pillars:
643+
top.sls:
644+
base:
645+
'*':
646+
- docker
647+
pillars_from_files:
648+
docker.sls: test/salt/pillar/repo.sls
649+
verifier:
650+
inspec_tests:
651+
- path: test/integration/package
635652
- name: clean
636653
provisioner:
637654
state_top:
@@ -645,7 +662,7 @@ suites:
645662
'*':
646663
- docker
647664
pillars_from_files:
648-
docker.sls: test/salt/pillar/archive.sls
665+
docker.sls: test/salt/pillar/repo.sls
649666
verifier:
650667
inspec_tests:
651668
- path: test/integration/clean

test/salt/pillar/repo.sls

Lines changed: 166 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,166 @@
1+
# -*- coding: utf-8 -*-
2+
# vim: ft=yaml
3+
---
4+
# example docker registry container
5+
# if you want to your own docker registry, use this
6+
docker:
7+
wanted:
8+
- docker
9+
- compose
10+
11+
pkg:
12+
docker:
13+
use_upstream: repo
14+
config:
15+
# yamllint disable-line rule:line-length
16+
- OPTIONS='-s devicemapper --storage-opt dm.fs=xfs --exec-opt native.cgroupdriver=cgroupfs --selinux-enabled'
17+
# yamllint disable-line rule:line-length
18+
- DOCKER_OPTS="-s btrfs --dns 8.8.8.8"
19+
- export http_proxy="http://172.17.42.1:3128"
20+
daemon_config:
21+
insecure-registries: []
22+
23+
containers:
24+
running:
25+
- nginx
26+
- prometheus
27+
28+
nginx:
29+
image: "nginx:latest"
30+
31+
prometheus:
32+
image: "prom/prometheus:v1.7.1"
33+
env:
34+
- a=b
35+
- ping=pong
36+
- ding=dong
37+
command:
38+
- ls
39+
- ls -l
40+
auto_remove: true
41+
blkio_weight: 1000
42+
cap_add: ["SYS_ADMIN", "MKNOD"]
43+
dns:
44+
- 8.8.8.8
45+
- 8.8.4.4
46+
dns_search:
47+
- EXAMPLE.COM
48+
domainname:
49+
- EXAMPLE.COM
50+
entrypoint:
51+
- ls
52+
- ls -l
53+
- ls -last
54+
- sleep 100
55+
init: false
56+
labels:
57+
- label1
58+
- label2
59+
- label3
60+
mem_limit: 1g
61+
mem_swappiness: 50
62+
name: prometheus
63+
network_disabled: false
64+
network_mode: host # bridge or none or container:netcontainer or host
65+
oom_kill_disable: true
66+
oom_score_adj: 100
67+
pid_mode: host
68+
pids_limit: -1
69+
privileged: false
70+
publish_all_ports: true
71+
read_only: false
72+
stdin_open: false
73+
tty: true
74+
volume_driver: local
75+
76+
registry:
77+
image: "registry:latest"
78+
env:
79+
- REGISTRY_LOG_LEVEL=warn
80+
- REGISTRY_STORAGE=s3
81+
- REGISTRY_STORAGE_S3_REGION=us-west-1
82+
- REGISTRY_STORAGE_S3_BUCKET=my-bucket
83+
- REGISTRY_STORAGE_S3_ROOTDIRECTORY=/registry
84+
command:
85+
- "--log-driver=syslog"
86+
- "-p 5000:5000"
87+
- "--rm"
88+
89+
compose:
90+
## salt dockercompose module ##
91+
applications:
92+
- composetest
93+
composetest:
94+
path: /srv/salt/docker/files/composetest/docker-compose.yml
95+
96+
## formerly compose-ng state ##
97+
ng:
98+
registry-datastore:
99+
dvc: true
100+
# image: &registry_image 'docker.io/registry:latest' ## Fedora
101+
image: &registry_image 'registry:latest'
102+
container_name: &dvc 'registry-datastore'
103+
command: echo *dvc data volume container
104+
volumes:
105+
- &datapath '/registry'
106+
registry-service:
107+
image: *registry_image
108+
container_name: 'registry-service'
109+
volumes_from:
110+
- *dvc
111+
environment:
112+
SETTINGS_FLAVOR: 'local'
113+
STORAGE_PATH: *datapath
114+
SEARCH_BACKEND: 'sqlalchemy'
115+
REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY: '/registry'
116+
ports:
117+
- 127.0.0.1:5000:5000
118+
# restart: 'always' # compose v1.9
119+
deploy: # compose v3
120+
restart_policy:
121+
condition: on-failure
122+
delay: 5s
123+
max_attempts: 3
124+
window: 120s
125+
nginx-latest:
126+
# image: 'docker.io/nginx:latest' ##Fedora
127+
image: 'nginx:latest'
128+
container_name: 'nginx-latest'
129+
links:
130+
- 'registry-service:registry'
131+
ports:
132+
- '80:80'
133+
- '443:443'
134+
volumes:
135+
- /srv/docker-registry/nginx/:/etc/nginx/conf.d
136+
- /srv/docker-registry/auth/:/etc/nginx/conf.d/auth
137+
- /srv/docker-registry/certs/:/etc/nginx/conf.d/certs
138+
working_dir: '/var/www/html'
139+
volume_driver: 'local'
140+
userns_mode: 'host'
141+
user: 'nginx'
142+
# restart: 'always' # compose v1.9
143+
deploy: # compose v3
144+
restart_policy:
145+
condition: on-failure
146+
delay: 5s
147+
max_attempts: 3
148+
window: 120s
149+
150+
swarm:
151+
# Per https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.swarm.html
152+
joinswarm: {}
153+
leave_swarm: false
154+
node_ls: {}
155+
remove_node: {}
156+
remove_service: {}
157+
service_create: {}
158+
swarm_init: {}
159+
service_info: {}
160+
swarm_tokens: true
161+
update_node: {}
162+
163+
misc:
164+
skip_translate: ports
165+
force_present: false
166+
force_running: true

0 commit comments

Comments
 (0)