diff --git a/test/e2e/dra/test-driver/README.md b/test/e2e/dra/test-driver/README.md index da67b14c589..81d89389c99 100644 --- a/test/e2e/dra/test-driver/README.md +++ b/test/e2e/dra/test-driver/README.md @@ -59,18 +59,14 @@ RUNTIME_CONFIG="resource.k8s.io/v1alpha3" FEATURE_GATES=DynamicResourceAllocatio ``` In another: -```console -go run ./test/e2e/dra/test-driver --feature-gates ContextualLogging=true -v=5 controller ``` - -In yet another: -```console sudo mkdir -p /var/run/cdi && sudo chmod a+rwx /var/run/cdi /var/lib/kubelet/plugins_registry -go run ./test/e2e/dra/test-driver --feature-gates ContextualLogging=true -v=5 kubelet-plugin --node-name=127.0.0.1 +KUBECONFIG=/var/run/kubernetes/admin.kubeconfig go run ./test/e2e/dra/test-driver -v=5 kubelet-plugin --node-name=127.0.0.1 ``` And finally: ```console +$ export KUBECONFIG=/var/run/kubernetes/admin.kubeconfig $ kubectl create -f test/e2e/dra/test-driver/deploy/example/resourceclass.yaml resourceclass/example created $ kubectl create -f test/e2e/dra/test-driver/deploy/example/pod-inline.yaml diff --git a/test/e2e/dra/test-driver/app/server.go b/test/e2e/dra/test-driver/app/server.go index 251156064e3..043bd239656 100644 --- a/test/e2e/dra/test-driver/app/server.go +++ b/test/e2e/dra/test-driver/app/server.go @@ -184,6 +184,7 @@ func NewCommand() *cobra.Command { fs = kubeletPluginFlagSets.FlagSet("CDI") cdiDir := fs.String("cdi-dir", "/var/run/cdi", "directory for dynamically created CDI JSON files") nodeName := fs.String("node-name", "", "name of the node that the kubelet plugin is responsible for") + numDevices := fs.Int("num-devices", 4, "number of devices to simulate per node") fs = kubeletPlugin.Flags() for _, f := range kubeletPluginFlagSets.FlagSets { fs.AddFlagSet(f) @@ -203,7 +204,7 @@ func NewCommand() *cobra.Command { return errors.New("--node-name not set") } - plugin, err := StartPlugin(cmd.Context(), *cdiDir, *driverName, clientset, *nodeName, FileOperations{}, + plugin, err := StartPlugin(cmd.Context(), *cdiDir, *driverName, clientset, *nodeName, FileOperations{NumDevices: *numDevices}, kubeletplugin.PluginSocketPath(*endpoint), kubeletplugin.RegistrarSocketPath(path.Join(*pluginRegistrationPath, *driverName+"-reg.sock")), kubeletplugin.KubeletPluginSocketPath(*draAddress), diff --git a/test/e2e/dra/test-driver/deploy/example/broken-resourceclass.yaml b/test/e2e/dra/test-driver/deploy/example/broken-resourceclass.yaml deleted file mode 100644 index 0cfb6d6ee76..00000000000 --- a/test/e2e/dra/test-driver/deploy/example/broken-resourceclass.yaml +++ /dev/null @@ -1,14 +0,0 @@ -# This storage class intentionally doesn't match any nodes. -# When using it instead of a functional one, scheduling a pod leads to: -# Warning FailedScheduling 16s default-scheduler 0/1 nodes are available: 1 excluded via potential node filter in resource class. - -apiVersion: resource.k8s.io/v1alpha3 -kind: ResourceClass -metadata: - name: example -driverName: test-driver.cdi.k8s.io -suitableNodes: - nodeSelectorTerms: - - matchExpressions: - - key: no-such-label - operator: Exists diff --git a/test/e2e/dra/test-driver/deploy/example/deviceclass.yaml b/test/e2e/dra/test-driver/deploy/example/deviceclass.yaml index 44f4fcf4686..c0b5cfd5aa6 100644 --- a/test/e2e/dra/test-driver/deploy/example/deviceclass.yaml +++ b/test/e2e/dra/test-driver/deploy/example/deviceclass.yaml @@ -1,5 +1,5 @@ -apiVersion: resource.k8s.io/v1alpha3 -kind: ResourceClass +apiVersion: resource.k8s.io/v1beta1 +kind: DeviceClass metadata: name: example spec: diff --git a/test/e2e/dra/test-driver/deploy/example/pod-external.yaml b/test/e2e/dra/test-driver/deploy/example/pod-external.yaml index 304dd903d4e..b2dfabd3450 100644 --- a/test/e2e/dra/test-driver/deploy/example/pod-external.yaml +++ b/test/e2e/dra/test-driver/deploy/example/pod-external.yaml @@ -1,22 +1,19 @@ # One external resource claim, one pod, two containers. # One container uses resource, one does not. -apiVersion: v1 -kind: ConfigMap -metadata: - name: external-claim-parameters - namespace: default -data: - a: b ---- -apiVersion: resource.k8s.io/v1alpha3 +apiVersion: resource.k8s.io/v1beta1 kind: ResourceClaim metadata: name: external-claim spec: - resourceClassName: example - parametersRef: - kind: ConfigMap - name: external-claim-parameters + devices: + requests: + - name: my-device + deviceClassName: example + config: + - opaque: + driver: test-driver.cdi.k8s.io + parameters: + a: b --- apiVersion: v1 kind: Pod @@ -30,7 +27,7 @@ spec: command: ["sh", "-c", "set && mount && ls -la /dev/"] resources: claims: - - resource + - name: resource - name: without-resource image: registry.k8s.io/e2e-test-images/busybox:1.29-2 command: ["sh", "-c", "set && mount && ls -la /dev/"] diff --git a/test/e2e/dra/test-driver/deploy/example/pod-inline-multiple.yaml b/test/e2e/dra/test-driver/deploy/example/pod-inline-multiple.yaml index a859834cb6b..520935c5926 100644 --- a/test/e2e/dra/test-driver/deploy/example/pod-inline-multiple.yaml +++ b/test/e2e/dra/test-driver/deploy/example/pod-inline-multiple.yaml @@ -1,12 +1,4 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - name: pause-claim-parameters - namespace: default -data: - a: b ---- -apiVersion: resource.k8s.io/v1alpha3 +apiVersion: resource.k8s.io/v1beta1 kind: ResourceClaimTemplate metadata: name: pause-template @@ -16,10 +8,15 @@ spec: labels: app: inline-resource spec: - resourceClassName: example - parametersRef: - kind: ConfigMap - name: pause-claim-parameters + devices: + requests: + - name: my-device + deviceClassName: example + config: + - opaque: + driver: test-driver.cdi.k8s.io + parameters: + a: b --- apiVersion: v1 kind: Pod diff --git a/test/e2e/dra/test-driver/deploy/example/pod-inline.yaml b/test/e2e/dra/test-driver/deploy/example/pod-inline.yaml index 10619b12e3e..8ce6fda8022 100644 --- a/test/e2e/dra/test-driver/deploy/example/pod-inline.yaml +++ b/test/e2e/dra/test-driver/deploy/example/pod-inline.yaml @@ -1,14 +1,6 @@ # One inline resource claim, one pod, two containers. # One container uses resource, one does not. -apiVersion: v1 -kind: ConfigMap -metadata: - name: test-inline-claim-parameters - namespace: default -data: - a: b ---- -apiVersion: resource.k8s.io/v1alpha3 +apiVersion: resource.k8s.io/v1beta1 kind: ResourceClaimTemplate metadata: name: test-inline-claim-template @@ -18,10 +10,15 @@ spec: labels: app: inline-resource spec: - resourceClassName: example - parametersRef: - kind: ConfigMap - name: test-inline-claim-parameters + devices: + requests: + - name: my-device + deviceClassName: example + config: + - opaque: + driver: test-driver.cdi.k8s.io + parameters: + a: b --- apiVersion: v1 kind: Pod diff --git a/test/e2e/dra/test-driver/deploy/example/pod-shared.yaml b/test/e2e/dra/test-driver/deploy/example/pod-shared.yaml index 164ed41fa60..f33bc138c05 100644 --- a/test/e2e/dra/test-driver/deploy/example/pod-shared.yaml +++ b/test/e2e/dra/test-driver/deploy/example/pod-shared.yaml @@ -1,22 +1,20 @@ # One external resource claim, two pods, two containers in each pod. # Pods share the same resource. # One container uses resource, one does not. -apiVersion: v1 -kind: ConfigMap -metadata: - name: shared-claim-parameters -data: - a: b ---- -apiVersion: resource.k8s.io/v1alpha3 +apiVersion: resource.k8s.io/v1beta1 kind: ResourceClaim metadata: name: shared-claim spec: - resourceClassName: example - parametersRef: - kind: ConfigMap - name: shared-claim-parameters + devices: + requests: + - name: my-device + deviceClassName: example + config: + - opaque: + driver: test-driver.cdi.k8s.io + parameters: + a: b --- apiVersion: v1 kind: Pod