add cmk in KuD
[multicloud/k8s.git] / kud / deployment_infra / images / cmk.yaml
1 ---
2 # Source: cmk/templates/serviceaccount.yml
3 apiVersion: v1
4 kind: ServiceAccount
5 metadata:
6   name: cmk
7   namespace: kube-system
8 ---
9 # Source: cmk/templates/rbac.yml
10 kind: ClusterRole
11 apiVersion: rbac.authorization.k8s.io/v1beta1
12 metadata:
13   name: cmk-custom-resource-definition-controller
14   namespace: kube-system
15 rules:
16 - apiGroups: ["intel.com"]
17   resources: ["*"]
18   verbs: ["*"]
19 - apiGroups: ["apiextensions.k8s.io"]
20   resources: ["customresourcedefinitions", "customresourcedefinitions.extensions"]
21   verbs: ["*"]
22 ---
23 # Source: cmk/templates/rbac.yml
24 kind: ClusterRole
25 apiVersion: rbac.authorization.k8s.io/v1beta1
26 metadata:
27   name: cmk-daemonset-controller
28   namespace: kube-system
29 rules:
30 - apiGroups: ["extensions"]
31   resources: ["daemonsets", "daemonsets.extensions"]
32   verbs: ["*"]
33 ---
34 # Source: cmk/templates/rbac.yml
35 kind: ClusterRole
36 apiVersion: rbac.authorization.k8s.io/v1beta1
37 metadata:
38   name: cmk-third-party-resource-controller
39   namespace: kube-system
40 rules:
41 - apiGroups: ["cmk.intel.com"]
42   resources: ["*"]
43   verbs: ["*"]
44 - apiGroups: ["extensions"]
45   resources: ["thirdpartyresources", "thirdpartyresources.extensions"]
46   verbs: ["*"]
47 ---
48 # Source: cmk/templates/rbac.yml
49 kind: ClusterRole
50 apiVersion: rbac.authorization.k8s.io/v1beta1
51 metadata:
52   name: cmk-version-controller
53   namespace: kube-system
54 rules:
55   - nonResourceURLs: ["*"]
56     verbs:
57       - get
58 ---
59 # Source: cmk/templates/rbac.yml
60 apiVersion: rbac.authorization.k8s.io/v1beta1
61 kind: ClusterRoleBinding
62 metadata:
63   name: cmk-role-binding-version
64   namespace: kube-system
65 roleRef:
66   apiGroup: rbac.authorization.k8s.io
67   kind: ClusterRole
68   name: cmk-version-controller
69 subjects:
70 - kind: ServiceAccount
71   name: cmk
72   namespace: kube-system
73 ---
74 # Source: cmk/templates/rbac.yml
75 apiVersion: rbac.authorization.k8s.io/v1beta1
76 kind: ClusterRoleBinding
77 metadata:
78   name: cmk-role-binding-daemonset
79   namespace: kube-system
80 roleRef:
81   apiGroup: rbac.authorization.k8s.io
82   kind: ClusterRole
83   name: cmk-daemonset-controller
84 subjects:
85 - kind: ServiceAccount
86   name: cmk
87   namespace: kube-system
88 ---
89 # Source: cmk/templates/rbac.yml
90 apiVersion: rbac.authorization.k8s.io/v1beta1
91 kind: ClusterRoleBinding
92 metadata:
93   name: cmk-role-binding-node
94   namespace: kube-system
95 roleRef:
96   apiGroup: rbac.authorization.k8s.io
97   kind: ClusterRole
98   name: system:node
99 subjects:
100 - kind: ServiceAccount
101   name: cmk
102   namespace: kube-system
103 ---
104 # Source: cmk/templates/rbac.yml
105 apiVersion: rbac.authorization.k8s.io/v1beta1
106 kind: ClusterRoleBinding
107 metadata:
108   name: cmk-role-binding-tpr
109   namespace: kube-system
110 roleRef:
111   apiGroup: rbac.authorization.k8s.io
112   kind: ClusterRole
113   name: cmk-third-party-resource-controller
114 subjects:
115 - kind: ServiceAccount
116   name: cmk
117   namespace: kube-system
118 ---
119 # Source: cmk/templates/rbac.yml
120 apiVersion: rbac.authorization.k8s.io/v1beta1
121 kind: ClusterRoleBinding
122 metadata:
123   name: cmk-role-binding-crd
124   namespace: kube-system
125 roleRef:
126   apiGroup: rbac.authorization.k8s.io
127   kind: ClusterRole
128   name: cmk-custom-resource-definition-controller
129 subjects:
130 - kind: ServiceAccount
131   name: cmk
132   namespace: kube-system
133 ---
134 # Source: cmk/templates/daemonset.yml
135 apiVersion: apps/v1
136 kind: DaemonSet
137 metadata:
138   name: cmk
139   labels:
140     app: cmk
141   namespace: kube-system
142 spec:
143   selector:
144     matchLabels:
145       name: cmk
146   template:
147     metadata:
148       labels:
149         name: cmk
150     spec:
151       affinity:
152         nodeAffinity:
153           requiredDuringSchedulingIgnoredDuringExecution:
154             nodeSelectorTerms:
155       serviceAccountName: cmk
156       tolerations:
157       - key: cmk
158         operator: Exists
159       containers:
160       - name: reconcile
161         image: localhost:5000/cmk:v1.4.1
162         imagePullPolicy: IfNotPresent
163         env:
164         - name: CMK_RECONCILE_SLEEP_TIME
165           value: '60'
166         - name: CMK_PROC_FS
167           value: /proc
168         - name: NODE_NAME
169           valueFrom:
170             fieldRef:
171               apiVersion: v1
172               fieldPath: spec.nodeName
173         command: ["/bin/bash", "-c"]
174         args:
175         - "/cmk/cmk.py isolate --pool=infra /cmk/cmk.py -- reconcile --interval=$CMK_RECONCILE_SLEEP_TIME --publish"
176         volumeMounts:
177         - mountPath: /proc
178           name: host-proc
179           readOnly:  false
180         - mountPath: /etc/cmk
181           name: cmk-conf-dir
182         - mountPath: /opt/bin
183           name: cmk-install-dir
184       - name: nodereport
185         image: localhost:5000/cmk:v1.4.1
186         imagePullPolicy: IfNotPresent
187         env:
188         - name: CMK_NODE_REPORT_SLEEP_TIME
189           value: '60'
190         - name: CMK_PROC_FS
191           value: /proc
192         - name: NODE_NAME
193           valueFrom:
194             fieldRef:
195               apiVersion: v1
196               fieldPath: spec.nodeName
197         command: ["/bin/bash", "-c"]
198         args:
199         - "/cmk/cmk.py isolate --pool=infra /cmk/cmk.py -- node-report --interval=$CMK_NODE_REPORT_SLEEP_TIME --publish"
200         volumeMounts:
201         - mountPath: /proc
202           name: host-proc
203           readOnly: false
204         - mountPath: /etc/cmk
205           name: cmk-conf-dir
206         - mountPath: /opt/bin
207           name: cmk-install-dir
208       initContainers:
209       - name: init
210         image: localhost:5000/cmk:v1.4.1
211         imagePullPolicy: IfNotPresent
212         env:
213         - name: CMK_PROC_FS
214           value: "/proc"
215         - name: NODE_NAME
216           valueFrom:
217             fieldRef:
218               apiVersion: v1
219               fieldPath: spec.nodeName
220         command: ["/bin/bash", "-c"]
221         args:
222         - "/cmk/cmk.py init --conf-dir=/etc/cmk --exclusive-mode=packed --num-exclusive-cores=0 --shared-mode=packed --num-shared-cores=0"
223         volumeMounts:
224         - mountPath: /proc
225           name: host-proc
226           readOnly: false
227         - mountPath: /etc/cmk
228           name: cmk-conf-dir
229           readOnly: false
230         - mountPath: /opt/bin
231           name: cmk-install-dir
232           readOnly: false
233       - name: discover
234         image: localhost:5000/cmk:v1.4.1
235         imagePullPolicy: IfNotPresent
236         env:
237         - name: CMK_PROC_FS
238           value: /proc
239         - name: NODE_NAME
240           valueFrom:
241             fieldRef:
242               apiVersion: v1
243               fieldPath: spec.nodeName
244         command: ["/bin/bash", "-c"]
245         args:
246 #        - "echo -en '\n'; ls -a /etc/cmk; sleep 10;"
247         - "until [ -d /etc/cmk ]; do sleep 1; done; /cmk/cmk.py discover"
248         volumeMounts:
249         - mountPath: /proc
250           name: host-proc
251           readOnly: false
252         - mountPath: /etc/cmk
253           name: cmk-conf-dir
254           readOnly: false
255         - mountPath: /opt/bin
256           name: cmk-install-dir
257           readOnly: false
258       - name: install
259         image: localhost:5000/cmk:v1.4.1
260         imagePullPolicy: IfNotPresent
261         env:
262         - name: CMK_PROC_FS
263           value: /proc
264         - name: NODE_NAME
265           valueFrom:
266             fieldRef:
267               apiVersion: v1
268               fieldPath: spec.nodeName
269         command: ["/bin/bash", "-c"]
270         args:
271         - "/cmk/cmk.py install"
272         volumeMounts:
273         - mountPath: /proc
274           name: host-proc
275           readOnly: false
276         - mountPath: /etc/cmk
277           name: cmk-conf-dir
278         - mountPath: /opt/bin
279           name: cmk-install-dir
280 #      restartPolicy: Never
281       volumes:
282       - hostPath:
283           path: /proc
284 #          type: ""
285         name: host-proc
286       - hostPath:
287           path: /etc/cmk
288 #          type: ""
289         name: cmk-conf-dir
290       - hostPath:
291           path: /opt/bin
292 #          type: ""
293         name: cmk-install-dir
294