Skip to content

OCPNODE-4224: Migrating test case OCP-70987 from OTP to origin#30948

Open
Chandan9112 wants to merge 1 commit intoopenshift:mainfrom
Chandan9112:migrate-devfuse-70987
Open

OCPNODE-4224: Migrating test case OCP-70987 from OTP to origin#30948
Chandan9112 wants to merge 1 commit intoopenshift:mainfrom
Chandan9112:migrate-devfuse-70987

Conversation

@Chandan9112
Copy link
Copy Markdown
Contributor

@Chandan9112 Chandan9112 commented Apr 1, 2026

Adds automated test case OCP-70987 migrated from openshift-tests-private. The test validates:

  • Pod with io.kubernetes.cri-o.Devices annotation for /dev/fuse starts successfully
  • /dev/fuse device is mounted and accessible inside the pod

Here is the test case link: Polarian-70987

It passed successfully while executing on a live OCP 4.22 cluster:

  ~ oc version
Client Version: 4.21.0
Kustomize Version: v5.7.1
Server Version: 4.22.0-0.nightly-2026-03-29-173136
Kubernetes Version: v1.35.2

./openshift-tests run-test "[sig-node] [Jira:Node/CRI-O] CRI-O [OTP] Allow dev fuse by default in CRI-O [OCP-70987] [Suite:openshift/conformance/parallel]"

   Running Suite:  - /Users/cmaurya/go/src/github.com/openshift/origin
  ===================================================================
  Random Seed: 1775132337 - will randomize all specs

  Will run 1 of 1 specs
  ------------------------------
  [sig-node] [Jira:Node/Kubelet] Kubelet, CRI-O, CPU manager [OTP] Allow dev fuse by default in CRI-O [OCP-70987]
  github.com/openshift/origin/test/extended/node/node_e2e/node.go:111
    STEP: Creating a kubernetes client @ 04/02/26 17:49:01.925
  I0402 17:49:01.926739   19285 discovery.go:214] Invalidating discovery information
  I0402 17:49:01.931666 19285 framework.go:2330] [precondition-check] checking if cluster is MicroShift
  I0402 17:49:02.216955 19285 framework.go:2353] IsMicroShiftCluster: microshift-version configmap not found, not MicroShift
    STEP: Create a test namespace @ 04/02/26 17:49:02.217
  namespace/devfuse-test created
    STEP: Create a pod with dev fuse annotation @ 04/02/26 17:49:03.048
  pod/pod-devfuse created
    STEP: Wait for pod to be ready @ 04/02/26 17:49:04.395
    STEP: Check /dev/fuse is mounted inside the pod @ 04/02/26 17:49:10.108
  I0402 17:49:11.492082 19285 node.go:142] /dev/fuse mount output: File: /dev/fuse
    Size: 0             Blocks: 0          IO Block: 4096   character special file
  Device: 1000b8h/1048760d      Inode: 6           Links: 1     Device type: a,e5
  Access: (0666/crw-rw-rw-)  Uid: (    0/    root)   Gid: (    0/    root)
  Access: 2026-04-02 12:19:05.137101693 +0000
  Modify: 2026-04-02 12:19:05.137101693 +0000
  Change: 2026-04-02 12:19:05.137101693 +0000
   Birth: -
  namespace "devfuse-test" deleted
  • [22.133 seconds]
  ------------------------------

  Ran 1 of 1 Specs in 22.134 seconds
  SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped
