Skip to content

Commit 48e51ae

Browse files
authored
Add NFD rule for Gaudi resource driver (#69)
* add nfd rule Signed-off-by: Oksana Baranova <[email protected]>
1 parent 5326261 commit 48e51ae

File tree

7 files changed

+54
-9
lines changed

7 files changed

+54
-9
lines changed

charts/intel-gaudi-resource-driver/Chart.yaml

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,13 @@ name: intel-gaudi-resource-driver
33
description: A Helm chart for a Dynamic Resource Allocation (DRA) Intel Gaudi Resource Driver
44

55
type: application
6-
version: 0.2.0
7-
appVersion: "v0.2.0"
6+
version: 0.3.0
7+
appVersion: "v0.3.0"
8+
home: https://github.com/intel/helm-charts
9+
10+
dependencies:
11+
- name: node-feature-discovery
12+
alias: nfd
13+
version: "0.16.6"
14+
condition: nfd.enabled
15+
repository: https://kubernetes-sigs.github.io/node-feature-discovery/charts

charts/intel-gaudi-resource-driver/README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@ helm repo update
1616
You can execute `helm search repo intel` command to see pulled charts [optional].
1717

1818
## Install Helm Chart
19+
When installing, update the dependencies:
1920
```
21+
helm dependency update
2022
helm install intel-gaudi-resource-driver intel/intel-gaudi-resource-driver
2123
```
2224
## Upgrade Chart
@@ -43,7 +45,7 @@ You may also run `helm show values` on this chart's dependencies for additional
4345
| image.repository | string | `intel` |
4446
| image.name | string | `"intel-gaudi-resource-driver"` |
4547
| image.pullPolicy | string | `"IfNotPresent"` |
46-
| image.tag | string | `"v0.2.0"` |
48+
| image.tag | string | `"v0.3.0"` |
4749

4850
> [!Note]
49-
> When upgrading, CRDs from previous version need to be removed manually because Helm supports neither upgrading nor deleting CRDs, see: https://github.com/helm/community/blob/main/hips/hip-0011.md
51+
> If you change the image tag to be used in Helm chart deployment, ensure that the version of the container image is consistent with deployment YAMLs - they might change between releases.

charts/intel-gaudi-resource-driver/templates/device-class.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
apiVersion: resource.k8s.io/v1alpha3
1+
apiVersion: resource.k8s.io/v1beta1
22
kind: DeviceClass
33
metadata:
44
name: gaudi.intel.com
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{{- if .Values.nfd.enabled }}
2+
apiVersion: nfd.k8s-sigs.io/v1alpha1
3+
kind: NodeFeatureRule
4+
metadata:
5+
name: intel-gaudi-device-rule
6+
spec:
7+
rules:
8+
- name: "intel.gaudi"
9+
labels:
10+
"intel.feature.node.kubernetes.io/gaudi": "true"
11+
matchFeatures:
12+
- feature: pci.device
13+
matchExpressions:
14+
vendor: {op: In, value: ["1da3"]}
15+
device: {op: In, value: ["1020", "1030"]}
16+
{{- end }}

charts/intel-gaudi-resource-driver/templates/resource-driver.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,10 +73,15 @@ spec:
7373
tolerations:
7474
{{- toYaml . | nindent 8 }}
7575
{{- end }}
76+
{{- if .Values.nfd.enabled }}
77+
nodeSelector:
78+
intel.feature.node.kubernetes.io/gaudi: "true"
79+
{{- else }}
7680
{{- with .Values.kubeletPlugin.nodeSelector }}
7781
nodeSelector:
7882
{{- toYaml . | nindent 8 }}
7983
{{- end }}
84+
{{- end }}
8085
{{- with .Values.kubeletPlugin.affinity }}
8186
affinity:
8287
{{- toYaml . | nindent 8 }}

charts/intel-gaudi-resource-driver/templates/validating-admission-policy.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ spec:
77
matchConstraints:
88
resourceRules:
99
- apiGroups: ["resource.k8s.io"]
10-
apiVersions: ["v1alpha3"]
10+
apiVersions: ["v1beta1"]
1111
operations: ["CREATE", "UPDATE", "DELETE"]
1212
resources: ["resourceslices"]
1313
matchConditions:

charts/intel-gaudi-resource-driver/values.yaml

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ image:
99
repository: intel
1010
name: intel-gaudi-resource-driver
1111
pullPolicy: IfNotPresent
12-
tag: "v0.2.0"
12+
tag: "v0.3.0"
1313

1414
serviceAccount:
1515
create: true
@@ -19,13 +19,27 @@ serviceAccount:
1919

2020
kubeletPlugin:
2121
podAnnotations: {}
22+
nodeSelector: {}
23+
# label used when nfd.enabled is true
24+
#intel.feature.node.kubernetes.io/gaudi: "true"
2225
tolerations:
2326
- key: node-role.kubernetes.io/master
2427
operator: Exists
2528
effect: NoSchedule
2629
- key: node-role.kubernetes.io/control-plane
2730
operator: Exists
2831
effect: NoSchedule
29-
nodeSelector: {}
30-
#node-role.kubernetes.io/control-plane: ""
32+
# Refer to the official documentation for Node Feature Discovery (NFD)
33+
# regarding node tainting:
34+
# https://nfd.sigs.k8s.io/usage/customization-guide#node-tainting
35+
- key: "intel.feature.node.kubernetes.io/gaudi"
36+
operator: "Exists"
37+
effect: "NoSchedule"
3138
affinity: {}
39+
40+
nfd:
41+
enabled: false # change to true to install NFD to the cluster
42+
nameOverride: intel-gaudi-nfd
43+
# TODO: this deprecated NFD option will be replaced in NFD v0.17 with "featureGates.NodeFeatureAPI" (added in v0.16):
44+
# https://kubernetes-sigs.github.io/node-feature-discovery/v0.16/deployment/helm.html#general-parameters
45+
enableNodeFeatureApi: true

0 commit comments

Comments
 (0)