Skip to content

Commit a3c79a1

Browse files
Add inaccel/fpga-operator addon
Signed-off-by: Elias Koromilas <[email protected]>
1 parent f256623 commit a3c79a1

File tree

5 files changed

+366
-0
lines changed

5 files changed

+366
-0
lines changed

deploy/addons/assets.go

+4
Original file line numberDiff line numberDiff line change
@@ -139,4 +139,8 @@ var (
139139
// AliyunMirror assets for aliyun_mirror.json
140140
//go:embed aliyun_mirror.json
141141
AliyunMirror embed.FS
142+
143+
// InAccelAssets assets for inaccel addon
144+
//go:embed inaccel/fpga-operator.yaml.tmpl
145+
InAccelAssets embed.FS
142146
)

deploy/addons/inaccel/README.md

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
### Documentation
2+
3+
For detailed usage instructions visit: [docs.inaccel.com](https://docs.inaccel.com)
4+
5+
### Support
6+
7+
For more product information contact: [email protected]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,336 @@
1+
---
2+
# Source: fpga-operator/templates/service-account.yaml
3+
apiVersion: v1
4+
kind: ServiceAccount
5+
metadata:
6+
labels:
7+
helm.sh/chart: fpga-operator-2.5.4
8+
app.kubernetes.io/name: fpga-operator
9+
app.kubernetes.io/instance: inaccel
10+
app.kubernetes.io/version: "2.1"
11+
app.kubernetes.io/managed-by: Minikube
12+
name: fpga-operator
13+
namespace: kube-system
14+
---
15+
# Source: fpga-operator/templates/secret.yaml
16+
apiVersion: v1
17+
kind: Secret
18+
metadata:
19+
labels:
20+
helm.sh/chart: fpga-operator-2.5.4
21+
app.kubernetes.io/name: fpga-operator
22+
app.kubernetes.io/instance: inaccel
23+
app.kubernetes.io/version: "2.1"
24+
app.kubernetes.io/managed-by: Minikube
25+
name: fpga-operator
26+
namespace: kube-system
27+
stringData:
28+
type: Opaque
29+
---
30+
# Source: fpga-operator/templates/cluster-role.yaml
31+
apiVersion: rbac.authorization.k8s.io/v1
32+
kind: ClusterRole
33+
metadata:
34+
labels:
35+
helm.sh/chart: fpga-operator-2.5.4
36+
app.kubernetes.io/name: fpga-operator
37+
app.kubernetes.io/instance: inaccel
38+
app.kubernetes.io/version: "2.1"
39+
app.kubernetes.io/managed-by: Minikube
40+
name: fpga-operator
41+
rules:
42+
- apiGroups: [""]
43+
resources: ["nodes"]
44+
verbs: ["patch"]
45+
- apiGroups: ["admissionregistration.k8s.io"]
46+
resources: ["mutatingwebhookconfigurations"]
47+
verbs: ["get", "update"]
48+
---
49+
# Source: fpga-operator/templates/cluster-role-binding.yaml
50+
apiVersion: rbac.authorization.k8s.io/v1
51+
kind: ClusterRoleBinding
52+
metadata:
53+
labels:
54+
helm.sh/chart: fpga-operator-2.5.4
55+
app.kubernetes.io/name: fpga-operator
56+
app.kubernetes.io/instance: inaccel
57+
app.kubernetes.io/version: "2.1"
58+
app.kubernetes.io/managed-by: Minikube
59+
name: fpga-operator
60+
roleRef:
61+
apiGroup: rbac.authorization.k8s.io
62+
kind: ClusterRole
63+
name: fpga-operator
64+
subjects:
65+
- kind: ServiceAccount
66+
name: fpga-operator
67+
namespace: kube-system
68+
---
69+
# Source: fpga-operator/templates/service.yaml
70+
apiVersion: v1
71+
kind: Service
72+
metadata:
73+
labels:
74+
helm.sh/chart: fpga-operator-2.5.4
75+
app.kubernetes.io/name: fpga-operator
76+
app.kubernetes.io/instance: inaccel
77+
app.kubernetes.io/version: "2.1"
78+
app.kubernetes.io/managed-by: Minikube
79+
name: fpga-operator
80+
namespace: kube-system
81+
spec:
82+
ports:
83+
- port: 443
84+
publishNotReadyAddresses: true
85+
selector:
86+
kind: Deployment
87+
app.kubernetes.io/name: fpga-operator
88+
app.kubernetes.io/instance: inaccel
89+
---
90+
# Source: fpga-operator/templates/daemon-set.yaml
91+
apiVersion: apps/v1
92+
kind: DaemonSet
93+
metadata:
94+
labels:
95+
helm.sh/chart: fpga-operator-2.5.4
96+
app.kubernetes.io/name: fpga-operator
97+
app.kubernetes.io/instance: inaccel
98+
app.kubernetes.io/version: "2.1"
99+
app.kubernetes.io/managed-by: Minikube
100+
name: fpga-operator
101+
namespace: kube-system
102+
spec:
103+
selector:
104+
matchLabels:
105+
kind: DaemonSet
106+
app.kubernetes.io/name: fpga-operator
107+
app.kubernetes.io/instance: inaccel
108+
template:
109+
metadata:
110+
annotations:
111+
kubectl.kubernetes.io/default-container: coral
112+
labels:
113+
kind: DaemonSet
114+
helm.sh/chart: fpga-operator-2.5.4
115+
app.kubernetes.io/name: fpga-operator
116+
app.kubernetes.io/instance: inaccel
117+
app.kubernetes.io/version: "2.1"
118+
app.kubernetes.io/managed-by: Minikube
119+
spec:
120+
containers:
121+
- env:
122+
- name: LOG_LEVEL
123+
value: info
124+
- name: NODE_NAME
125+
valueFrom:
126+
fieldRef:
127+
fieldPath: spec.nodeName
128+
image: {{ .CustomRegistries.coral | default .ImageRepository }}{{ .Images.coral }}
129+
imagePullPolicy: Always
130+
name: coral
131+
ports:
132+
- containerPort: 55677
133+
readinessProbe:
134+
exec:
135+
command:
136+
- get
137+
- coral
138+
securityContext:
139+
privileged: true
140+
volumeMounts:
141+
- mountPath: /etc/localtime
142+
name: localtime
143+
readOnly: true
144+
- mountPath: /sys
145+
name: sys
146+
- mountPath: /var/lib/inaccel
147+
mountPropagation: HostToContainer
148+
name: state-root
149+
- mountPath: /var/lib/kubelet/plugins_registry
150+
name: kubelet
151+
subPath: plugins_registry
152+
- mountPath: /var/opt/inaccel/runtimes
153+
name: data-root
154+
readOnly: true
155+
subPath: runtimes
156+
- args:
157+
- --debug=false
158+
env:
159+
- name: DOCKER
160+
value: disabled
161+
- name: NODE_NAME
162+
valueFrom:
163+
fieldRef:
164+
fieldPath: spec.nodeName
165+
image: {{ .CustomRegistries.daemon | default .ImageRepository }}{{ .Images.daemon }}
166+
name: daemon
167+
securityContext:
168+
privileged: true
169+
volumeMounts:
170+
- mountPath: /var/lib/inaccel
171+
mountPropagation: Bidirectional
172+
name: state-root
173+
- mountPath: /var/lib/kubelet/plugins_registry
174+
name: kubelet
175+
subPath: plugins_registry
176+
- mountPath: /var/lib/kubelet
177+
mountPropagation: Bidirectional
178+
name: kubelet
179+
- image: {{ .CustomRegistries.monitor | default .ImageRepository }}{{ .Images.monitor }}
180+
imagePullPolicy: Always
181+
name: monitor
182+
ports:
183+
- containerPort: 19999
184+
hostAliases:
185+
- hostnames:
186+
- coral
187+
- daemon
188+
- monitor
189+
ip: 127.0.0.1
190+
hostPID: true
191+
initContainers:
192+
- env:
193+
- name: DRIVER_SYSROOT_DIR
194+
value: /host
195+
image: {{ .CustomRegistries.driver | default .ImageRepository }}{{ .Images.driver }}
196+
name: driver
197+
securityContext:
198+
privileged: true
199+
volumeMounts:
200+
- mountPath: /host
201+
name: host
202+
- env:
203+
- name: MKRT_CONFIG_PATH
204+
value: /etc/inaccel/runtimes
205+
- name: MKRT_SYSROOT_DIR
206+
value: /host
207+
image: {{ .CustomRegistries.mkrt | default .ImageRepository }}{{ .Images.mkrt }}
208+
name: mkrt
209+
volumeMounts:
210+
- mountPath: /host
211+
name: host
212+
readOnly: true
213+
- mountPath: /var/opt/inaccel/runtimes
214+
name: data-root
215+
subPath: runtimes
216+
priorityClassName: system-node-critical
217+
serviceAccountName: fpga-operator
218+
volumes:
219+
- emptyDir: {}
220+
name: data-root
221+
- hostPath:
222+
path: /
223+
name: host
224+
- hostPath:
225+
path: /var/lib/kubelet
226+
name: kubelet
227+
- hostPath:
228+
path: /etc/localtime
229+
name: localtime
230+
- hostPath:
231+
path: /var/lib/inaccel
232+
type: DirectoryOrCreate
233+
name: state-root
234+
- hostPath:
235+
path: /sys
236+
name: sys
237+
---
238+
# Source: fpga-operator/templates/deployment.yaml
239+
apiVersion: apps/v1
240+
kind: Deployment
241+
metadata:
242+
labels:
243+
helm.sh/chart: fpga-operator-2.5.4
244+
app.kubernetes.io/name: fpga-operator
245+
app.kubernetes.io/instance: inaccel
246+
app.kubernetes.io/version: "2.1"
247+
app.kubernetes.io/managed-by: Minikube
248+
name: fpga-operator
249+
namespace: kube-system
250+
spec:
251+
replicas: 1
252+
selector:
253+
matchLabels:
254+
kind: Deployment
255+
app.kubernetes.io/name: fpga-operator
256+
app.kubernetes.io/instance: inaccel
257+
template:
258+
metadata:
259+
annotations:
260+
kubectl.kubernetes.io/default-container: reef
261+
labels:
262+
kind: Deployment
263+
helm.sh/chart: fpga-operator-2.5.4
264+
app.kubernetes.io/name: fpga-operator
265+
app.kubernetes.io/instance: inaccel
266+
app.kubernetes.io/version: "2.1"
267+
app.kubernetes.io/managed-by: Minikube
268+
spec:
269+
containers:
270+
- args:
271+
- --debug=false
272+
image: {{ .CustomRegistries.reef | default .ImageRepository }}{{ .Images.reef }}
273+
name: reef
274+
volumeMounts:
275+
- mountPath: /etc/inaccel
276+
name: config-root
277+
readOnly: true
278+
hostAliases:
279+
- hostnames:
280+
- reef
281+
ip: 127.0.0.1
282+
initContainers:
283+
- args:
284+
- init
285+
env:
286+
- name: MUTATING_WEBHOOK_CONFIGURATION_NAME
287+
value: fpga-operator
288+
image: {{ .CustomRegistries.reef | default .ImageRepository }}{{ .Images.reef }}
289+
name: reef-init
290+
volumeMounts:
291+
- mountPath: /etc/inaccel
292+
name: config-root
293+
priorityClassName: system-cluster-critical
294+
serviceAccountName: fpga-operator
295+
volumes:
296+
- emptyDir: {}
297+
name: config-root
298+
---
299+
# Source: fpga-operator/templates/csi-driver.yaml
300+
apiVersion: storage.k8s.io/v1
301+
kind: CSIDriver
302+
metadata:
303+
labels:
304+
helm.sh/chart: fpga-operator-2.5.4
305+
app.kubernetes.io/name: fpga-operator
306+
app.kubernetes.io/instance: inaccel
307+
app.kubernetes.io/version: "2.1"
308+
app.kubernetes.io/managed-by: Minikube
309+
name: inaccel
310+
spec:
311+
attachRequired: false
312+
volumeLifecycleModes:
313+
- Ephemeral
314+
---
315+
# Source: fpga-operator/templates/mutating-webhook-configuration.yaml
316+
apiVersion: admissionregistration.k8s.io/v1
317+
kind: MutatingWebhookConfiguration
318+
metadata:
319+
labels:
320+
helm.sh/chart: fpga-operator-2.5.4
321+
app.kubernetes.io/name: fpga-operator
322+
app.kubernetes.io/instance: inaccel
323+
app.kubernetes.io/version: "2.1"
324+
app.kubernetes.io/managed-by: Minikube
325+
name: fpga-operator
326+
webhooks:
327+
- admissionReviewVersions: ["v1"]
328+
clientConfig:
329+
service:
330+
name: fpga-operator
331+
namespace: kube-system
332+
name: reef.inaccel.com
333+
objectSelector:
334+
matchLabels:
335+
inaccel/fpga: enabled
336+
sideEffects: None

pkg/addons/config.go

+5
Original file line numberDiff line numberDiff line change
@@ -192,4 +192,9 @@ var Addons = []*Addon{
192192
set: SetBool,
193193
callbacks: []setFn{EnableOrDisableAddon},
194194
},
195+
{
196+
name: "inaccel",
197+
set: SetBool,
198+
callbacks: []setFn{EnableOrDisableAddon},
199+
},
195200
}

pkg/minikube/assets/addons.go

+14
Original file line numberDiff line numberDiff line change
@@ -674,6 +674,20 @@ var Addons = map[string]*Addon{
674674
"portainer.yaml",
675675
"0640"),
676676
}, false, "portainer", "portainer.io", nil, nil),
677+
"inaccel": NewAddon([]*BinAsset{
678+
MustBinAsset(addons.InAccelAssets,
679+
"inaccel/fpga-operator.yaml.tmpl",
680+
vmpath.GuestAddonsDir,
681+
"fpga-operator.yaml",
682+
"0640"),
683+
}, false, "inaccel", "InAccel <[email protected]>", map[string]string{
684+
"coral": "inaccel/coral:2.1",
685+
"daemon": "inaccel/daemon:latest",
686+
"driver": "inaccel/driver:latest",
687+
"mkrt": "inaccel/mkrt:latest",
688+
"monitor": "inaccel/monitor:2.1",
689+
"reef": "inaccel/reef:latest",
690+
}, nil),
677691
}
678692

679693
// parseMapString creates a map based on `str` which is encoded as <key1>=<value1>,<key2>=<value2>,...

0 commit comments

Comments
 (0)