[
  {
    "name": "[sig-node] [Jira:Node/Kubelet] Kubelet, CRI-O, CPU manager [OTP] Allow dev fuse by default in CRI-O [OCP-70987] [Suite:openshift/conformance/parallel]",
    "lifecycle": "blocking",
    "duration": 22134,
    "startTime": "2026-04-02 12:19:01.906036 UTC",
    "endTime": "2026-04-02 12:19:24.040780 UTC",
    "result": "passed",
    "output": "  STEP: Creating a kubernetes client @ 04/02/26 17:49:01.925\nI0402 17:49:01.931666 19285 framework.go:2330] [precondition-check] checking if cluster is MicroShift\nI0402 17:49:02.216955 19285 framework.go:2353] IsMicroShiftCluster: microshift-version configmap not found, not MicroShift\n  STEP: Create a test namespace @ 04/02/26 17:49:02.217\nnamespace/devfuse-test created\n  STEP: Create a pod with dev fuse annotation @ 04/02/26 17:49:03.048\npod/pod-devfuse created\n  STEP: Wait for pod to be ready @ 04/02/26 17:49:04.395\n  STEP: Check /dev/fuse is mounted inside the pod @ 04/02/26 17:49:10.108\nI0402 17:49:11.492082 19285 node.go:142] /dev/fuse mount output: File: /dev/fuse\n  Size: 0         \tBlocks: 0          IO Block: 4096   character special file\nDevice: 1000b8h/1048760d\tInode: 6           Links: 1     Device type: a,e5\nAccess: (0666/crw-rw-rw-)  Uid: (    0/    root)   Gid: (    0/    root)\nAccess: 2026-04-02 12:19:05.137101693 +0000\nModify: 2026-04-02 12:19:05.137101693 +0000\nChange: 2026-04-02 12:19:05.137101693 +0000\n Birth: -\nnamespace \"devfuse-test\" deleted\n",
    "error": "    STEP: Creating a kubernetes client @ 04/02/26 17:49:01.925\n  I0402 17:49:01.926739   19285 discovery.go:214] Invalidating discovery information\n  I0402 17:49:01.931666 19285 framework.go:2330] [precondition-check] checking if cluster is MicroShift\n  I0402 17:49:02.216955 19285 framework.go:2353] IsMicroShiftCluster: microshift-version configmap not found, not MicroShift\n    STEP: Create a test namespace @ 04/02/26 17:49:02.217\n  namespace/devfuse-test created\n    STEP: Create a pod with dev fuse annotation @ 04/02/26 17:49:03.048\n  pod/pod-devfuse created\n    STEP: Wait for pod to be ready @ 04/02/26 17:49:04.395\n    STEP: Check /dev/fuse is mounted inside the pod @ 04/02/26 17:49:10.108\n  I0402 17:49:11.492082 19285 node.go:142] /dev/fuse mount output: File: /dev/fuse\n    Size: 0         \tBlocks: 0          IO Block: 4096   character special file\n  Device: 1000b8h/1048760d\tInode: 6           Links: 1     Device type: a,e5\n  Access: (0666/crw-rw-rw-)  Uid: (    0/    root)   Gid: (    0/    root)\n  Access: 2026-04-02 12:19:05.137101693 +0000\n  Modify: 2026-04-02 12:19:05.137101693 +0000\n  Change: 2026-04-02 12:19:05.137101693 +0000\n   Birth: -\n  namespace \"devfuse-test\" deleted\n"

cc: @asahay19 , @lyman9966

@openshift-ci-robot
Copy link
Copy Markdown

Pipeline controller notification
This repo is configured to use the pipeline controller. Second-stage tests will be triggered either automatically or after lgtm label is added, depending on the repository configuration. The pipeline controller will automatically detect which contexts are required and will utilize /test Prow commands to trigger the second stage.

For optional jobs, comment /test ? to see a list of all defined jobs. To trigger manually all jobs from second stage use /pipeline required command.

This repository is configured in: automatic mode

@openshift-ci-robot
Copy link
Copy Markdown

@Chandan9112: No Jira issue with key OCP-70987 exists in the tracker at https://redhat.atlassian.net.
Once a valid jira issue is referenced in the title of this pull request, request a refresh with /jira refresh.

Details

In response to this:

Automates test case OCP-70987 which verifies that /dev/fuse is allowed by default in CRI-O using the io.kubernetes.cri-o.Devices annotation.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci openshift-ci bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Apr 1, 2026
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci bot commented Apr 1, 2026

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 1, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 63039ac0-b3cc-4db6-bf43-efe9b510f839

📥 Commits

Reviewing files that changed from the base of the PR and between c7dc96e and e3a9805.

📒 Files selected for processing (3)
  • test/extended/node/node_e2e/node.go
  • test/extended/testdata/bindata.go
  • test/extended/testdata/node/node_e2e/pod-dev-fuse.yaml
✅ Files skipped from review due to trivial changes (2)
  • test/extended/testdata/bindata.go
  • test/extended/testdata/node/node_e2e/pod-dev-fuse.yaml
🚧 Files skipped from review as they are similar to previous changes (1)
  • test/extended/node/node_e2e/node.go

Walkthrough

Adds a new node e2e test that applies a pod fixture exposing /dev/fuse, waits for the pod Ready condition, and executes stat /dev/fuse inside the pod to verify the device. Adds the pod YAML fixture and corresponding generated bindata entries.

Changes

Cohort / File(s) Summary
Test Implementation
test/extended/node/node_e2e/node.go
Added a Ginkgo It test that creates a devfuse-test namespace, applies the pod-dev-fuse.yaml fixture (path computed via filepath.Join), polls the pod Ready condition (ignoring transient poll errors), runs stat /dev/fuse inside the pod, and deletes the namespace/pod on teardown.
Fixtures / Generated Testdata
test/extended/testdata/node/node_e2e/pod-dev-fuse.yaml, test/extended/testdata/bindata.go
Added pod-dev-fuse.yaml Pod manifest (annotation io.kubernetes.cri-o.Devices: "/dev/fuse", non-root, seccompProfile: RuntimeDefault, allowPrivilegeEscalation: false, capabilities.drop: ["ALL"]). Updated generated bindata.go to embed the new fixture and expose accessor helpers and bintree entries.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@openshift-ci-robot
Copy link
Copy Markdown

@Chandan9112: No Jira issue with key OCP-70987 exists in the tracker at https://redhat.atlassian.net.
Once a valid jira issue is referenced in the title of this pull request, request a refresh with /jira refresh.

Details

In response to this:

Adds automated test case OCP-70987 migrated from openshift-tests-private. The test validates:

  • Pod with io.kubernetes.cri-o.Devices annotation for /dev/fuse starts successfully
  • /dev/fuse device is mounted and accessible inside the pod

Here is the test case link: Polarian-70987

It passed successfully while executing on a live OCP 4.22 cluster:

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@Chandan9112 Chandan9112 changed the title Automate OCP-70987: Allow dev fuse by default in CRI-O OCPNODE-4224: Migrating test case OCP-70987 from OTP to origin Apr 1, 2026
@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Apr 1, 2026
@openshift-ci-robot
Copy link
Copy Markdown

openshift-ci-robot commented Apr 1, 2026

@Chandan9112: This pull request references OCPNODE-4224 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.22.0" version, but no target version was set.

Details

In response to this:

Adds automated test case OCP-70987 migrated from openshift-tests-private. The test validates:

  • Pod with io.kubernetes.cri-o.Devices annotation for /dev/fuse starts successfully
  • /dev/fuse device is mounted and accessible inside the pod

Here is the test case link: Polarian-70987

It passed successfully while executing on a live OCP 4.22 cluster:

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci-robot
Copy link
Copy Markdown

openshift-ci-robot commented Apr 1, 2026

@Chandan9112: This pull request references OCPNODE-4224 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.22.0" version, but no target version was set.

Details

In response to this:

Adds automated test case OCP-70987 migrated from openshift-tests-private. The test validates:

  • Pod with io.kubernetes.cri-o.Devices annotation for /dev/fuse starts successfully
  • /dev/fuse device is mounted and accessible inside the pod

Here is the test case link: Polarian-70987

It passed successfully while executing on a live OCP 4.22 cluster:

 ~ oc version
Client Version: 4.21.0
Kustomize Version: v5.7.1
Server Version: 4.22.0-0.nightly-2026-03-29-173136
Kubernetes Version: v1.35.2

./openshift-tests run-test "[sig-node] [Jira:Node/CRI-O] CRI-O [OTP] Allow dev fuse by default in CRI-O [OCP-70987] [Suite:openshift/conformance/parallel]"

  Running Suite:  - /Users/cmaurya/go/src/github.com/openshift/origin
 ===================================================================
 Random Seed: 1775022097 - will randomize all specs

 Will run 1 of 1 specs
 ------------------------------
 [sig-node] [Jira:Node/CRI-O] CRI-O [OTP] Allow dev fuse by default in CRI-O [OCP-70987]
 github.com/openshift/origin/test/extended/node/node_e2e/node.go:117
   STEP: Creating a kubernetes client @ 04/01/26 11:11:41.711
 I0401 11:11:41.713018   59840 discovery.go:214] Invalidating discovery information
 I0401 11:11:45.580812 59840 client.go:293] configPath is now "/var/folders/gp/skdk64696bg1pfs3gmdnznv80000gn/T/configfile2796212605"
 I0401 11:11:45.580859 59840 client.go:368] The user is now "e2e-test-node-devfuse-9j8wn-user"
 I0401 11:11:45.580877 59840 client.go:370] Creating project "e2e-test-node-devfuse-9j8wn"
 I0401 11:11:45.976745 59840 client.go:378] Waiting on permissions in project "e2e-test-node-devfuse-9j8wn" ...
 I0401 11:11:47.190955 59840 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs
 I0401 11:11:47.498205 59840 client.go:422] Waiting for ServiceAccount "default" to be provisioned...
 I0401 11:11:48.240142 59840 client.go:422] Waiting for ServiceAccount "builder" to be provisioned...
 I0401 11:11:48.941958 59840 client.go:422] Waiting for ServiceAccount "deployer" to be provisioned...
 I0401 11:11:49.640988 59840 client.go:432] Waiting for RoleBinding "system:image-pullers" to be provisioned...
 I0401 11:11:49.935416 59840 client.go:432] Waiting for RoleBinding "system:image-builders" to be provisioned...
 I0401 11:11:50.240264 59840 client.go:432] Waiting for RoleBinding "system:deployers" to be provisioned...
 I0401 11:11:51.824021 59840 client.go:469] Project "e2e-test-node-devfuse-9j8wn" has been fully provisioned.
   STEP: Create a pod with dev fuse annotation @ 04/01/26 11:11:51.826
 pod/pod-devfuse created
   STEP: Wait for pod to be ready @ 04/01/26 11:11:53.39
   STEP: Check /dev/fuse is mounted inside the pod @ 04/01/26 11:11:59.13
 I0401 11:12:00.520949 59840 node.go:139] /dev/fuse mount output: crw-rw-rw- 1 root root 10, 229 Apr  1 05:41 **fuse**
 pod "pod-devfuse" deleted from e2e-test-node-devfuse-9j8wn namespace
 I0401 11:12:02.902408 59840 client.go:689] Deleted {user.openshift.io/v1, Resource=users  e2e-test-node-devfuse-9j8wn-user}, err: <nil>
 I0401 11:12:03.213906 59840 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-node-devfuse-9j8wn}, err: <nil>
 I0401 11:12:03.527932 59840 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~2A3xpJKcpzTE_Is4Oun3V-kzNF23RlHjuwzfN9EQZc0}, err: <nil>
   STEP: Destroying namespace "e2e-test-node-devfuse-9j8wn" for this suite. @ 04/01/26 11:12:03.528
 • [22.154 seconds]
 ------------------------------

 Ran 1 of 1 Specs in 22.155 seconds
 SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped

