Skip to content

Commit

Permalink
Add inaccel/fpga-operator addon
Browse files Browse the repository at this point in the history
Signed-off-by: Elias Koromilas <elias.koromilas@gmail.com>
  • Loading branch information
eliaskoromilas committed Nov 18, 2021
1 parent f256623 commit a3c79a1
Show file tree
Hide file tree
Showing 5 changed files with 366 additions and 0 deletions.
4 changes: 4 additions & 0 deletions deploy/addons/assets.go
Original file line number Diff line number Diff line change
Expand Up @@ -139,4 +139,8 @@ var (
// AliyunMirror assets for aliyun_mirror.json
//go:embed aliyun_mirror.json
AliyunMirror embed.FS

// InAccelAssets assets for inaccel addon
//go:embed inaccel/fpga-operator.yaml.tmpl
InAccelAssets embed.FS
)
7 changes: 7 additions & 0 deletions deploy/addons/inaccel/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
### Documentation

For detailed usage instructions visit: [docs.inaccel.com](https://docs.inaccel.com)

### Support

For more product information contact: info@inaccel.com
336 changes: 336 additions & 0 deletions deploy/addons/inaccel/fpga-operator.yaml.tmpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,336 @@
---
# Source: fpga-operator/templates/service-account.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
helm.sh/chart: fpga-operator-2.5.4
app.kubernetes.io/name: fpga-operator
app.kubernetes.io/instance: inaccel
app.kubernetes.io/version: "2.1"
app.kubernetes.io/managed-by: Minikube
name: fpga-operator
namespace: kube-system
---
# Source: fpga-operator/templates/secret.yaml
apiVersion: v1
kind: Secret
metadata:
labels:
helm.sh/chart: fpga-operator-2.5.4
app.kubernetes.io/name: fpga-operator
app.kubernetes.io/instance: inaccel
app.kubernetes.io/version: "2.1"
app.kubernetes.io/managed-by: Minikube
name: fpga-operator
namespace: kube-system
stringData:
type: Opaque
---
# Source: fpga-operator/templates/cluster-role.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
helm.sh/chart: fpga-operator-2.5.4
app.kubernetes.io/name: fpga-operator
app.kubernetes.io/instance: inaccel
app.kubernetes.io/version: "2.1"
app.kubernetes.io/managed-by: Minikube
name: fpga-operator
rules:
- apiGroups: [""]
resources: ["nodes"]
verbs: ["patch"]
- apiGroups: ["admissionregistration.k8s.io"]
resources: ["mutatingwebhookconfigurations"]
verbs: ["get", "update"]
---
# Source: fpga-operator/templates/cluster-role-binding.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
labels:
helm.sh/chart: fpga-operator-2.5.4
app.kubernetes.io/name: fpga-operator
app.kubernetes.io/instance: inaccel
app.kubernetes.io/version: "2.1"
app.kubernetes.io/managed-by: Minikube
name: fpga-operator
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: fpga-operator
subjects:
- kind: ServiceAccount
name: fpga-operator
namespace: kube-system
---
# Source: fpga-operator/templates/service.yaml
apiVersion: v1
kind: Service
metadata:
labels:
helm.sh/chart: fpga-operator-2.5.4
app.kubernetes.io/name: fpga-operator
app.kubernetes.io/instance: inaccel
app.kubernetes.io/version: "2.1"
app.kubernetes.io/managed-by: Minikube
name: fpga-operator
namespace: kube-system
spec:
ports:
- port: 443
publishNotReadyAddresses: true
selector:
kind: Deployment
app.kubernetes.io/name: fpga-operator
app.kubernetes.io/instance: inaccel
---
# Source: fpga-operator/templates/daemon-set.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
labels:
helm.sh/chart: fpga-operator-2.5.4
app.kubernetes.io/name: fpga-operator
app.kubernetes.io/instance: inaccel
app.kubernetes.io/version: "2.1"
app.kubernetes.io/managed-by: Minikube
name: fpga-operator
namespace: kube-system
spec:
selector:
matchLabels:
kind: DaemonSet
app.kubernetes.io/name: fpga-operator
app.kubernetes.io/instance: inaccel
template:
metadata:
annotations:
kubectl.kubernetes.io/default-container: coral
labels:
kind: DaemonSet
helm.sh/chart: fpga-operator-2.5.4
app.kubernetes.io/name: fpga-operator
app.kubernetes.io/instance: inaccel
app.kubernetes.io/version: "2.1"
app.kubernetes.io/managed-by: Minikube
spec:
containers:
- env:
- name: LOG_LEVEL
value: info
- name: NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
image: {{ .CustomRegistries.coral | default .ImageRepository }}{{ .Images.coral }}
imagePullPolicy: Always
name: coral
ports:
- containerPort: 55677
readinessProbe:
exec:
command:
- get
- coral
securityContext:
privileged: true
volumeMounts:
- mountPath: /etc/localtime
name: localtime
readOnly: true
- mountPath: /sys
name: sys
- mountPath: /var/lib/inaccel
mountPropagation: HostToContainer
name: state-root
- mountPath: /var/lib/kubelet/plugins_registry
name: kubelet
subPath: plugins_registry
- mountPath: /var/opt/inaccel/runtimes
name: data-root
readOnly: true
subPath: runtimes
- args:
- --debug=false
env:
- name: DOCKER
value: disabled
- name: NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
image: {{ .CustomRegistries.daemon | default .ImageRepository }}{{ .Images.daemon }}
name: daemon
securityContext:
privileged: true
volumeMounts:
- mountPath: /var/lib/inaccel
mountPropagation: Bidirectional
name: state-root
- mountPath: /var/lib/kubelet/plugins_registry
name: kubelet
subPath: plugins_registry
- mountPath: /var/lib/kubelet
mountPropagation: Bidirectional
name: kubelet
- image: {{ .CustomRegistries.monitor | default .ImageRepository }}{{ .Images.monitor }}
imagePullPolicy: Always
name: monitor
ports:
- containerPort: 19999
hostAliases:
- hostnames:
- coral
- daemon
- monitor
ip: 127.0.0.1
hostPID: true
initContainers:
- env:
- name: DRIVER_SYSROOT_DIR
value: /host
image: {{ .CustomRegistries.driver | default .ImageRepository }}{{ .Images.driver }}
name: driver
securityContext:
privileged: true
volumeMounts:
- mountPath: /host
name: host
- env:
- name: MKRT_CONFIG_PATH
value: /etc/inaccel/runtimes
- name: MKRT_SYSROOT_DIR
value: /host
image: {{ .CustomRegistries.mkrt | default .ImageRepository }}{{ .Images.mkrt }}
name: mkrt
volumeMounts:
- mountPath: /host
name: host
readOnly: true
- mountPath: /var/opt/inaccel/runtimes
name: data-root
subPath: runtimes
priorityClassName: system-node-critical
serviceAccountName: fpga-operator
volumes:
- emptyDir: {}
name: data-root
- hostPath:
path: /
name: host
- hostPath:
path: /var/lib/kubelet
name: kubelet
- hostPath:
path: /etc/localtime
name: localtime
- hostPath:
path: /var/lib/inaccel
type: DirectoryOrCreate
name: state-root
- hostPath:
path: /sys
name: sys
---
# Source: fpga-operator/templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
helm.sh/chart: fpga-operator-2.5.4
app.kubernetes.io/name: fpga-operator
app.kubernetes.io/instance: inaccel
app.kubernetes.io/version: "2.1"
app.kubernetes.io/managed-by: Minikube
name: fpga-operator
namespace: kube-system
spec:
replicas: 1
selector:
matchLabels:
kind: Deployment
app.kubernetes.io/name: fpga-operator
app.kubernetes.io/instance: inaccel
template:
metadata:
annotations:
kubectl.kubernetes.io/default-container: reef
labels:
kind: Deployment
helm.sh/chart: fpga-operator-2.5.4
app.kubernetes.io/name: fpga-operator
app.kubernetes.io/instance: inaccel
app.kubernetes.io/version: "2.1"
app.kubernetes.io/managed-by: Minikube
spec:
containers:
- args:
- --debug=false
image: {{ .CustomRegistries.reef | default .ImageRepository }}{{ .Images.reef }}
name: reef
volumeMounts:
- mountPath: /etc/inaccel
name: config-root
readOnly: true
hostAliases:
- hostnames:
- reef
ip: 127.0.0.1
initContainers:
- args:
- init
env:
- name: MUTATING_WEBHOOK_CONFIGURATION_NAME
value: fpga-operator
image: {{ .CustomRegistries.reef | default .ImageRepository }}{{ .Images.reef }}
name: reef-init
volumeMounts:
- mountPath: /etc/inaccel
name: config-root
priorityClassName: system-cluster-critical
serviceAccountName: fpga-operator
volumes:
- emptyDir: {}
name: config-root
---
# Source: fpga-operator/templates/csi-driver.yaml
apiVersion: storage.k8s.io/v1
kind: CSIDriver
metadata:
labels:
helm.sh/chart: fpga-operator-2.5.4
app.kubernetes.io/name: fpga-operator
app.kubernetes.io/instance: inaccel
app.kubernetes.io/version: "2.1"
app.kubernetes.io/managed-by: Minikube
name: inaccel
spec:
attachRequired: false
volumeLifecycleModes:
- Ephemeral
---
# Source: fpga-operator/templates/mutating-webhook-configuration.yaml
apiVersion: admissionregistration.k8s.io/v1
kind: MutatingWebhookConfiguration
metadata:
labels:
helm.sh/chart: fpga-operator-2.5.4
app.kubernetes.io/name: fpga-operator
app.kubernetes.io/instance: inaccel
app.kubernetes.io/version: "2.1"
app.kubernetes.io/managed-by: Minikube
name: fpga-operator
webhooks:
- admissionReviewVersions: ["v1"]
clientConfig:
service:
name: fpga-operator
namespace: kube-system
name: reef.inaccel.com
objectSelector:
matchLabels:
inaccel/fpga: enabled
sideEffects: None
5 changes: 5 additions & 0 deletions pkg/addons/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -192,4 +192,9 @@ var Addons = []*Addon{
set: SetBool,
callbacks: []setFn{EnableOrDisableAddon},
},
{
name: "inaccel",
set: SetBool,
callbacks: []setFn{EnableOrDisableAddon},
},
}
14 changes: 14 additions & 0 deletions pkg/minikube/assets/addons.go
Original file line number Diff line number Diff line change
Expand Up @@ -674,6 +674,20 @@ var Addons = map[string]*Addon{
"portainer.yaml",
"0640"),
}, false, "portainer", "portainer.io", nil, nil),
"inaccel": NewAddon([]*BinAsset{
MustBinAsset(addons.InAccelAssets,
"inaccel/fpga-operator.yaml.tmpl",
vmpath.GuestAddonsDir,
"fpga-operator.yaml",
"0640"),
}, false, "inaccel", "InAccel <info@inaccel.com>", map[string]string{
"coral": "inaccel/coral:2.1",
"daemon": "inaccel/daemon:latest",
"driver": "inaccel/driver:latest",
"mkrt": "inaccel/mkrt:latest",
"monitor": "inaccel/monitor:2.1",
"reef": "inaccel/reef:latest",
}, nil),
}

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

0 comments on commit a3c79a1

Please sign in to comment.