- [X] APISnoop org-flow : StorageV1CSINode-LifecycleTest.org
- [ ] test approval issue : !
- [ ] test pr : !
- [ ] two weeks soak start date : testgrid-link
- [ ] two weeks soak end date : xxxx-xx-xx
- [ ] test promotion pr : !
According to following APIsnoop query, there are six CSINode endpoints that are untested.
select endpoint,
path,
kind
from testing.untested_stable_endpoint
where eligible is true
and endpoint ilike '%CSINode'
order by kind, endpoint
limit 10;
endpoint | path | kind
----------------------------------+-----------------------------------------+---------
createStorageV1CSINode | /apis/storage.k8s.io/v1/csinodes | CSINode
deleteStorageV1CollectionCSINode | /apis/storage.k8s.io/v1/csinodes | CSINode
deleteStorageV1CSINode | /apis/storage.k8s.io/v1/csinodes/{name} | CSINode
listStorageV1CSINode | /apis/storage.k8s.io/v1/csinodes | CSINode
patchStorageV1CSINode | /apis/storage.k8s.io/v1/csinodes/{name} | CSINode
replaceStorageV1CSINode | /apis/storage.k8s.io/v1/csinodes/{name} | CSINode
(6 rows)
- https://apisnoop.cncf.io/1.31.0/stable/storage/createStorageV1CSINode
- https://apisnoop.cncf.io/1.31.0/stable/storage/deleteStorageV1CSINode
- https://apisnoop.cncf.io/1.31.0/stable/storage/deleteStorageV1CollectionCSINode
- https://apisnoop.cncf.io/1.31.0/stable/storage/listStorageV1CSINode
- https://apisnoop.cncf.io/1.31.0/stable/storage/patchStorageV1CSINode
- https://apisnoop.cncf.io/1.31.0/stable/storage/replaceStorageV1CSINode
- Kubernetes API Reference Docs
- Kubernetes API / Config and Storage Resources / CSINode
- client-go - CSINode
Scenario: Test the lifecycle of a CSINode Given the e2e test has created the settings for a Node When the test creates the Node Then the requested action is accepted without any error And the test confirms the name of the created Node Given the e2e test has created a Node When the test reads the Node Then the requested action is accepted without any error And the test confirms the name of the Node Given the e2e test has created the settings for a CSINode When the test creates the CSINode Then the requested action is accepted without any error And the test confirms the name of the created CSINode Given the e2e test has created a CSINode When the test reads the CSINode Then the requested action is accepted without any error And the test confirms the name of the read CSINode Given the e2e test has read a CSINode When the test patches the CSINode with a label Then the requested action is accepted without any error And the test confirms that the "patched" label is found Given the e2e test has patched a CSINode and created a "patched" LabelSelector When the test lists the CSINode with a "patched" labelSelector Then the requested action is accepted without any error And the retrieved list has a single item Given the e2e test has listed the CSINode When the test deletes the CSINode Then the requested action is accepted without any error Given the e2e test has deleted the CSINode When the test lists the CSINode with a "patched" labelSelector Then the requested action is accepted without any error And the deletion of the CSINode is confirmed Given the e2e test has confirmed the deletion of the CSINode When the test deletes the Node Then the requested action is accepted without any error Given the e2e test has deleted the Node When the test gets the Node Then the requested action is accepted without any error And the deletion of the Node is confirmed Given the e2e test has no Node When the test recreates a replacement Node Then the requested action is accepted without any error And the test confirms the name of the created Node Given the e2e test has no CSINode When the test recreates a replacement CSINode Then the requested action is accepted without any error And the test confirms the name of the created CSINode Given the e2e test has created a replacement CSINode When the test reads the CSINode Then the requested action is accepted without any error And the test confirms the name of the read CSINode Given the e2e test has read the replacement CSINode When the test updates the CSINode with a label Then the requested action is accepted without any error And the test confirms that the "updated" label is found Given the e2e test has created a "updated" LabelSelector for the replacement CSINode When the test applies the deleteCollection action with an "updated" labelSelector Then the requested action is accepted without any error Given the e2e test has deleted the replacement CSINode When the test lists the CSINode with an "updated" labelSelector Then the requested action is accepted without any error And the deletion of the CSINode is confirmed Given the e2e test has confirmed the deleted the replacement CSINode When the test deletes the Node Then the requested action is accepted without any error Given the e2e test has deleted the replacement Node When the test gets the replacement Node Then the requested action is accepted without any error And the deletion of the Node is confirmed
Using a number of existing e2e test practices a new ginkgo test has been created to provide future Conformance coverage for the 7 endpoints. The e2e logs for this test are listed below.
[sig-storage] CSINodes CSI Conformance should run through the lifecycle of a csinode [sig-storage] /home/ii/go/src/k8s.io/kubernetes/test/e2e/storage/csi_node.go:45 STEP: Creating a kubernetes client @ 09/12/24 11:53:05.724 I0912 11:53:05.724978 286994 util.go:502] >>> kubeConfig: /home/ii/.kube/config STEP: Building a namespace api object, basename csinodes @ 09/12/24 11:53:05.725 STEP: Waiting for a default service account to be provisioned in namespace @ 09/12/24 11:53:05.748 STEP: Waiting for kube-root-ca.crt to be provisioned in namespace @ 09/12/24 11:53:05.749 STEP: Creating initial node "e2e-fake-node-9wncg" @ 09/12/24 11:53:05.763 STEP: Getting initial node: "e2e-fake-node-9wncg" @ 09/12/24 11:53:05.772 STEP: Creating initial csiNode "e2e-fake-node-9wncg" @ 09/12/24 11:53:05.775 STEP: Getting initial csiNode "e2e-fake-node-9wncg" @ 09/12/24 11:53:05.784 STEP: Patching initial csiNode: "e2e-fake-node-9wncg" @ 09/12/24 11:53:05.787 STEP: Listing csiNodes with LabelSelector "e2e-fake-node-9wncg=patched" @ 09/12/24 11:53:05.797 STEP: Delete initial csiNode: "e2e-fake-node-9wncg" @ 09/12/24 11:53:05.81 STEP: Confirm deletion of csiNode with LabelSelector "e2e-fake-node-9wncg=patched" @ 09/12/24 11:53:05.83 STEP: Delete initial node "e2e-fake-node-9wncg" @ 09/12/24 11:53:05.833 STEP: Confirm deletion of node "e2e-fake-node-9wncg" @ 09/12/24 11:53:05.842 STEP: Creating replacement node "e2e-fake-node-gvm52" @ 09/12/24 11:53:05.846 STEP: Getting replacement node: "e2e-fake-node-gvm52" @ 09/12/24 11:53:05.854 STEP: Creating replacement csiNode "e2e-fake-node-gvm52" @ 09/12/24 11:53:05.858 STEP: Getting replacement csiNode "e2e-fake-node-gvm52" @ 09/12/24 11:53:05.868 STEP: Updating replacement csiNode "e2e-fake-node-gvm52" @ 09/12/24 11:53:05.875 STEP: DeleteCollection of CSINodes with "e2e-fake-node-gvm52=updated" label @ 09/12/24 11:53:05.886 STEP: Confirm deletion of replacement csiNode with LabelSelector "e2e-fake-node-gvm52=updated" @ 09/12/24 11:53:05.902 STEP: Delete replacement node "e2e-fake-node-gvm52" @ 09/12/24 11:53:05.906 STEP: Confirm deletion of replacement node "e2e-fake-node-gvm52" @ 09/12/24 11:53:05.915 I0912 11:53:05.919018 286994 helper.go:122] Waiting up to 7m0s for all (but 0) nodes to be ready STEP: Destroying namespace "csinodes-5354" for this suite. @ 09/12/24 11:53:05.922
This query shows the following CSINode endpoints are hit within a short period of running this e2e test.
select distinct substring(endpoint from '\w+') AS endpoint,
right(useragent,45) AS useragent
from testing.audit_event
where useragent like 'e2e%should%'
and release_date::BIGINT > round(((EXTRACT(EPOCH FROM NOW()))::numeric)*1000,0) - 20000
and endpoint ilike '%CSINode%'
order by endpoint
limit 10;
endpoint | useragent
----------------------------------+-----------------------------------------------
createStorageV1CSINode | should run through the lifecycle of a csinode
deleteStorageV1CollectionCSINode | should run through the lifecycle of a csinode
deleteStorageV1CSINode | should run through the lifecycle of a csinode
listStorageV1CSINode | should run through the lifecycle of a csinode
patchStorageV1CSINode | should run through the lifecycle of a csinode
readStorageV1CSINode | should run through the lifecycle of a csinode
replaceStorageV1CSINode | should run through the lifecycle of a csinode
(7 rows)
If a test with these calls gets merged, test coverage will go up by 6 points
This test is also created with the goal of conformance promotion.
/sig testing
/sig architecture
/area conformance