cc: @asahay19 , @lyman9966

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@Chandan9112 Chandan9112 marked this pull request as ready for review April 1, 2026 06:18
@openshift-ci openshift-ci bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Apr 1, 2026
@openshift-ci openshift-ci bot requested review from cpmeadors and deads2k April 1, 2026 06:19
Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
test/extended/node/node_e2e/node.go (1)

127-133: Consider using context-aware polling.

wait.Poll is deprecated in favor of wait.PollUntilContextTimeout. However, the existing test in this file uses the same pattern, so this can be addressed in a follow-up.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@test/extended/node/node_e2e/node.go` around lines 127 - 133, The code uses
deprecated wait.Poll; replace it with a context-aware
wait.PollUntilContextTimeout call: create a context with the desired overall
timeout, call wait.PollUntilContextTimeout(ctx, 5*time.Second, 1*time.Minute,
true, func(ctx context.Context) (done bool, err error) { ... }) and inside the
closure call oc.AsAdmin().WithoutNamespace().Run("get").Args("pod", podName,
"-n", ns,
"-o=jsonpath={.status.conditions[?(@.type=='Ready')].status}").Output(),
preserving the same polling logic and error handling (return false, nil on
pollErr and return status == "True", nil on success); ensure you import/context
usage matches existing tests and cancel the context if you create one here.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@test/extended/node/node_e2e/node.go`:
- Around line 136-140: The test calls oc.AsAdmin().WithoutNamespace().Run("rsh")
with "/bin/bash -c 'ls -al /dev | grep fuse'" which fails for scratch images;
replace that call (find the oc.AsAdmin().WithoutNamespace().Run("rsh")
invocation in node.go) with an exec-based existence check such as
oc.AsAdmin().WithoutNamespace().Run("exec").Args("-n", ns, podName, "--",
"test", "-e", "/dev/fuse").Output() (or Run("exec").Args(...).Execute() and
assert err==nil) so the check works in minimal images without relying on
/bin/bash, ls, or grep.

