From 859f6182bf220be1d912866e1f3c801143ce6b54 Mon Sep 17 00:00:00 2001 From: Arunkumar Velayutham Date: Fri, 3 Oct 2025 01:29:37 -0400 Subject: [PATCH] Move Intel vsp-p4 plugin yaml context one level above Signed-off-by: Arunkumar Velayutham --- .../bindata/vsp/intel-ipu/01.vsp_p4_pv.yaml | 24 +++++++ .../bindata/vsp/intel-ipu/02.vsp_p4_pvc.yaml | 13 ++++ .../bindata/vsp/intel-ipu/03.vsp_p4_sa.yaml | 5 ++ .../bindata/vsp/intel-ipu/04.vsp_p4_role.yaml | 25 +++++++ .../vsp/intel-ipu/05.vsp_p4_role_binding.yaml | 13 ++++ .../vsp/intel-ipu/06.vsp_p4_service.yaml | 12 ++++ .../bindata/vsp/intel-ipu/07.vsp_p4.yaml | 67 +++++++++++++++++++ .../{99.vsp-pod.yaml => 08.vsp-pod.yaml} | 0 .../dataprocessingunit_controller.go | 1 + 9 files changed, 160 insertions(+) create mode 100644 internal/controller/bindata/vsp/intel-ipu/01.vsp_p4_pv.yaml create mode 100644 internal/controller/bindata/vsp/intel-ipu/02.vsp_p4_pvc.yaml create mode 100644 internal/controller/bindata/vsp/intel-ipu/03.vsp_p4_sa.yaml create mode 100644 internal/controller/bindata/vsp/intel-ipu/04.vsp_p4_role.yaml create mode 100644 internal/controller/bindata/vsp/intel-ipu/05.vsp_p4_role_binding.yaml create mode 100644 internal/controller/bindata/vsp/intel-ipu/06.vsp_p4_service.yaml create mode 100644 internal/controller/bindata/vsp/intel-ipu/07.vsp_p4.yaml rename internal/controller/bindata/vsp/intel-ipu/{99.vsp-pod.yaml => 08.vsp-pod.yaml} (100%) diff --git a/internal/controller/bindata/vsp/intel-ipu/01.vsp_p4_pv.yaml b/internal/controller/bindata/vsp/intel-ipu/01.vsp_p4_pv.yaml new file mode 100644 index 000000000..3dad774ff --- /dev/null +++ b/internal/controller/bindata/vsp/intel-ipu/01.vsp_p4_pv.yaml @@ -0,0 +1,24 @@ +apiVersion: v1 +kind: PersistentVolume +metadata: + name: vsp-p4-pv + namespace: {{.Namespace}} +spec: + selector: + app: vsp-p4 + capacity: + storage: 3Gi + accessModes: + - ReadWriteMany + persistentVolumeReclaimPolicy: Retain + local: + path: /opt/p4/ + storageClassName: local-storage + nodeAffinity: + required: + nodeSelectorTerms: + - matchExpressions: + - key: kubernetes.io/hostname + operator: In + values: + - {{.HostName}} diff --git a/internal/controller/bindata/vsp/intel-ipu/02.vsp_p4_pvc.yaml b/internal/controller/bindata/vsp/intel-ipu/02.vsp_p4_pvc.yaml new file mode 100644 index 000000000..b9ff1d3ca --- /dev/null +++ b/internal/controller/bindata/vsp/intel-ipu/02.vsp_p4_pvc.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: vsp-p4-pvc + namespace: {{.Namespace}} +spec: + accessModes: + - ReadWriteMany + provisioner: kubernetes.io/no-provisioner + resources: + requests: + storage: 3Gi + storageClassName: local-storage diff --git a/internal/controller/bindata/vsp/intel-ipu/03.vsp_p4_sa.yaml b/internal/controller/bindata/vsp/intel-ipu/03.vsp_p4_sa.yaml new file mode 100644 index 000000000..dd0a15c23 --- /dev/null +++ b/internal/controller/bindata/vsp/intel-ipu/03.vsp_p4_sa.yaml @@ -0,0 +1,5 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: vsp-p4-sa + namespace: {{.Namespace}} diff --git a/internal/controller/bindata/vsp/intel-ipu/04.vsp_p4_role.yaml b/internal/controller/bindata/vsp/intel-ipu/04.vsp_p4_role.yaml new file mode 100644 index 000000000..e1909ce16 --- /dev/null +++ b/internal/controller/bindata/vsp/intel-ipu/04.vsp_p4_role.yaml @@ -0,0 +1,25 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: vsp-p4-role + namespace: {{.Namespace}} +rules: +- apiGroups: + - security.openshift.io + resourceNames: + - privileged + resources: + - securitycontextconstraints + verbs: + - use +- apiGroups: + - apps + resources: + - daemonsets + verbs: + - get + - list + - watch + - create + - update + - delete diff --git a/internal/controller/bindata/vsp/intel-ipu/05.vsp_p4_role_binding.yaml b/internal/controller/bindata/vsp/intel-ipu/05.vsp_p4_role_binding.yaml new file mode 100644 index 000000000..0540653d8 --- /dev/null +++ b/internal/controller/bindata/vsp/intel-ipu/05.vsp_p4_role_binding.yaml @@ -0,0 +1,13 @@ +kind: RoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: vsp-p4-role-binding + namespace: {{.Namespace}} +subjects: +- kind: ServiceAccount + name: vsp-p4-sa +roleRef: + kind: Role + name: vsp-p4-role + apiGroup: rbac.authorization.k8s.io + diff --git a/internal/controller/bindata/vsp/intel-ipu/06.vsp_p4_service.yaml b/internal/controller/bindata/vsp/intel-ipu/06.vsp_p4_service.yaml new file mode 100644 index 000000000..045f0ad44 --- /dev/null +++ b/internal/controller/bindata/vsp/intel-ipu/06.vsp_p4_service.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: vsp-p4-service + namespace: {{.Namespace}} +spec: + selector: + app: vsp-p4 + ports: + - protocol: TCP + port: 9559 + targetPort: 9559 diff --git a/internal/controller/bindata/vsp/intel-ipu/07.vsp_p4.yaml b/internal/controller/bindata/vsp/intel-ipu/07.vsp_p4.yaml new file mode 100644 index 000000000..fefcdcc26 --- /dev/null +++ b/internal/controller/bindata/vsp/intel-ipu/07.vsp_p4.yaml @@ -0,0 +1,67 @@ +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: vsp-p4 + namespace: {{.Namespace}} +spec: + selector: + matchLabels: + app: vsp-p4 + template: + metadata: + labels: + app: vsp-p4 + spec: + nodeSelector: + dpu: "true" + serviceAccountName: vsp-p4-sa + containers: + - name: p4-container + image: {{.IntelVspP4Image}} + securityContext: + privileged: true + ports: + - containerPort: 9559 + hostPort: 9559 + resources: + requests: + cpu: 500m + memory: 4Gi + hugepages-2Mi: 256Mi + limits: + cpu: 1 + memory: 4Gi + hugepages-2Mi: 256Mi + volumeMounts: + - name: lib-modules + mountPath: /lib/modules/ + - name: var-run + mountPath: /opt/p4/p4-cp-nws/var/run + - name: sys + mountPath: /sys + - name: dev + mountPath: /dev + - name: hugepages + mountPath: /dev/hugepages + - name: opt-p4 + mountPath: /opt/p4 + dnsPolicy: ClusterFirstWithHostNet + volumes: + - name: lib-modules + hostPath: + path: /lib/modules/ + - name: var-run + hostPath: + path: /opt/p4/p4-cp-nws/var/run + - name: sys + hostPath: + path: /sys + - name: dev + hostPath: + path: /dev + - name: hugepages + hostPath: + path: /dev/hugepages + - name: opt-p4 + persistentVolumeClaim: + claimName: vsp-p4-pvc diff --git a/internal/controller/bindata/vsp/intel-ipu/99.vsp-pod.yaml b/internal/controller/bindata/vsp/intel-ipu/08.vsp-pod.yaml similarity index 100% rename from internal/controller/bindata/vsp/intel-ipu/99.vsp-pod.yaml rename to internal/controller/bindata/vsp/intel-ipu/08.vsp-pod.yaml diff --git a/internal/controller/dataprocessingunit_controller.go b/internal/controller/dataprocessingunit_controller.go index 167412140..3a409870a 100644 --- a/internal/controller/dataprocessingunit_controller.go +++ b/internal/controller/dataprocessingunit_controller.go @@ -142,6 +142,7 @@ func (r *DataProcessingUnitReconciler) ensureVSPResources(ctx context.Context, d "VspName": r.getVSPName(dpu), "DpuName": dpu.Name, "NodeName": dpu.Spec.NodeName, + "HostName": dpu.Spec.NodeName, "VendorSpecificPluginImage": vspImage, "ImagePullPolicy": r.imagePullPolicy, "Command": "[]",