From 062b5f82eaadf940bcff754ca282f1c0ff32064f Mon Sep 17 00:00:00 2001 From: dougbtv Date: Wed, 26 Mar 2025 14:58:05 -0400 Subject: [PATCH] [stub] stubbing in daemonset and yaml resources, updates driver name for now to try it --- cmd/dra-multus-driver/cdi.go | 2 +- deployments/dra.yml | 101 ++++++++++++++++++ hack/build-go.sh | 2 + images/Dockerfile.thick | 1 + .../resource/gpu/v1alpha1/api.go | 2 +- .../resource/gpu/v1alpha1/doc.go | 2 +- 6 files changed, 107 insertions(+), 3 deletions(-) create mode 100644 deployments/dra.yml diff --git a/cmd/dra-multus-driver/cdi.go b/cmd/dra-multus-driver/cdi.go index 334708a17..0f0a32cab 100644 --- a/cmd/dra-multus-driver/cdi.go +++ b/cmd/dra-multus-driver/cdi.go @@ -29,7 +29,7 @@ const ( cdiVendor = "k8s." + DriverName cdiClass = "gpu" cdiKind = cdiVendor + "/" + cdiClass - DriverName = "gpu.example.com" + DriverName = "gpu.multus-cni.io" cdiCommonDeviceName = "common" ) diff --git a/deployments/dra.yml b/deployments/dra.yml new file mode 100644 index 000000000..04e8a1fa7 --- /dev/null +++ b/deployments/dra.yml @@ -0,0 +1,101 @@ +--- +apiVersion: resource.k8s.io/v1beta1 +kind: DeviceClass +metadata: + name: gpu.multus-cni.io +spec: + selectors: + - cel: + expression: "device.driver == 'gpu.multus-cni.io'" +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: dra-multus-driver + namespace: default +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: dra-multus-driver-role +rules: +- apiGroups: ["resource.k8s.io"] + resources: ["resourceclaims"] + verbs: ["get"] +- apiGroups: [""] + resources: ["nodes"] + verbs: ["get"] +- apiGroups: ["resource.k8s.io"] + resources: ["resourceslices"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: dra-multus-driver-role-binding +subjects: +- kind: ServiceAccount + name: dra-multus-driver + namespace: default +roleRef: + kind: ClusterRole + name: dra-multus-driver-role + apiGroup: rbac.authorization.k8s.io +--- +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: dra-multus-driver + namespace: default + labels: + app: dra-multus-driver +spec: + selector: + matchLabels: + app: dra-multus-driver + updateStrategy: + type: RollingUpdate + template: + metadata: + labels: + app: dra-multus-driver + spec: + priorityClassName: system-node-critical + serviceAccountName: dra-multus-driver + containers: + - name: plugin + image: dougbtv/dra-multus-driver:dev + imagePullPolicy: IfNotPresent + command: ["/dra-example-driver"] + securityContext: + privileged: true + env: + - name: CDI_ROOT + value: /var/run/cdi + - name: NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + - name: NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: NUM_DEVICES + value: "8" + volumeMounts: + - name: plugins-registry + mountPath: /var/lib/kubelet/plugins_registry + - name: plugins + mountPath: /var/lib/kubelet/plugins + - name: cdi + mountPath: /var/run/cdi + volumes: + - name: plugins-registry + hostPath: + path: /var/lib/kubelet/plugins_registry + - name: plugins + hostPath: + path: /var/lib/kubelet/plugins + - name: cdi + hostPath: + path: /var/run/cdi diff --git a/hack/build-go.sh b/hack/build-go.sh index 2a0893624..677d53134 100755 --- a/hack/build-go.sh +++ b/hack/build-go.sh @@ -80,3 +80,5 @@ echo "Building kubeconfig_generator" go build -o "${DEST_DIR}"/kubeconfig_generator ${BUILD_ARGS} -ldflags "${LDFLAGS}" ./cmd/kubeconfig_generator echo "Building cert-approver" go build -o "${DEST_DIR}"/cert-approver ${BUILD_ARGS} -ldflags "${LDFLAGS}" ./cmd/cert-approver +echo "Building dra-multus-driver" +go build -o "${DEST_DIR}"/dra-multus-driver ${BUILD_ARGS} -ldflags "${LDFLAGS}" ./cmd/dra-multus-driver diff --git a/images/Dockerfile.thick b/images/Dockerfile.thick index 86ba7f807..d9958e57c 100644 --- a/images/Dockerfile.thick +++ b/images/Dockerfile.thick @@ -12,6 +12,7 @@ LABEL org.opencontainers.image.source=https://github.com/k8snetworkplumbingwg/mu COPY --from=build /usr/src/multus-cni/bin /usr/src/multus-cni/bin COPY --from=build /usr/src/multus-cni/LICENSE /usr/src/multus-cni/LICENSE COPY --from=build /usr/src/multus-cni/bin/cert-approver / +COPY --from=build /usr/src/multus-cni/bin/dra-multus-driver / WORKDIR / ENTRYPOINT [ "/usr/src/multus-cni/bin/multus-daemon" ] diff --git a/pkg/dra/api/multus-cni.io/resource/gpu/v1alpha1/api.go b/pkg/dra/api/multus-cni.io/resource/gpu/v1alpha1/api.go index 203d220f9..49b257004 100644 --- a/pkg/dra/api/multus-cni.io/resource/gpu/v1alpha1/api.go +++ b/pkg/dra/api/multus-cni.io/resource/gpu/v1alpha1/api.go @@ -26,7 +26,7 @@ import ( ) const ( - GroupName = "gpu.resource.example.com" + GroupName = "gpu.resource.multus-cni.io" Version = "v1alpha1" GpuConfigKind = "GpuConfig" diff --git a/pkg/dra/api/multus-cni.io/resource/gpu/v1alpha1/doc.go b/pkg/dra/api/multus-cni.io/resource/gpu/v1alpha1/doc.go index 959037fc3..2b2fd53f5 100644 --- a/pkg/dra/api/multus-cni.io/resource/gpu/v1alpha1/doc.go +++ b/pkg/dra/api/multus-cni.io/resource/gpu/v1alpha1/doc.go @@ -15,6 +15,6 @@ */ // +k8s:deepcopy-gen=package -// +groupName=gpu.resource.example.com +// +groupName=gpu.resource.multus-cni.io package v1alpha1