---

Nitpick comments:
In `@test/extended/node/node_e2e/node.go`:
- Around line 127-133: The code uses deprecated wait.Poll; replace it with a
context-aware wait.PollUntilContextTimeout call: create a context with the
desired overall timeout, call wait.PollUntilContextTimeout(ctx, 5*time.Second,
1*time.Minute, true, func(ctx context.Context) (done bool, err error) { ... })
and inside the closure call
oc.AsAdmin().WithoutNamespace().Run("get").Args("pod", podName, "-n", ns,
"-o=jsonpath={.status.conditions[?(@.type=='Ready')].status}").Output(),
preserving the same polling logic and error handling (return false, nil on
pollErr and return status == "True", nil on success); ensure you import/context
usage matches existing tests and cancel the context if you create one here.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 093946ec-44cb-4638-9830-156ea40d37a1

📥 Commits

Reviewing files that changed from the base of the PR and between b039d39 and 42af87e.

📒 Files selected for processing (3)
  • test/extended/node/node_e2e/node.go
  • test/extended/testdata/bindata.go
  • test/extended/testdata/node/node_e2e/pod-dev-fuse.yaml

@openshift-ci-robot
Copy link
Copy Markdown

Scheduling required tests:
/test e2e-aws-csi
/test e2e-aws-ovn-fips
/test e2e-aws-ovn-microshift
/test e2e-aws-ovn-microshift-serial
/test e2e-aws-ovn-serial-1of2
/test e2e-aws-ovn-serial-2of2
/test e2e-gcp-csi
/test e2e-gcp-ovn
/test e2e-gcp-ovn-upgrade
/test e2e-metal-ipi-ovn-ipv6
/test e2e-vsphere-ovn
/test e2e-vsphere-ovn-upi

