blob: 2b7f54e7c95904bb443d508af2734cb95f91953b [file] [log] [blame]
Jakub Pavlikc1d11e52017-06-23 11:09:20 +02001{%- from "kubernetes/map.jinja" import common with context %}
marcoacdae7e2015-12-02 15:35:37 +01002
3kubernetes_pkgs:
4 pkg.installed:
5 - names: {{ common.pkgs }}
6
Swann Croisetba4172b2017-03-16 10:43:48 +01007{%- if common.hyperkube is defined %}
Tomáš Kukrál189da4b2017-01-18 14:30:09 +01008/tmp/hyperkube:
9 file.directory:
10 - user: root
11 - group: root
12
13hyperkube-copy:
Artem Panchenko78418512017-06-15 12:16:44 +030014 cmd.run:
15 - name: docker run --rm -v /tmp/hyperkube:/tmp/hyperkube --entrypoint cp {{ common.hyperkube.image }} -vr /hyperkube /tmp/hyperkube
Tomáš Kukrál189da4b2017-01-18 14:30:09 +010016 - require:
17 - file: /tmp/hyperkube
Marek Celoud43d293f2017-06-07 12:29:24 +020018 {%- if grains.get('noservices') %}
19 - onlyif: /bin/false
20 {%- endif %}
Tomáš Kukrál189da4b2017-01-18 14:30:09 +010021
22/usr/bin/hyperkube:
23 file.managed:
Marek Celoud43d293f2017-06-07 12:29:24 +020024 - source: /tmp/hyperkube/hyperkube
25 - mode: 751
26 - makedirs: true
27 - user: root
28 - group: root
29 - require:
Artem Panchenko78418512017-06-15 12:16:44 +030030 - cmd: hyperkube-copy
Marek Celoud43d293f2017-06-07 12:29:24 +020031 {%- if grains.get('noservices') %}
32 - onlyif: /bin/false
33 {%- endif %}
Tomáš Kukrál189da4b2017-01-18 14:30:09 +010034
Tomáš Kukráld79276d2017-01-24 16:43:40 +010035/usr/bin/kubectl:
36 file.symlink:
37 - target: /usr/bin/hyperkube
38 - require:
39 - file: /usr/bin/hyperkube
Marek Celoud43d293f2017-06-07 12:29:24 +020040 {%- if grains.get('noservices') %}
41 - onlyif: /bin/false
42 {%- endif %}
Tomáš Kukráld79276d2017-01-24 16:43:40 +010043
Andrey Shestakov9915ab82018-09-24 17:06:10 +030044{%- if common.get('containerd', {}).get('enabled') %}
45
46containerd_pkg:
47 pkg.installed:
48 - name: {{ common.containerd.get('package', 'containerd.io') }}
49
50runc_pkg:
51 pkg.installed:
52 - name: {{ common.containerd.get('runc_package', 'runc') }}
53
54/etc/containerd/config.toml:
55 file.absent
56
57containerd_service:
58 service.running:
59 - name: containerd
60 - enable: True
61 - watch:
62 - file: /etc/containerd/config.toml
63 - require:
64 - containerd_pkg
65 - runc_pkg
66 {%- if grains.get('noservices') %}
67 - onlyif: /bin/false
68 {%- endif %}
69
70{%- endif %}
71
Victor Ryzhenkinf05141e2018-09-26 22:04:21 +040072{%- if common.addons.get('virtlet', {}).get('enabled') and not pillar.kubernetes.master is defined %}
Jakub Pavlikc1d11e52017-06-23 11:09:20 +020073
Andrey Shestakov9915ab82018-09-24 17:06:10 +030074{%- if not common.get('containerd', {}).get('enabled') %}
75
vrovachev3b141982017-10-06 16:52:40 +040076/etc/default/dockershim:
77 file.managed:
78 - source: salt://kubernetes/files/dockershim/default.pool
79 - template: jinja
80 - user: root
81 - group: root
82 - mode: 644
83
Andrey Shestakov655034e2017-09-15 12:30:28 +030084/etc/systemd/system/dockershim.service:
85 file.managed:
86 - source: salt://kubernetes/files/systemd/dockershim.service
Jakub Pavlikc1d11e52017-06-23 11:09:20 +020087 - template: jinja
88 - user: root
89 - group: root
Andrey Shestakov655034e2017-09-15 12:30:28 +030090 - mode: 755
Jakub Pavlikc1d11e52017-06-23 11:09:20 +020091
Andrey Shestakov655034e2017-09-15 12:30:28 +030092dockershim_service:
93 service.running:
94 - name: dockershim
95 - enable: True
96 - watch:
vrovachev3b141982017-10-06 16:52:40 +040097 - file: /etc/default/dockershim
vrovacheve9b238c2017-12-12 21:22:24 +040098 - file: /usr/bin/hyperkube
Andrey Shestakov655034e2017-09-15 12:30:28 +030099 {%- if grains.get('noservices') %}
100 - onlyif: /bin/false
101 {%- endif %}
102
Andrey Shestakov9915ab82018-09-24 17:06:10 +0300103{%- endif %}
104
Victor Ryzhenkinf05141e2018-09-26 22:04:21 +0400105/usr/bin/criproxy:
106 file.managed:
107 - source: https://github.com/mirantis/criproxy/releases/download/{{ common.addons.virtlet.get('criproxy_version', 'v0.10.0') }}/criproxy
108 - mode: 750
109 - makedirs: true
110 - user: root
111 - group: root
112 - source_hash: {{ common.addons.virtlet.get('criproxy_source', 'md5=52717b1f70f15558ef4bdb0e4d4948da') }}
113 {%- if grains.get('noservices') %}
114 - onlyif: /bin/false
115 {%- endif %}
116
Andrey Shestakov9915ab82018-09-24 17:06:10 +0300117/etc/criproxy:
118 file.directory:
119 - user: root
120 - group: root
121 - mode: 0750
122
123/etc/criproxy/node.conf:
124 file.managed:
125 - user: root
126 - group: root
127 - mode: 0640
128 - contents: ''
129
130/etc/systemd/system/criproxy.service:
131 file.managed:
132 - source: salt://kubernetes/files/systemd/criproxy.service
133 - template: jinja
134 - user: root
135 - group: root
136 - mode: 755
137
Jakub Pavlikc1d11e52017-06-23 11:09:20 +0200138criproxy_service:
139 service.running:
140 - name: criproxy
141 - enable: True
142 - watch:
143 - file: /etc/systemd/system/criproxy.service
Andrey Shestakov655034e2017-09-15 12:30:28 +0300144 - file: /etc/criproxy/node.conf
Jakub Pavlikc1d11e52017-06-23 11:09:20 +0200145 - file: /usr/bin/criproxy
146 {%- if grains.get('noservices') %}
147 - onlyif: /bin/false
148 {%- endif %}
149
Andrey Shestakov7059e352017-09-14 11:27:14 +0300150{%- else %}
151
152/etc/criproxy:
153 file.absent
154
Andrey Shestakov655034e2017-09-15 12:30:28 +0300155dockershim_service:
156 service.dead:
157 - name: dockershim
158 - enable: False
159
Andrey Shestakov7059e352017-09-14 11:27:14 +0300160criproxy_service:
161 service.dead:
162 - name: criproxy
163 - enable: False
164
Sergii Golovatiuk707f7d82017-08-07 15:49:23 +0200165{%- endif %}
166
Tomáš Kukrál189da4b2017-01-18 14:30:09 +0100167/etc/systemd/system/kubelet.service:
168 file.managed:
Jakub Pavlikc1d11e52017-06-23 11:09:20 +0200169 - source: salt://kubernetes/files/systemd/kubelet.service
170 - template: jinja
171 - user: root
172 - group: root
173 - mode: 644
Tomáš Kukrál189da4b2017-01-18 14:30:09 +0100174
175/etc/kubernetes/config:
176 file.absent
177
Tomáš Kukrál10b15672017-09-05 10:08:46 +0200178{%- if common.get('cloudprovider', {}).get('enabled') and common.get('cloudprovider', {}).get('provider') == 'openstack' %}
Matthew Mosesohn19903512017-08-31 19:38:19 +0300179/etc/kubernetes/cloud-config.conf:
180 file.managed:
Jakub Pavlik6ef25ef2017-09-05 16:00:21 +0200181 - source: salt://kubernetes/files/cloudprovider/cloud-config-openstack.conf
Matthew Mosesohn19903512017-08-31 19:38:19 +0300182 - template: jinja
183 - user: root
184 - group: root
185 - mode: 600
186
187{% endif %}
188
Victor Ryzhenkinf05141e2018-09-26 22:04:21 +0400189{%- if pillar.kubernetes.master is defined %}
Tomáš Kukrál189da4b2017-01-18 14:30:09 +0100190
191/etc/default/kubelet:
192 file.managed:
193 - source: salt://kubernetes/files/kubelet/default.master
194 - template: jinja
195 - user: root
196 - group: root
197 - mode: 644
198
Marek Celoud43d293f2017-06-07 12:29:24 +0200199/etc/kubernetes/kubelet.kubeconfig:
200 file.managed:
201 - source: salt://kubernetes/files/kubelet/kubelet.kubeconfig.master
202 - template: jinja
203 - user: root
204 - group: root
205 - mode: 644
206 - makedirs: true
207
Tomáš Kukrál189da4b2017-01-18 14:30:09 +0100208{%- else %}
209
210/etc/default/kubelet:
211 file.managed:
212 - source: salt://kubernetes/files/kubelet/default.pool
213 - template: jinja
214 - user: root
215 - group: root
216 - mode: 644
217
Tomáš Kukrál7f43ee02017-01-24 12:18:34 +0100218/etc/kubernetes/kubelet.kubeconfig:
219 file.managed:
Marek Celoud43d293f2017-06-07 12:29:24 +0200220 - source: salt://kubernetes/files/kubelet/kubelet.kubeconfig.pool
Tomáš Kukrál7f43ee02017-01-24 12:18:34 +0100221 - template: jinja
222 - user: root
223 - group: root
224 - mode: 644
225 - makedirs: true
Tomáš Kukrál189da4b2017-01-18 14:30:09 +0100226
Marek Celoud43d293f2017-06-07 12:29:24 +0200227{%- endif %}
228
229manifest_dir_create:
230 file.directory:
231 - makedirs: true
232 - name: /etc/kubernetes/manifests
233 - user: root
234 - group: root
235 - mode: 0751
236
Tomáš Kukrál189da4b2017-01-18 14:30:09 +0100237kubelet_service:
238 service.running:
239 - name: kubelet
240 - enable: True
241 - watch:
242 - file: /etc/default/kubelet
243 - file: /usr/bin/hyperkube
Tomáš Kukrál3728a5c2017-01-24 11:15:37 +0100244 - file: /etc/kubernetes/kubelet.kubeconfig
Tomáš Kukrál7f43ee02017-01-24 12:18:34 +0100245 - file: manifest_dir_create
Martin Polreich3de03bb2017-06-13 11:11:40 +0200246 {%- if grains.get('noservices') %}
247 - onlyif: /bin/false
248 {%- endif %}
Tomáš Kukrál189da4b2017-01-18 14:30:09 +0100249
Swann Croisetba4172b2017-03-16 10:43:48 +0100250{%- if common.logrotate is defined %}
251/etc/logrotate.d/kubernetes:
252 file.managed:
253 - source: salt://kubernetes/files/logrotate
254 - template: jinja
255 - user: root
256 - group: root
257 - mode: 644
258 - makedirs: true
259 - defaults:
260 logfile: {{ common.logrotate }}
261
262{% endif %}
Tomáš Kukrál189da4b2017-01-18 14:30:09 +0100263{% endif %}
Andrey Shestakov46675512018-04-24 10:58:33 +0300264
265{%- if common.cni is defined %}
266/opt/cni/bin:
267 archive.extracted:
268 - source: {{ common.cni.plugins.source }}
Victor Ryzhenkin4a21c9f2018-07-10 17:21:46 +0400269 - source_hash: {{ common.cni.plugins.hash }}
270 {%- if grains['saltversioninfo'] < [2017, 7] %}
Andrey Shestakov46675512018-04-24 10:58:33 +0300271 - tar_options: xzf
Victor Ryzhenkin4a21c9f2018-07-10 17:21:46 +0400272 {%- else %}
273 - options: xzf
274 {%- endif %}
Andrey Shestakov46675512018-04-24 10:58:33 +0300275 - archive_format: tar
276 - if_missing: /opt/cni/bin/host-local
277{%- endif %}