@openshift-ci-robot
Copy link
Copy Markdown

openshift-ci-robot commented Apr 1, 2026

@Chandan9112: This pull request references OCPNODE-4224 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.22.0" version, but no target version was set.

Details

In response to this:

Adds automated test case OCP-70987 migrated from openshift-tests-private. The test validates:

  • Pod with io.kubernetes.cri-o.Devices annotation for /dev/fuse starts successfully
  • /dev/fuse device is mounted and accessible inside the pod

Here is the test case link: Polarian-70987

It passed successfully while executing on a live OCP 4.22 cluster:

 ~ oc version
Client Version: 4.21.0
Kustomize Version: v5.7.1
Server Version: 4.22.0-0.nightly-2026-03-29-173136
Kubernetes Version: v1.35.2

./openshift-tests run-test "[sig-node] [Jira:Node/CRI-O] CRI-O [OTP] Allow dev fuse by default in CRI-O [OCP-70987] [Suite:openshift/conformance/parallel]"

  Running Suite:  - /Users/cmaurya/go/src/github.com/openshift/origin
 ===================================================================
 Random Seed: 1775022097 - will randomize all specs

 Will run 1 of 1 specs
 ------------------------------
 [sig-node] [Jira:Node/CRI-O] CRI-O [OTP] Allow dev fuse by default in CRI-O [OCP-70987]
 github.com/openshift/origin/test/extended/node/node_e2e/node.go:117
   STEP: Creating a kubernetes client @ 04/01/26 11:11:41.711
 I0401 11:11:41.713018   59840 discovery.go:214] Invalidating discovery information
 I0401 11:11:45.580812 59840 client.go:293] configPath is now "/var/folders/gp/skdk64696bg1pfs3gmdnznv80000gn/T/configfile2796212605"
 I0401 11:11:45.580859 59840 client.go:368] The user is now "e2e-test-node-devfuse-9j8wn-user"
 I0401 11:11:45.580877 59840 client.go:370] Creating project "e2e-test-node-devfuse-9j8wn"
 I0401 11:11:45.976745 59840 client.go:378] Waiting on permissions in project "e2e-test-node-devfuse-9j8wn" ...
 I0401 11:11:47.190955 59840 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs
 I0401 11:11:47.498205 59840 client.go:422] Waiting for ServiceAccount "default" to be provisioned...
 I0401 11:11:48.240142 59840 client.go:422] Waiting for ServiceAccount "builder" to be provisioned...
 I0401 11:11:48.941958 59840 client.go:422] Waiting for ServiceAccount "deployer" to be provisioned...
 I0401 11:11:49.640988 59840 client.go:432] Waiting for RoleBinding "system:image-pullers" to be provisioned...
 I0401 11:11:49.935416 59840 client.go:432] Waiting for RoleBinding "system:image-builders" to be provisioned...
 I0401 11:11:50.240264 59840 client.go:432] Waiting for RoleBinding "system:deployers" to be provisioned...
 I0401 11:11:51.824021 59840 client.go:469] Project "e2e-test-node-devfuse-9j8wn" has been fully provisioned.
   STEP: Create a pod with dev fuse annotation @ 04/01/26 11:11:51.826
 pod/pod-devfuse created
   STEP: Wait for pod to be ready @ 04/01/26 11:11:53.39
   STEP: Check /dev/fuse is mounted inside the pod @ 04/01/26 11:11:59.13
 I0401 11:12:00.520949 59840 node.go:139] /dev/fuse mount output: crw-rw-rw- 1 root root 10, 229 Apr  1 05:41 fuse
 pod "pod-devfuse" deleted from e2e-test-node-devfuse-9j8wn namespace
 I0401 11:12:02.902408 59840 client.go:689] Deleted {user.openshift.io/v1, Resource=users  e2e-test-node-devfuse-9j8wn-user}, err: <nil>
 I0401 11:12:03.213906 59840 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-node-devfuse-9j8wn}, err: <nil>
 I0401 11:12:03.527932 59840 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~2A3xpJKcpzTE_Is4Oun3V-kzNF23RlHjuwzfN9EQZc0}, err: <nil>
   STEP: Destroying namespace "e2e-test-node-devfuse-9j8wn" for this suite. @ 04/01/26 11:12:03.528
 • [22.154 seconds]
 ------------------------------

 Ran 1 of 1 Specs in 22.155 seconds
 SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped

cc: @asahay19 , @lyman9966

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@Chandan9112
Copy link
Copy Markdown
Contributor Author

/retest

@openshift-trt
Copy link
Copy Markdown

openshift-trt bot commented Apr 1, 2026

Risk analysis has seen new tests most likely introduced by this PR.
Please ensure that new tests meet guidelines for naming and stability.

New Test Risks for sha: 42af87e

Job Name New Test Risk
pull-ci-openshift-origin-main-e2e-metal-ipi-ovn-ipv6 High - "[sig-node] [Jira:Node/CRI-O] CRI-O [OTP] Allow dev fuse by default in CRI-O [OCP-70987] [Suite:openshift/conformance/parallel]" is a new test that failed 2 time(s) against the current commit

New tests seen in this PR at sha: 42af87e

  • "[sig-node] [Jira:Node/CRI-O] CRI-O [OTP] Allow dev fuse by default in CRI-O [OCP-70987] [Suite:openshift/conformance/parallel]" [Total: 7, Pass: 5, Fail: 2, Flake: 0]

@Chandan9112 Chandan9112 force-pushed the migrate-devfuse-70987 branch from 42af87e to c7dc96e Compare April 2, 2026 11:14
err = wait.Poll(5*time.Second, 1*time.Minute, func() (bool, error) {
status, pollErr := oc.AsAdmin().WithoutNamespace().Run("get").Args("pod", podName, "-n", ns, "-o=jsonpath={.status.conditions[?(@.type=='Ready')].status}").Output()
if pollErr != nil {
return false, nil
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If the pod fails to schedule or has errors, the test will just time out after 1 minute with no diagnostic info. Consider logging the error or the pod's status/events on failure to aid debugging:

if pollErr != nil {
    e2e.Logf("Error polling pod status: %v", pollErr)
    return false, nil
}

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated in the latest commit.

@openshift-ci-robot
Copy link
Copy Markdown

Scheduling required tests:
/test e2e-aws-csi
/test e2e-aws-ovn-fips
/test e2e-aws-ovn-microshift
/test e2e-aws-ovn-microshift-serial
/test e2e-aws-ovn-serial-1of2
/test e2e-aws-ovn-serial-2of2
/test e2e-gcp-csi
/test e2e-gcp-ovn
/test e2e-gcp-ovn-upgrade
/test e2e-metal-ipi-ovn-ipv6
/test e2e-vsphere-ovn
/test e2e-vsphere-ovn-upi

o.Expect(output).To(o.ContainSubstring("spec.cgroupMode: Unsupported value: \"v1\": supported values: \"v2\", \"\""))
})
})

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think no need to create new g.Describe("[sig-node] [Jira:Node/CRI-O] CRI-O", func() { , you can create your function inside the previous one . And also it will call IsMicroShiftCluster then

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have used the same g.Describe() block now in the latest commit having pod and namespace creation in same function. IsMicroShiftCluster is also being called now.

@openshift-ci-robot
Copy link
Copy Markdown

openshift-ci-robot commented Apr 2, 2026

@Chandan9112: This pull request references OCPNODE-4224 which is a valid jira issue.

Details

In response to this:

Adds automated test case OCP-70987 migrated from openshift-tests-private. The test validates:

  • Pod with io.kubernetes.cri-o.Devices annotation for /dev/fuse starts successfully
  • /dev/fuse device is mounted and accessible inside the pod

Here is the test case link: Polarian-70987

It passed successfully while executing on a live OCP 4.22 cluster:

 ~ oc version
Client Version: 4.21.0
Kustomize Version: v5.7.1
Server Version: 4.22.0-0.nightly-2026-03-29-173136
Kubernetes Version: v1.35.2

./openshift-tests run-test "[sig-node] [Jira:Node/CRI-O] CRI-O [OTP] Allow dev fuse by default in CRI-O [OCP-70987] [Suite:openshift/conformance/parallel]"

  Running Suite:  - /Users/cmaurya/go/src/github.com/openshift/origin
 ===================================================================
 Random Seed: 1775132337 - will randomize all specs

 Will run 1 of 1 specs
 ------------------------------
 [sig-node] [Jira:Node/Kubelet] Kubelet, CRI-O, CPU manager [OTP] Allow dev fuse by default in CRI-O [OCP-70987]
 github.com/openshift/origin/test/extended/node/node_e2e/node.go:111
   STEP: Creating a kubernetes client @ 04/02/26 17:49:01.925
 I0402 17:49:01.926739   19285 discovery.go:214] Invalidating discovery information
 I0402 17:49:01.931666 19285 framework.go:2330] [precondition-check] checking if cluster is MicroShift
 I0402 17:49:02.216955 19285 framework.go:2353] IsMicroShiftCluster: microshift-version configmap not found, not MicroShift
   STEP: Create a test namespace @ 04/02/26 17:49:02.217
 namespace/devfuse-test created
   STEP: Create a pod with dev fuse annotation @ 04/02/26 17:49:03.048
 pod/pod-devfuse created
   STEP: Wait for pod to be ready @ 04/02/26 17:49:04.395
   STEP: Check /dev/fuse is mounted inside the pod @ 04/02/26 17:49:10.108
 I0402 17:49:11.492082 19285 node.go:142] /dev/fuse mount output: File: /dev/fuse
   Size: 0             Blocks: 0          IO Block: 4096   character special file
 Device: 1000b8h/1048760d      Inode: 6           Links: 1     Device type: a,e5
 Access: (0666/crw-rw-rw-)  Uid: (    0/    root)   Gid: (    0/    root)
 Access: 2026-04-02 12:19:05.137101693 +0000
 Modify: 2026-04-02 12:19:05.137101693 +0000
 Change: 2026-04-02 12:19:05.137101693 +0000
  Birth: -
 namespace "devfuse-test" deleted
 • [22.133 seconds]
 ------------------------------

 Ran 1 of 1 Specs in 22.134 seconds
 SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped
[
 {
   "name": "[sig-node] [Jira:Node/Kubelet] Kubelet, CRI-O, CPU manager [OTP] Allow dev fuse by default in CRI-O [OCP-70987] [Suite:openshift/conformance/parallel]",
   "lifecycle": "blocking",
   "duration": 22134,
   "startTime": "2026-04-02 12:19:01.906036 UTC",
   "endTime": "2026-04-02 12:19:24.040780 UTC",
   "result": "passed",
   "output": "  STEP: Creating a kubernetes client @ 04/02/26 17:49:01.925\nI0402 17:49:01.931666 19285 framework.go:2330] [precondition-check] checking if cluster is MicroShift\nI0402 17:49:02.216955 19285 framework.go:2353] IsMicroShiftCluster: microshift-version configmap not found, not MicroShift\n  STEP: Create a test namespace @ 04/02/26 17:49:02.217\nnamespace/devfuse-test created\n  STEP: Create a pod with dev fuse annotation @ 04/02/26 17:49:03.048\npod/pod-devfuse created\n  STEP: Wait for pod to be ready @ 04/02/26 17:49:04.395\n  STEP: Check /dev/fuse is mounted inside the pod @ 04/02/26 17:49:10.108\nI0402 17:49:11.492082 19285 node.go:142] /dev/fuse mount output: File: /dev/fuse\n  Size: 0         \tBlocks: 0          IO Block: 4096   character special file\nDevice: 1000b8h/1048760d\tInode: 6           Links: 1     Device type: a,e5\nAccess: (0666/crw-rw-rw-)  Uid: (    0/    root)   Gid: (    0/    root)\nAccess: 2026-04-02 12:19:05.137101693 +0000\nModify: 2026-04-02 12:19:05.137101693 +0000\nChange: 2026-04-02 12:19:05.137101693 +0000\n Birth: -\nnamespace \"devfuse-test\" deleted\n",
   "error": "    STEP: Creating a kubernetes client @ 04/02/26 17:49:01.925\n  I0402 17:49:01.926739   19285 discovery.go:214] Invalidating discovery information\n  I0402 17:49:01.931666 19285 framework.go:2330] [precondition-check] checking if cluster is MicroShift\n  I0402 17:49:02.216955 19285 framework.go:2353] IsMicroShiftCluster: microshift-version configmap not found, not MicroShift\n    STEP: Create a test namespace @ 04/02/26 17:49:02.217\n  namespace/devfuse-test created\n    STEP: Create a pod with dev fuse annotation @ 04/02/26 17:49:03.048\n  pod/pod-devfuse created\n    STEP: Wait for pod to be ready @ 04/02/26 17:49:04.395\n    STEP: Check /dev/fuse is mounted inside the pod @ 04/02/26 17:49:10.108\n  I0402 17:49:11.492082 19285 node.go:142] /dev/fuse mount output: File: /dev/fuse\n    Size: 0         \tBlocks: 0          IO Block: 4096   character special file\n  Device: 1000b8h/1048760d\tInode: 6           Links: 1     Device type: a,e5\n  Access: (0666/crw-rw-rw-)  Uid: (    0/    root)   Gid: (    0/    root)\n  Access: 2026-04-02 12:19:05.137101693 +0000\n  Modify: 2026-04-02 12:19:05.137101693 +0000\n  Change: 2026-04-02 12:19:05.137101693 +0000\n   Birth: -\n  namespace \"devfuse-test\" deleted\n"

cc: @asahay19 , @lyman9966

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@Chandan9112 Chandan9112 force-pushed the migrate-devfuse-70987 branch from c7dc96e to e3a9805 Compare April 2, 2026 12:25
@openshift-ci-robot
Copy link
Copy Markdown

Scheduling required tests:
/test e2e-aws-csi
/test e2e-aws-ovn-fips
/test e2e-aws-ovn-microshift
/test e2e-aws-ovn-microshift-serial
/test e2e-aws-ovn-serial-1of2
/test e2e-aws-ovn-serial-2of2
/test e2e-gcp-csi
/test e2e-gcp-ovn
/test e2e-gcp-ovn-upgrade
/test e2e-metal-ipi-ovn-ipv6
/test e2e-vsphere-ovn
/test e2e-vsphere-ovn-upi

@lyman9966
Copy link
Copy Markdown
Contributor

/lgtm

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Apr 3, 2026
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci bot commented Apr 3, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: Chandan9112, lyman9966
Once this PR has been reviewed and has the lgtm label, please assign xueqzhan for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@Chandan9112
Copy link
Copy Markdown
Contributor Author

/retest

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci bot commented Apr 3, 2026

@Chandan9112: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/e2e-metal-ipi-ovn-ipv6 e3a9805 link true /test e2e-metal-ipi-ovn-ipv6

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@openshift-trt
Copy link
Copy Markdown

openshift-trt bot commented Apr 3, 2026

Risk analysis has seen new tests most likely introduced by this PR.
Please ensure that new tests meet guidelines for naming and stability.

New Test Risks for sha: e3a9805

Job Name New Test Risk
pull-ci-openshift-origin-main-e2e-metal-ipi-ovn-ipv6 High - "[sig-node] [Jira:Node/Kubelet] Kubelet, CRI-O, CPU manager [OTP] Allow dev fuse by default in CRI-O [OCP-70987] [Suite:openshift/conformance/parallel]" is a new test that failed 2 time(s) against the current commit

New tests seen in this PR at sha: e3a9805

  • "[sig-node] [Jira:Node/Kubelet] Kubelet, CRI-O, CPU manager [OTP] Allow dev fuse by default in CRI-O [OCP-70987] [Suite:openshift/conformance/parallel]" [Total: 6, Pass: 4, Fail: 2, Flake: 0]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants