Skip to content

STOR-2893: add storage BYOK feature tests#30786

Open
Phaow wants to merge 1 commit intoopenshift:mainfrom
Phaow:add-byok-test
Open

STOR-2893: add storage BYOK feature tests#30786
Phaow wants to merge 1 commit intoopenshift:mainfrom
Phaow:add-byok-test

Conversation

@Phaow
Copy link
Contributor

@Phaow Phaow commented Feb 14, 2026

Why we need this?

Test records

  • aws-byok-cluster test record
$ ./openshift-tests run-test "[sig-storage][Feature:BYOK][Jira:\"Storage\"] managed storage classes should be set with the specified encryption key [Suite:openshift/conformance/parallel]" 
  I0303 20:54:01.354472   30170 binary.go:78] Found 8527 test specs
  I0303 20:54:01.356060   30170 binary.go:95] 1077 test specs remain, after filtering out k8s
openshift-tests v1.33.0-1115-g337b212
  I0303 20:54:09.242272   30170 test_setup.go:125] Extended test version v1.33.0-1115-g337b212
  I0303 20:54:09.242425   30170 test_context.go:559] Tolerating taints "node-role.kubernetes.io/control-plane" when considering if nodes are ready
  I0303 20:54:09.243172 30170 framework.go:2324] [precondition-check] checking if cluster is MicroShift
  I0303 20:54:09.464274 30170 framework.go:2348] IsMicroShiftCluster: microshift-version configmap not found, not MicroShift
  I0303 20:54:09.464612   30170 binary.go:122] Loaded test configuration: &framework.TestContextType{KubeConfig:"/Users/wangpenghao/.kube/config", KubeContext:"", KubeAPIContentType:"application/vnd.kubernetes.protobuf", KubeletRootDir:"/var/lib/kubelet", KubeletConfigDropinDir:"", CertDir:"", Host:"https://api.pewang-0303a.qe.devcluster.openshift.com:6443", BearerToken:"<redacted>", RepoRoot:"../../", ListImages:false, listTests:false, listLabels:false, ListConformanceTests:false, Provider:"aws", Tooling:"", timeouts:framework.TimeoutContext{Poll:2000000000, PodStart:300000000000, PodStartShort:120000000000, PodStartSlow:900000000000, PodDelete:300000000000, ClaimProvision:300000000000, DataSourceProvision:300000000000, ClaimProvisionShort:60000000000, ClaimBound:180000000000, PVReclaim:180000000000, PVBound:180000000000, PVCreate:180000000000, PVDelete:300000000000, PVDeleteSlow:1200000000000, SnapshotCreate:300000000000, SnapshotDelete:300000000000, SnapshotControllerMetrics:300000000000, SystemPodsStartup:600000000000, NodeSchedulable:1800000000000, SystemDaemonsetStartup:300000000000, NodeNotReady:180000000000}, CloudConfig:framework.CloudConfig{APIEndpoint:"", ProjectID:"", Zone:"us-east-2a", Zones:[]string{"us-east-2a", "us-east-2b", "us-east-2c"}, Region:"us-east-2", MultiZone:true, MultiMaster:true, Cluster:"", MasterName:"", NodeInstanceGroup:"", NumNodes:3, ClusterIPRange:"", ClusterTag:"", Network:"", ConfigFile:"", NodeTag:"", MasterTag:"", Provider:(*aws.Provider)(0x10df17048)}, KubectlPath:"kubectl", OutputDir:"/tmp", ReportDir:"", ReportPrefix:"", ReportCompleteGinkgo:false, ReportCompleteJUnit:false, Prefix:"e2e", MinStartupPods:-1, EtcdUpgradeStorage:"", EtcdUpgradeVersion:"", GCEUpgradeScript:"", ContainerRuntimeEndpoint:"unix:///run/containerd/containerd.sock", ContainerRuntimeProcessName:"containerd", ContainerRuntimePidFile:"/run/containerd/containerd.pid", SystemdServices:"containerd*", DumpSystemdJournal:false, ImageServiceEndpoint:"", MasterOSDistro:"custom", NodeOSDistro:"custom", NodeOSArch:"amd64", VerifyServiceAccount:true, DeleteNamespace:true, DeleteNamespaceOnFailure:true, AllowedNotReadyNodes:-1, CleanStart:false, GatherKubeSystemResourceUsageData:"false", GatherLogsSizes:false, GatherMetricsAfterTest:"false", GatherSuiteMetricsAfterTest:false, MaxNodesToGather:0, IncludeClusterAutoscalerMetrics:false, OutputPrintType:"json", CreateTestingNS:(framework.CreateTestingNSFn)(0x105496880), DumpLogsOnFailure:true, DisableLogDump:false, LogexporterGCSPath:"", NodeTestContextType:framework.NodeTestContextType{NodeE2E:false, NodeName:"", NodeConformance:false, PrepullImages:false, ImageDescription:"", RuntimeConfig:map[string]string(nil), SystemSpecName:"", RestartKubelet:false, ExtraEnvs:map[string]string(nil), StandaloneMode:false, CriProxyEnabled:false}, ClusterDNSDomain:"cluster.local", NodeKiller:framework.NodeKillerConfig{Enabled:false, FailureRatio:0.01, Interval:60000000000, JitterFactor:60, SimulatedDowntime:600000000000, NodeKillerStopCtx:context.Context(nil), NodeKillerStop:(func())(nil)}, IPFamily:"ipv4", NonblockingTaints:"node-role.kubernetes.io/control-plane", ProgressReportURL:"", SriovdpConfigMapFile:"", SpecSummaryOutput:"", DockerConfigFile:"", E2EDockerConfigFile:"", KubeTestRepoList:"", SnapshotControllerPodName:"", SnapshotControllerHTTPPort:0, RequireDevices:false, EnabledVolumeDrivers:[]string(nil)}
  Running Suite:  - /Users/wangpenghao/Automation/origin
  ======================================================
  Random Seed: 1772542441 - will randomize all specs

  Will run 1 of 1 specs
  ------------------------------
  [sig-storage][Feature:BYOK][Jira:"Storage"] managed storage classes should be set with the specified encryption key
  github.com/openshift/origin/test/extended/storage/csi_byok.go:37
    STEP: Creating a kubernetes client @ 03/03/26 20:54:09.473
  I0303 20:54:09.474613   30170 discovery.go:214] Invalidating discovery information
  I0303 20:54:14.607911 30170 client.go:293] configPath is now "/var/folders/fl/wkjr1_ld75nfdb92ftdltyvh0000gn/T/configfile2409803311"
  I0303 20:54:14.607954 30170 client.go:368] The user is now "e2e-test-csi-byok-gmkgp-user"
  I0303 20:54:14.607974 30170 client.go:370] Creating project "e2e-test-csi-byok-gmkgp"
  I0303 20:54:14.935768 30170 client.go:378] Waiting on permissions in project "e2e-test-csi-byok-gmkgp" ...
  I0303 20:54:16.199464 30170 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs
  I0303 20:54:16.423148 30170 client.go:422] Waiting for ServiceAccount "default" to be provisioned...
  I0303 20:54:16.996188 30170 client.go:422] Waiting for ServiceAccount "builder" to be provisioned...
  I0303 20:54:17.560385 30170 client.go:422] Waiting for ServiceAccount "deployer" to be provisioned...
  I0303 20:54:18.127023 30170 client.go:432] Waiting for RoleBinding "system:image-pullers" to be provisioned...
  I0303 20:54:18.359013 30170 client.go:432] Waiting for RoleBinding "system:image-builders" to be provisioned...
  I0303 20:54:18.839394 30170 client.go:432] Waiting for RoleBinding "system:deployers" to be provisioned...
  I0303 20:54:22.380652 30170 client.go:469] Project "e2e-test-csi-byok-gmkgp" has been fully provisioned.
    STEP: Get preset storageClass names from configuration @ 03/03/26 20:54:22.651
    STEP: Verify all preset storage classes have encryption key configured @ 03/03/26 20:54:22.651
    STEP: Verifying storage class: gp2-csi @ 03/03/26 20:54:22.651
    STEP: Verifying storage class: gp3-csi @ 03/03/26 20:54:22.878
  I0303 20:54:23.351546 30170 client.go:689] Deleted {user.openshift.io/v1, Resource=users  e2e-test-csi-byok-gmkgp-user}, err: <nil>
  I0303 20:54:23.674411 30170 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-csi-byok-gmkgp}, err: <nil>
  I0303 20:54:23.983181 30170 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~bN_nmH4eCjt3lELpTXwdl4drpSZRvGwxqnD_1toWuWU}, err: <nil>
    STEP: Destroying namespace "e2e-test-csi-byok-gmkgp" for this suite. @ 03/03/26 20:54:23.983
  • [14.755 seconds]
  ------------------------------

  Ran 1 of 1 Specs in 14.755 seconds
  SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped
[
  {
    "name": "[sig-storage][Feature:BYOK][Jira:\"Storage\"] managed storage classes should be set with the specified encryption key [Suite:openshift/conformance/parallel]",
    "lifecycle": "blocking",
    "duration": 14755,
    "startTime": "2026-03-03 12:54:09.464689 UTC",
    "endTime": "2026-03-03 12:54:24.220543 UTC",
    "result": "passed",
    "output": "  STEP: Creating a kubernetes client @ 03/03/26 20:54:09.473\nI0303 20:54:14.607911 30170 client.go:293] configPath is now \"/var/folders/fl/wkjr1_ld75nfdb92ftdltyvh0000gn/T/configfile2409803311\"\nI0303 20:54:14.607954 30170 client.go:368] The user is now \"e2e-test-csi-byok-gmkgp-user\"\nI0303 20:54:14.607974 30170 client.go:370] Creating project \"e2e-test-csi-byok-gmkgp\"\nI0303 20:54:14.935768 30170 client.go:378] Waiting on permissions in project \"e2e-test-csi-byok-gmkgp\" ...\nI0303 20:54:16.199464 30170 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs\nI0303 20:54:16.423148 30170 client.go:422] Waiting for ServiceAccount \"default\" to be provisioned...\nI0303 20:54:16.996188 30170 client.go:422] Waiting for ServiceAccount \"builder\" to be provisioned...\nI0303 20:54:17.560385 30170 client.go:422] Waiting for ServiceAccount \"deployer\" to be provisioned...\nI0303 20:54:18.127023 30170 client.go:432] Waiting for RoleBinding \"system:image-pullers\" to be provisioned...\nI0303 20:54:18.359013 30170 client.go:432] Waiting for RoleBinding \"system:image-builders\" to be provisioned...\nI0303 20:54:18.839394 30170 client.go:432] Waiting for RoleBinding \"system:deployers\" to be provisioned...\nI0303 20:54:22.380652 30170 client.go:469] Project \"e2e-test-csi-byok-gmkgp\" has been fully provisioned.\n  STEP: Get preset storageClass names from configuration @ 03/03/26 20:54:22.651\n  STEP: Verify all preset storage classes have encryption key configured @ 03/03/26 20:54:22.651\n  STEP: Verifying storage class: gp2-csi @ 03/03/26 20:54:22.651\n  STEP: Verifying storage class: gp3-csi @ 03/03/26 20:54:22.878\nI0303 20:54:23.351546 30170 client.go:689] Deleted {user.openshift.io/v1, Resource=users  e2e-test-csi-byok-gmkgp-user}, err: \u003cnil\u003e\nI0303 20:54:23.674411 30170 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-csi-byok-gmkgp}, err: \u003cnil\u003e\nI0303 20:54:23.983181 30170 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~bN_nmH4eCjt3lELpTXwdl4drpSZRvGwxqnD_1toWuWU}, err: \u003cnil\u003e\n  STEP: Destroying namespace \"e2e-test-csi-byok-gmkgp\" for this suite. @ 03/03/26 20:54:23.983\n"
  }
]
  • azure byok test record
$ ./openshift-tests run-test "[sig-storage][Feature:BYOK][Jira:\"Storage\"] managed storage classes should be set with the specified encryption key [Suite:openshift/conformance/parallel]" 
  I0304 14:54:54.195552   72514 binary.go:78] Found 8527 test specs
  I0304 14:54:54.197212   72514 binary.go:95] 1077 test specs remain, after filtering out k8s
openshift-tests v1.33.0-1115-g337b212
  I0304 14:54:57.939433   72514 test_setup.go:125] Extended test version v1.33.0-1115-g337b212
  I0304 14:54:57.939477   72514 test_context.go:559] Tolerating taints "node-role.kubernetes.io/control-plane" when considering if nodes are ready
  I0304 14:54:57.939977 72514 framework.go:2324] [precondition-check] checking if cluster is MicroShift
  I0304 14:54:58.184954 72514 framework.go:2348] IsMicroShiftCluster: microshift-version configmap not found, not MicroShift
  I0304 14:54:58.185320   72514 binary.go:122] Loaded test configuration: &framework.TestContextType{KubeConfig:"/Users/wangpenghao/.kube/config", KubeContext:"", KubeAPIContentType:"application/vnd.kubernetes.protobuf", KubeletRootDir:"/var/lib/kubelet", KubeletConfigDropinDir:"", CertDir:"", Host:"https://api.pewang-0304az.qe.azure.devcluster.openshift.com:6443", BearerToken:"<redacted>", RepoRoot:"../../", ListImages:false, listTests:false, listLabels:false, ListConformanceTests:false, Provider:"azure", Tooling:"", timeouts:framework.TimeoutContext{Poll:2000000000, PodStart:300000000000, PodStartShort:120000000000, PodStartSlow:900000000000, PodDelete:300000000000, ClaimProvision:300000000000, DataSourceProvision:300000000000, ClaimProvisionShort:60000000000, ClaimBound:180000000000, PVReclaim:180000000000, PVBound:180000000000, PVCreate:180000000000, PVDelete:300000000000, PVDeleteSlow:1200000000000, SnapshotCreate:300000000000, SnapshotDelete:300000000000, SnapshotControllerMetrics:300000000000, SystemPodsStartup:600000000000, NodeSchedulable:1800000000000, SystemDaemonsetStartup:300000000000, NodeNotReady:180000000000}, CloudConfig:framework.CloudConfig{APIEndpoint:"", ProjectID:"", Zone:"0", Zones:[]string{"0", "1", "2"}, Region:"", MultiZone:true, MultiMaster:true, Cluster:"", MasterName:"", NodeInstanceGroup:"", NumNodes:3, ClusterIPRange:"", ClusterTag:"", Network:"", ConfigFile:"/var/folders/fl/wkjr1_ld75nfdb92ftdltyvh0000gn/T/e2e-2843429833", NodeTag:"", MasterTag:"", Provider:(*framework.NullProvider)(0x10feb3048)}, KubectlPath:"kubectl", OutputDir:"/tmp", ReportDir:"", ReportPrefix:"", ReportCompleteGinkgo:false, ReportCompleteJUnit:false, Prefix:"e2e", MinStartupPods:-1, EtcdUpgradeStorage:"", EtcdUpgradeVersion:"", GCEUpgradeScript:"", ContainerRuntimeEndpoint:"unix:///run/containerd/containerd.sock", ContainerRuntimeProcessName:"containerd", ContainerRuntimePidFile:"/run/containerd/containerd.pid", SystemdServices:"containerd*", DumpSystemdJournal:false, ImageServiceEndpoint:"", MasterOSDistro:"custom", NodeOSDistro:"custom", NodeOSArch:"amd64", VerifyServiceAccount:true, DeleteNamespace:true, DeleteNamespaceOnFailure:true, AllowedNotReadyNodes:-1, CleanStart:false, GatherKubeSystemResourceUsageData:"false", GatherLogsSizes:false, GatherMetricsAfterTest:"false", GatherSuiteMetricsAfterTest:false, MaxNodesToGather:0, IncludeClusterAutoscalerMetrics:false, OutputPrintType:"json", CreateTestingNS:(framework.CreateTestingNSFn)(0x107432880), DumpLogsOnFailure:true, DisableLogDump:false, LogexporterGCSPath:"", NodeTestContextType:framework.NodeTestContextType{NodeE2E:false, NodeName:"", NodeConformance:false, PrepullImages:false, ImageDescription:"", RuntimeConfig:map[string]string(nil), SystemSpecName:"", RestartKubelet:false, ExtraEnvs:map[string]string(nil), StandaloneMode:false, CriProxyEnabled:false}, ClusterDNSDomain:"cluster.local", NodeKiller:framework.NodeKillerConfig{Enabled:false, FailureRatio:0.01, Interval:60000000000, JitterFactor:60, SimulatedDowntime:600000000000, NodeKillerStopCtx:context.Context(nil), NodeKillerStop:(func())(nil)}, IPFamily:"ipv4", NonblockingTaints:"node-role.kubernetes.io/control-plane", ProgressReportURL:"", SriovdpConfigMapFile:"", SpecSummaryOutput:"", DockerConfigFile:"", E2EDockerConfigFile:"", KubeTestRepoList:"", SnapshotControllerPodName:"", SnapshotControllerHTTPPort:0, RequireDevices:false, EnabledVolumeDrivers:[]string(nil)}
  Running Suite:  - /Users/wangpenghao/Automation/origin
  ======================================================
  Random Seed: 1772607294 - will randomize all specs

  Will run 1 of 1 specs
  ------------------------------
  [sig-storage][Feature:BYOK][Jira:"Storage"] managed storage classes should be set with the specified encryption key
  github.com/openshift/origin/test/extended/storage/csi_byok.go:37
    STEP: Creating a kubernetes client @ 03/04/26 14:54:58.195
  I0304 14:54:58.196443   72514 discovery.go:214] Invalidating discovery information
  I0304 14:55:01.208984 72514 client.go:293] configPath is now "/var/folders/fl/wkjr1_ld75nfdb92ftdltyvh0000gn/T/configfile353105320"
  I0304 14:55:01.209065 72514 client.go:368] The user is now "e2e-test-csi-byok-kxc4k-user"
  I0304 14:55:01.209156 72514 client.go:370] Creating project "e2e-test-csi-byok-kxc4k"
  I0304 14:55:01.566560 72514 client.go:378] Waiting on permissions in project "e2e-test-csi-byok-kxc4k" ...
  I0304 14:55:02.559525 72514 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs
  I0304 14:55:02.807571 72514 client.go:422] Waiting for ServiceAccount "default" to be provisioned...
  I0304 14:55:03.401279 72514 client.go:422] Waiting for ServiceAccount "builder" to be provisioned...
  I0304 14:55:03.994624 72514 client.go:422] Waiting for ServiceAccount "deployer" to be provisioned...
  I0304 14:55:04.589256 72514 client.go:432] Waiting for RoleBinding "system:image-pullers" to be provisioned...
  I0304 14:55:05.082103 72514 client.go:432] Waiting for RoleBinding "system:image-builders" to be provisioned...
  I0304 14:55:05.572958 72514 client.go:432] Waiting for RoleBinding "system:deployers" to be provisioned...
  I0304 14:55:07.528586 72514 client.go:469] Project "e2e-test-csi-byok-kxc4k" has been fully provisioned.
    STEP: Get preset storageClass names from configuration @ 03/04/26 14:55:07.776
    STEP: Verify all preset storage classes have encryption key configured @ 03/04/26 14:55:07.777
    STEP: Verifying storage class: managed-csi @ 03/04/26 14:55:07.777
  I0304 14:55:08.277813 72514 client.go:689] Deleted {user.openshift.io/v1, Resource=users  e2e-test-csi-byok-kxc4k-user}, err: <nil>
  I0304 14:55:08.531746 72514 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-csi-byok-kxc4k}, err: <nil>
  I0304 14:55:08.783194 72514 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~TZvLNl8wKy0NFhUsJWTKPyxCUwJ24aDQfFwCCdOS_gk}, err: <nil>
    STEP: Destroying namespace "e2e-test-csi-byok-kxc4k" for this suite. @ 03/04/26 14:55:08.783
  • [10.862 seconds]
  ------------------------------

  Ran 1 of 1 Specs in 10.863 seconds
  SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped
[
  {
    "name": "[sig-storage][Feature:BYOK][Jira:\"Storage\"] managed storage classes should be set with the specified encryption key [Suite:openshift/conformance/parallel]",
    "lifecycle": "blocking",
    "duration": 10862,
    "startTime": "2026-03-04 06:54:58.185434 UTC",
    "endTime": "2026-03-04 06:55:09.048350 UTC",
    "result": "passed",
    "output": "  STEP: Creating a kubernetes client @ 03/04/26 14:54:58.195\nI0304 14:55:01.208984 72514 client.go:293] configPath is now \"/var/folders/fl/wkjr1_ld75nfdb92ftdltyvh0000gn/T/configfile353105320\"\nI0304 14:55:01.209065 72514 client.go:368] The user is now \"e2e-test-csi-byok-kxc4k-user\"\nI0304 14:55:01.209156 72514 client.go:370] Creating project \"e2e-test-csi-byok-kxc4k\"\nI0304 14:55:01.566560 72514 client.go:378] Waiting on permissions in project \"e2e-test-csi-byok-kxc4k\" ...\nI0304 14:55:02.559525 72514 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs\nI0304 14:55:02.807571 72514 client.go:422] Waiting for ServiceAccount \"default\" to be provisioned...\nI0304 14:55:03.401279 72514 client.go:422] Waiting for ServiceAccount \"builder\" to be provisioned...\nI0304 14:55:03.994624 72514 client.go:422] Waiting for ServiceAccount \"deployer\" to be provisioned...\nI0304 14:55:04.589256 72514 client.go:432] Waiting for RoleBinding \"system:image-pullers\" to be provisioned...\nI0304 14:55:05.082103 72514 client.go:432] Waiting for RoleBinding \"system:image-builders\" to be provisioned...\nI0304 14:55:05.572958 72514 client.go:432] Waiting for RoleBinding \"system:deployers\" to be provisioned...\nI0304 14:55:07.528586 72514 client.go:469] Project \"e2e-test-csi-byok-kxc4k\" has been fully provisioned.\n  STEP: Get preset storageClass names from configuration @ 03/04/26 14:55:07.776\n  STEP: Verify all preset storage classes have encryption key configured @ 03/04/26 14:55:07.777\n  STEP: Verifying storage class: managed-csi @ 03/04/26 14:55:07.777\nI0304 14:55:08.277813 72514 client.go:689] Deleted {user.openshift.io/v1, Resource=users  e2e-test-csi-byok-kxc4k-user}, err: \u003cnil\u003e\nI0304 14:55:08.531746 72514 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-csi-byok-kxc4k}, err: \u003cnil\u003e\nI0304 14:55:08.783194 72514 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~TZvLNl8wKy0NFhUsJWTKPyxCUwJ24aDQfFwCCdOS_gk}, err: \u003cnil\u003e\n  STEP: Destroying namespace \"e2e-test-csi-byok-kxc4k\" for this suite. @ 03/04/26 14:55:08.783\n"
  }
]
  • gce byok test record
$ ./openshift-tests run-test "[sig-storage][Feature:BYOK][Jira:\"Storage\"] managed storage classes should be set with the specified encryption key [Suite:openshift/conformance/parallel]" 
  I0304 21:13:51.407339    9587 binary.go:78] Found 8527 test specs
  I0304 21:13:51.409551    9587 binary.go:95] 1077 test specs remain, after filtering out k8s
openshift-tests v1.33.0-1115-g337b212
  I0304 21:13:58.012018    9587 test_setup.go:125] Extended test version v1.33.0-1115-g337b212
  I0304 21:13:58.012135    9587 test_context.go:559] Tolerating taints "node-role.kubernetes.io/control-plane" when considering if nodes are ready
  I0304 21:13:58.012784 9587 framework.go:2324] [precondition-check] checking if cluster is MicroShift
  I0304 21:13:58.312982 9587 framework.go:2348] IsMicroShiftCluster: microshift-version configmap not found, not MicroShift
  I0304 21:13:58.313631    9587 binary.go:122] Loaded test configuration: &framework.TestContextType{KubeConfig:"/Users/wangpenghao/.kube/config", KubeContext:"", KubeAPIContentType:"application/vnd.kubernetes.protobuf", KubeletRootDir:"/var/lib/kubelet", KubeletConfigDropinDir:"", CertDir:"", Host:"https://api.pewang-0304g.qe.gcp.devcluster.openshift.com:6443", BearerToken:"<redacted>", RepoRoot:"../../", ListImages:false, listTests:false, listLabels:false, ListConformanceTests:false, Provider:"gce", Tooling:"", timeouts:framework.TimeoutContext{Poll:2000000000, PodStart:300000000000, PodStartShort:120000000000, PodStartSlow:900000000000, PodDelete:300000000000, ClaimProvision:300000000000, DataSourceProvision:300000000000, ClaimProvisionShort:60000000000, ClaimBound:180000000000, PVReclaim:180000000000, PVBound:180000000000, PVCreate:180000000000, PVDelete:300000000000, PVDeleteSlow:1200000000000, SnapshotCreate:300000000000, SnapshotDelete:300000000000, SnapshotControllerMetrics:300000000000, SystemPodsStartup:600000000000, NodeSchedulable:1800000000000, SystemDaemonsetStartup:300000000000, NodeNotReady:180000000000}, CloudConfig:framework.CloudConfig{APIEndpoint:"", ProjectID:"openshift-qe", Zone:"us-central1-a", Zones:[]string{"us-central1-a", "us-central1-b", "us-central1-c"}, Region:"us-central1", MultiZone:true, MultiMaster:true, Cluster:"", MasterName:"", NodeInstanceGroup:"", NumNodes:3, ClusterIPRange:"", ClusterTag:"", Network:"", ConfigFile:"", NodeTag:"", MasterTag:"", Provider:(*framework.NullProvider)(0x110773048)}, KubectlPath:"kubectl", OutputDir:"/tmp", ReportDir:"", ReportPrefix:"", ReportCompleteGinkgo:false, ReportCompleteJUnit:false, Prefix:"e2e", MinStartupPods:-1, EtcdUpgradeStorage:"", EtcdUpgradeVersion:"", GCEUpgradeScript:"", ContainerRuntimeEndpoint:"unix:///run/containerd/containerd.sock", ContainerRuntimeProcessName:"containerd", ContainerRuntimePidFile:"/run/containerd/containerd.pid", SystemdServices:"containerd*", DumpSystemdJournal:false, ImageServiceEndpoint:"", MasterOSDistro:"custom", NodeOSDistro:"custom", NodeOSArch:"amd64", VerifyServiceAccount:true, DeleteNamespace:true, DeleteNamespaceOnFailure:true, AllowedNotReadyNodes:-1, CleanStart:false, GatherKubeSystemResourceUsageData:"false", GatherLogsSizes:false, GatherMetricsAfterTest:"false", GatherSuiteMetricsAfterTest:false, MaxNodesToGather:0, IncludeClusterAutoscalerMetrics:false, OutputPrintType:"json", CreateTestingNS:(framework.CreateTestingNSFn)(0x107cf2880), DumpLogsOnFailure:true, DisableLogDump:false, LogexporterGCSPath:"", NodeTestContextType:framework.NodeTestContextType{NodeE2E:false, NodeName:"", NodeConformance:false, PrepullImages:false, ImageDescription:"", RuntimeConfig:map[string]string(nil), SystemSpecName:"", RestartKubelet:false, ExtraEnvs:map[string]string(nil), StandaloneMode:false, CriProxyEnabled:false}, ClusterDNSDomain:"cluster.local", NodeKiller:framework.NodeKillerConfig{Enabled:false, FailureRatio:0.01, Interval:60000000000, JitterFactor:60, SimulatedDowntime:600000000000, NodeKillerStopCtx:context.Context(nil), NodeKillerStop:(func())(nil)}, IPFamily:"ipv4", NonblockingTaints:"node-role.kubernetes.io/control-plane", ProgressReportURL:"", SriovdpConfigMapFile:"", SpecSummaryOutput:"", DockerConfigFile:"", E2EDockerConfigFile:"", KubeTestRepoList:"", SnapshotControllerPodName:"", SnapshotControllerHTTPPort:0, RequireDevices:false, EnabledVolumeDrivers:[]string(nil)}
  Running Suite:  - /Users/wangpenghao/Automation/origin
  ======================================================
  Random Seed: 1772630031 - will randomize all specs

  Will run 1 of 1 specs
  ------------------------------
  [sig-storage][Feature:BYOK][Jira:"Storage"] managed storage classes should be set with the specified encryption key
  github.com/openshift/origin/test/extended/storage/csi_byok.go:37
    STEP: Creating a kubernetes client @ 03/04/26 21:13:58.329
  I0304 21:13:58.330913    9587 discovery.go:214] Invalidating discovery information
  I0304 21:14:02.603198 9587 client.go:293] configPath is now "/var/folders/fl/wkjr1_ld75nfdb92ftdltyvh0000gn/T/configfile3203854224"
  I0304 21:14:02.603254 9587 client.go:368] The user is now "e2e-test-csi-byok-blzcs-user"
  I0304 21:14:02.603276 9587 client.go:370] Creating project "e2e-test-csi-byok-blzcs"
  I0304 21:14:02.984515 9587 client.go:378] Waiting on permissions in project "e2e-test-csi-byok-blzcs" ...
  I0304 21:14:04.562088 9587 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs
  I0304 21:14:04.862626 9587 client.go:422] Waiting for ServiceAccount "default" to be provisioned...
  I0304 21:14:05.568316 9587 client.go:422] Waiting for ServiceAccount "builder" to be provisioned...
  I0304 21:14:06.271742 9587 client.go:422] Waiting for ServiceAccount "deployer" to be provisioned...
  I0304 21:14:06.982482 9587 client.go:432] Waiting for RoleBinding "system:image-pullers" to be provisioned...
  I0304 21:14:07.281502 9587 client.go:432] Waiting for RoleBinding "system:image-builders" to be provisioned...
  I0304 21:14:07.881115 9587 client.go:432] Waiting for RoleBinding "system:deployers" to be provisioned...
  I0304 21:14:09.873798 9587 client.go:469] Project "e2e-test-csi-byok-blzcs" has been fully provisioned.
    STEP: Get preset storageClass names from configuration @ 03/04/26 21:14:10.184
    STEP: Verify all preset storage classes have encryption key configured @ 03/04/26 21:14:10.184
    STEP: Verifying storage class: standard-csi @ 03/04/26 21:14:10.186
    STEP: Verifying storage class: ssd-csi @ 03/04/26 21:14:10.483
  I0304 21:14:11.146691 9587 client.go:689] Deleted {user.openshift.io/v1, Resource=users  e2e-test-csi-byok-blzcs-user}, err: <nil>
  I0304 21:14:11.454278 9587 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-csi-byok-blzcs}, err: <nil>
  I0304 21:14:11.765634 9587 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~_Ahd36HXtldX-Y1JS8yOaJtvFQKL9FXA_aSmASVJxPk}, err: <nil>
    STEP: Destroying namespace "e2e-test-csi-byok-blzcs" for this suite. @ 03/04/26 21:14:11.765
  • [13.756 seconds]
  ------------------------------

  Ran 1 of 1 Specs in 13.756 seconds
  SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped
[
  {
    "name": "[sig-storage][Feature:BYOK][Jira:\"Storage\"] managed storage classes should be set with the specified encryption key [Suite:openshift/conformance/parallel]",
    "lifecycle": "blocking",
    "duration": 13757,
    "startTime": "2026-03-04 13:13:58.313789 UTC",
    "endTime": "2026-03-04 13:14:12.070825 UTC",
    "result": "passed",
    "output": "  STEP: Creating a kubernetes client @ 03/04/26 21:13:58.329\nI0304 21:14:02.603198 9587 client.go:293] configPath is now \"/var/folders/fl/wkjr1_ld75nfdb92ftdltyvh0000gn/T/configfile3203854224\"\nI0304 21:14:02.603254 9587 client.go:368] The user is now \"e2e-test-csi-byok-blzcs-user\"\nI0304 21:14:02.603276 9587 client.go:370] Creating project \"e2e-test-csi-byok-blzcs\"\nI0304 21:14:02.984515 9587 client.go:378] Waiting on permissions in project \"e2e-test-csi-byok-blzcs\" ...\nI0304 21:14:04.562088 9587 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs\nI0304 21:14:04.862626 9587 client.go:422] Waiting for ServiceAccount \"default\" to be provisioned...\nI0304 21:14:05.568316 9587 client.go:422] Waiting for ServiceAccount \"builder\" to be provisioned...\nI0304 21:14:06.271742 9587 client.go:422] Waiting for ServiceAccount \"deployer\" to be provisioned...\nI0304 21:14:06.982482 9587 client.go:432] Waiting for RoleBinding \"system:image-pullers\" to be provisioned...\nI0304 21:14:07.281502 9587 client.go:432] Waiting for RoleBinding \"system:image-builders\" to be provisioned...\nI0304 21:14:07.881115 9587 client.go:432] Waiting for RoleBinding \"system:deployers\" to be provisioned...\nI0304 21:14:09.873798 9587 client.go:469] Project \"e2e-test-csi-byok-blzcs\" has been fully provisioned.\n  STEP: Get preset storageClass names from configuration @ 03/04/26 21:14:10.184\n  STEP: Verify all preset storage classes have encryption key configured @ 03/04/26 21:14:10.184\n  STEP: Verifying storage class: standard-csi @ 03/04/26 21:14:10.186\n  STEP: Verifying storage class: ssd-csi @ 03/04/26 21:14:10.483\nI0304 21:14:11.146691 9587 client.go:689] Deleted {user.openshift.io/v1, Resource=users  e2e-test-csi-byok-blzcs-user}, err: \u003cnil\u003e\nI0304 21:14:11.454278 9587 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-csi-byok-blzcs}, err: \u003cnil\u003e\nI0304 21:14:11.765634 9587 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~_Ahd36HXtldX-Y1JS8yOaJtvFQKL9FXA_aSmASVJxPk}, err: \u003cnil\u003e\n  STEP: Destroying namespace \"e2e-test-csi-byok-blzcs\" for this suite. @ 03/04/26 21:14:11.765\n"
  }
]
  • ibmcloud byok test record
$ ./openshift-tests run-test "[sig-storage][Feature:BYOK][Jira:\"Storage\"] managed storage classes should be set with the specified encryption key [Suite:openshift/conformance/parallel]" 
  I0306 22:01:15.707974   18101 binary.go:78] Found 8527 test specs
  I0306 22:01:15.709887   18101 binary.go:95] 1077 test specs remain, after filtering out k8s
openshift-tests v1.33.0-1115-g337b212
  I0306 22:01:36.359239   18101 test_setup.go:125] Extended test version v1.33.0-1115-g337b212
  I0306 22:01:36.359528   18101 test_context.go:559] Tolerating taints "node-role.kubernetes.io/control-plane" when considering if nodes are ready
  I0306 22:01:36.360102 18101 framework.go:2324] [precondition-check] checking if cluster is MicroShift
  I0306 22:01:36.446422 18101 framework.go:2348] IsMicroShiftCluster: microshift-version configmap not found, not MicroShift
  I0306 22:01:36.446690   18101 binary.go:122] Loaded test configuration: &framework.TestContextType{KubeConfig:"/Users/wangpenghao/.kube/mgmt_kubeconfig", KubeContext:"", KubeAPIContentType:"application/vnd.kubernetes.protobuf", KubeletRootDir:"/var/lib/kubelet", KubeletConfigDropinDir:"", CertDir:"", Host:"https://api.ci-op-lvyh95vq-01805.private-ibmcloud-1.qe.devcluster.openshift.com:6443", BearerToken:"<redacted>", RepoRoot:"../../", ListImages:false, listTests:false, listLabels:false, ListConformanceTests:false, Provider:"ibmcloud", Tooling:"", timeouts:framework.TimeoutContext{Poll:2000000000, PodStart:300000000000, PodStartShort:120000000000, PodStartSlow:900000000000, PodDelete:300000000000, ClaimProvision:300000000000, DataSourceProvision:300000000000, ClaimProvisionShort:60000000000, ClaimBound:180000000000, PVReclaim:180000000000, PVBound:180000000000, PVCreate:180000000000, PVDelete:300000000000, PVDeleteSlow:1200000000000, SnapshotCreate:300000000000, SnapshotDelete:300000000000, SnapshotControllerMetrics:300000000000, SystemPodsStartup:600000000000, NodeSchedulable:1800000000000, SystemDaemonsetStartup:300000000000, NodeNotReady:180000000000}, CloudConfig:framework.CloudConfig{APIEndpoint:"", ProjectID:"", Zone:"jp-tok-1", Zones:[]string{"jp-tok-1", "jp-tok-2", "jp-tok-3"}, Region:"", MultiZone:true, MultiMaster:true, Cluster:"", MasterName:"", NodeInstanceGroup:"", NumNodes:3, ClusterIPRange:"", ClusterTag:"", Network:"", ConfigFile:"", NodeTag:"", MasterTag:"", Provider:(*ibmcloud.Provider)(0x10e843048)}, KubectlPath:"kubectl", OutputDir:"/tmp", ReportDir:"", ReportPrefix:"", ReportCompleteGinkgo:false, ReportCompleteJUnit:false, Prefix:"e2e", MinStartupPods:-1, EtcdUpgradeStorage:"", EtcdUpgradeVersion:"", GCEUpgradeScript:"", ContainerRuntimeEndpoint:"unix:///run/containerd/containerd.sock", ContainerRuntimeProcessName:"containerd", ContainerRuntimePidFile:"/run/containerd/containerd.pid", SystemdServices:"containerd*", DumpSystemdJournal:false, ImageServiceEndpoint:"", MasterOSDistro:"custom", NodeOSDistro:"custom", NodeOSArch:"amd64", VerifyServiceAccount:true, DeleteNamespace:true, DeleteNamespaceOnFailure:true, AllowedNotReadyNodes:-1, CleanStart:false, GatherKubeSystemResourceUsageData:"false", GatherLogsSizes:false, GatherMetricsAfterTest:"false", GatherSuiteMetricsAfterTest:false, MaxNodesToGather:0, IncludeClusterAutoscalerMetrics:false, OutputPrintType:"json", CreateTestingNS:(framework.CreateTestingNSFn)(0x105dc2880), DumpLogsOnFailure:true, DisableLogDump:false, LogexporterGCSPath:"", NodeTestContextType:framework.NodeTestContextType{NodeE2E:false, NodeName:"", NodeConformance:false, PrepullImages:false, ImageDescription:"", RuntimeConfig:map[string]string(nil), SystemSpecName:"", RestartKubelet:false, ExtraEnvs:map[string]string(nil), StandaloneMode:false, CriProxyEnabled:false}, ClusterDNSDomain:"cluster.local", NodeKiller:framework.NodeKillerConfig{Enabled:false, FailureRatio:0.01, Interval:60000000000, JitterFactor:60, SimulatedDowntime:600000000000, NodeKillerStopCtx:context.Context(nil), NodeKillerStop:(func())(nil)}, IPFamily:"ipv4", NonblockingTaints:"node-role.kubernetes.io/control-plane", ProgressReportURL:"", SriovdpConfigMapFile:"", SpecSummaryOutput:"", DockerConfigFile:"", E2EDockerConfigFile:"", KubeTestRepoList:"", SnapshotControllerPodName:"", SnapshotControllerHTTPPort:0, RequireDevices:false, EnabledVolumeDrivers:[]string(nil)}
  Running Suite:  - /Users/wangpenghao/Automation/origin
  ======================================================
  Random Seed: 1772805675 - will randomize all specs

  Will run 1 of 1 specs
  ------------------------------
  [sig-storage][Feature:BYOK][Jira:"Storage"] managed storage classes should be set with the specified encryption key
  github.com/openshift/origin/test/extended/storage/csi_byok.go:37
    STEP: Creating a kubernetes client @ 03/06/26 22:01:36.465
  I0306 22:01:36.466047   18101 discovery.go:214] Invalidating discovery information
  I0306 22:01:45.049652 18101 client.go:293] configPath is now "/var/folders/fl/wkjr1_ld75nfdb92ftdltyvh0000gn/T/configfile94106"
  I0306 22:01:45.049763 18101 client.go:368] The user is now "e2e-test-csi-byok-hv5qx-user"
  I0306 22:01:45.049784 18101 client.go:370] Creating project "e2e-test-csi-byok-hv5qx"
  I0306 22:01:45.392849 18101 client.go:378] Waiting on permissions in project "e2e-test-csi-byok-hv5qx" ...
  I0306 22:01:46.465010 18101 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs
  I0306 22:01:46.631390 18101 client.go:422] Waiting for ServiceAccount "default" to be provisioned...
  I0306 22:01:46.976237 18101 client.go:422] Waiting for ServiceAccount "builder" to be provisioned...
  I0306 22:01:47.317366 18101 client.go:422] Waiting for ServiceAccount "deployer" to be provisioned...
  I0306 22:01:47.684201 18101 client.go:432] Waiting for RoleBinding "system:image-pullers" to be provisioned...
  I0306 22:01:47.844203 18101 client.go:432] Waiting for RoleBinding "system:image-builders" to be provisioned...
  I0306 22:01:47.993026 18101 client.go:432] Waiting for RoleBinding "system:deployers" to be provisioned...
  I0306 22:01:51.334549 18101 client.go:469] Project "e2e-test-csi-byok-hv5qx" has been fully provisioned.
    STEP: Get preset storageClass names from configuration @ 03/06/26 22:01:51.576
    STEP: Verify all preset storage classes have encryption key configured @ 03/06/26 22:01:51.576
    STEP: Verifying storage class: ibmc-vpc-block-10iops-tier @ 03/06/26 22:01:51.576
    STEP: Verifying storage class: ibmc-vpc-block-5iops-tier @ 03/06/26 22:01:51.659
    STEP: Verifying storage class: ibmc-vpc-block-custom @ 03/06/26 22:01:51.737
  I0306 22:01:51.908868 18101 client.go:689] Deleted {user.openshift.io/v1, Resource=users  e2e-test-csi-byok-hv5qx-user}, err: <nil>
  I0306 22:01:52.438400 18101 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-csi-byok-hv5qx}, err: <nil>
  I0306 22:01:52.521924 18101 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~R7Ube7DtGYQtNQbSlhdPzb_tAnnrY2FDgYXPTgjadWk}, err: <nil>
    STEP: Destroying namespace "e2e-test-csi-byok-hv5qx" for this suite. @ 03/06/26 22:01:52.522
  • [16.154 seconds]
  ------------------------------

  Ran 1 of 1 Specs in 16.155 seconds
  SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped
[
  {
    "name": "[sig-storage][Feature:BYOK][Jira:\"Storage\"] managed storage classes should be set with the specified encryption key [Suite:openshift/conformance/parallel]",
    "lifecycle": "blocking",
    "duration": 16158,
    "startTime": "2026-03-06 14:01:36.446760 UTC",
    "endTime": "2026-03-06 14:01:52.604853 UTC",
    "result": "passed",
    "output": "  STEP: Creating a kubernetes client @ 03/06/26 22:01:36.465\nI0306 22:01:45.049652 18101 client.go:293] configPath is now \"/var/folders/fl/wkjr1_ld75nfdb92ftdltyvh0000gn/T/configfile94106\"\nI0306 22:01:45.049763 18101 client.go:368] The user is now \"e2e-test-csi-byok-hv5qx-user\"\nI0306 22:01:45.049784 18101 client.go:370] Creating project \"e2e-test-csi-byok-hv5qx\"\nI0306 22:01:45.392849 18101 client.go:378] Waiting on permissions in project \"e2e-test-csi-byok-hv5qx\" ...\nI0306 22:01:46.465010 18101 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs\nI0306 22:01:46.631390 18101 client.go:422] Waiting for ServiceAccount \"default\" to be provisioned...\nI0306 22:01:46.976237 18101 client.go:422] Waiting for ServiceAccount \"builder\" to be provisioned...\nI0306 22:01:47.317366 18101 client.go:422] Waiting for ServiceAccount \"deployer\" to be provisioned...\nI0306 22:01:47.684201 18101 client.go:432] Waiting for RoleBinding \"system:image-pullers\" to be provisioned...\nI0306 22:01:47.844203 18101 client.go:432] Waiting for RoleBinding \"system:image-builders\" to be provisioned...\nI0306 22:01:47.993026 18101 client.go:432] Waiting for RoleBinding \"system:deployers\" to be provisioned...\nI0306 22:01:51.334549 18101 client.go:469] Project \"e2e-test-csi-byok-hv5qx\" has been fully provisioned.\n  STEP: Get preset storageClass names from configuration @ 03/06/26 22:01:51.576\n  STEP: Verify all preset storage classes have encryption key configured @ 03/06/26 22:01:51.576\n  STEP: Verifying storage class: ibmc-vpc-block-10iops-tier @ 03/06/26 22:01:51.576\n  STEP: Verifying storage class: ibmc-vpc-block-5iops-tier @ 03/06/26 22:01:51.659\n  STEP: Verifying storage class: ibmc-vpc-block-custom @ 03/06/26 22:01:51.737\nI0306 22:01:51.908868 18101 client.go:689] Deleted {user.openshift.io/v1, Resource=users  e2e-test-csi-byok-hv5qx-user}, err: \u003cnil\u003e\nI0306 22:01:52.438400 18101 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-csi-byok-hv5qx}, err: \u003cnil\u003e\nI0306 22:01:52.521924 18101 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~R7Ube7DtGYQtNQbSlhdPzb_tAnnrY2FDgYXPTgjadWk}, err: \u003cnil\u003e\n  STEP: Destroying namespace \"e2e-test-csi-byok-hv5qx\" for this suite. @ 03/06/26 22:01:52.522\n"
  }
]

Summary by CodeRabbit

  • New Features

    • Added IBM Cloud provider support for cluster discovery and storage configuration.
    • Enhanced storage configuration management with BYOK (Bring Your Own Key) support across cloud platforms.
  • Tests

    • Added comprehensive BYOK integration validation tests for CSI storage classes.

@openshift-ci-robot
Copy link

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 openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Feb 14, 2026
@openshift-ci-robot
Copy link

openshift-ci-robot commented Feb 14, 2026

@Phaow: This pull request references STOR-2893 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 sub-task to target the "4.22.0" version, but no target version was set.

Details

In response to this:

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.

@Phaow Phaow marked this pull request as draft February 14, 2026 09:03
@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 Feb 14, 2026
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Feb 14, 2026

@Phaow: all tests passed!

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-ci-robot
Copy link

openshift-ci-robot commented Mar 6, 2026

@Phaow: This pull request references STOR-2893 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 sub-task to target the "4.22.0" version, but no target version was set.

Details

In response to this:

Why we need this?

Test records

  • aws-byok-cluster test record
$ ./openshift-tests run-test "[sig-storage][Feature:BYOK][Jira:\"Storage\"] managed storage classes should be set with the specified encryption key [Suite:openshift/conformance/parallel]" 
 I0303 20:54:01.354472   30170 binary.go:78] Found 8527 test specs
 I0303 20:54:01.356060   30170 binary.go:95] 1077 test specs remain, after filtering out k8s
openshift-tests v1.33.0-1115-g337b212
 I0303 20:54:09.242272   30170 test_setup.go:125] Extended test version v1.33.0-1115-g337b212
 I0303 20:54:09.242425   30170 test_context.go:559] Tolerating taints "node-role.kubernetes.io/control-plane" when considering if nodes are ready
 I0303 20:54:09.243172 30170 framework.go:2324] [precondition-check] checking if cluster is MicroShift
 I0303 20:54:09.464274 30170 framework.go:2348] IsMicroShiftCluster: microshift-version configmap not found, not MicroShift
 I0303 20:54:09.464612   30170 binary.go:122] Loaded test configuration: &framework.TestContextType{KubeConfig:"/Users/wangpenghao/.kube/config", KubeContext:"", KubeAPIContentType:"application/vnd.kubernetes.protobuf", KubeletRootDir:"/var/lib/kubelet", KubeletConfigDropinDir:"", CertDir:"", Host:"https://api.pewang-0303a.qe.devcluster.openshift.com:6443", BearerToken:"<redacted>", RepoRoot:"../../", ListImages:false, listTests:false, listLabels:false, ListConformanceTests:false, Provider:"aws", Tooling:"", timeouts:framework.TimeoutContext{Poll:2000000000, PodStart:300000000000, PodStartShort:120000000000, PodStartSlow:900000000000, PodDelete:300000000000, ClaimProvision:300000000000, DataSourceProvision:300000000000, ClaimProvisionShort:60000000000, ClaimBound:180000000000, PVReclaim:180000000000, PVBound:180000000000, PVCreate:180000000000, PVDelete:300000000000, PVDeleteSlow:1200000000000, SnapshotCreate:300000000000, SnapshotDelete:300000000000, SnapshotControllerMetrics:300000000000, SystemPodsStartup:600000000000, NodeSchedulable:1800000000000, SystemDaemonsetStartup:300000000000, NodeNotReady:180000000000}, CloudConfig:framework.CloudConfig{APIEndpoint:"", ProjectID:"", Zone:"us-east-2a", Zones:[]string{"us-east-2a", "us-east-2b", "us-east-2c"}, Region:"us-east-2", MultiZone:true, MultiMaster:true, Cluster:"", MasterName:"", NodeInstanceGroup:"", NumNodes:3, ClusterIPRange:"", ClusterTag:"", Network:"", ConfigFile:"", NodeTag:"", MasterTag:"", Provider:(*aws.Provider)(0x10df17048)}, KubectlPath:"kubectl", OutputDir:"/tmp", ReportDir:"", ReportPrefix:"", ReportCompleteGinkgo:false, ReportCompleteJUnit:false, Prefix:"e2e", MinStartupPods:-1, EtcdUpgradeStorage:"", EtcdUpgradeVersion:"", GCEUpgradeScript:"", ContainerRuntimeEndpoint:"unix:///run/containerd/containerd.sock", ContainerRuntimeProcessName:"containerd", ContainerRuntimePidFile:"/run/containerd/containerd.pid", SystemdServices:"containerd*", DumpSystemdJournal:false, ImageServiceEndpoint:"", MasterOSDistro:"custom", NodeOSDistro:"custom", NodeOSArch:"amd64", VerifyServiceAccount:true, DeleteNamespace:true, DeleteNamespaceOnFailure:true, AllowedNotReadyNodes:-1, CleanStart:false, GatherKubeSystemResourceUsageData:"false", GatherLogsSizes:false, GatherMetricsAfterTest:"false", GatherSuiteMetricsAfterTest:false, MaxNodesToGather:0, IncludeClusterAutoscalerMetrics:false, OutputPrintType:"json", CreateTestingNS:(framework.CreateTestingNSFn)(0x105496880), DumpLogsOnFailure:true, DisableLogDump:false, LogexporterGCSPath:"", NodeTestContextType:framework.NodeTestContextType{NodeE2E:false, NodeName:"", NodeConformance:false, PrepullImages:false, ImageDescription:"", RuntimeConfig:map[string]string(nil), SystemSpecName:"", RestartKubelet:false, ExtraEnvs:map[string]string(nil), StandaloneMode:false, CriProxyEnabled:false}, ClusterDNSDomain:"cluster.local", NodeKiller:framework.NodeKillerConfig{Enabled:false, FailureRatio:0.01, Interval:60000000000, JitterFactor:60, SimulatedDowntime:600000000000, NodeKillerStopCtx:context.Context(nil), NodeKillerStop:(func())(nil)}, IPFamily:"ipv4", NonblockingTaints:"node-role.kubernetes.io/control-plane", ProgressReportURL:"", SriovdpConfigMapFile:"", SpecSummaryOutput:"", DockerConfigFile:"", E2EDockerConfigFile:"", KubeTestRepoList:"", SnapshotControllerPodName:"", SnapshotControllerHTTPPort:0, RequireDevices:false, EnabledVolumeDrivers:[]string(nil)}
 Running Suite:  - /Users/wangpenghao/Automation/origin
 ======================================================
 Random Seed: 1772542441 - will randomize all specs

 Will run 1 of 1 specs
 ------------------------------
 [sig-storage][Feature:BYOK][Jira:"Storage"] managed storage classes should be set with the specified encryption key
 github.com/openshift/origin/test/extended/storage/csi_byok.go:37
   STEP: Creating a kubernetes client @ 03/03/26 20:54:09.473
 I0303 20:54:09.474613   30170 discovery.go:214] Invalidating discovery information
 I0303 20:54:14.607911 30170 client.go:293] configPath is now "/var/folders/fl/wkjr1_ld75nfdb92ftdltyvh0000gn/T/configfile2409803311"
 I0303 20:54:14.607954 30170 client.go:368] The user is now "e2e-test-csi-byok-gmkgp-user"
 I0303 20:54:14.607974 30170 client.go:370] Creating project "e2e-test-csi-byok-gmkgp"
 I0303 20:54:14.935768 30170 client.go:378] Waiting on permissions in project "e2e-test-csi-byok-gmkgp" ...
 I0303 20:54:16.199464 30170 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs
 I0303 20:54:16.423148 30170 client.go:422] Waiting for ServiceAccount "default" to be provisioned...
 I0303 20:54:16.996188 30170 client.go:422] Waiting for ServiceAccount "builder" to be provisioned...
 I0303 20:54:17.560385 30170 client.go:422] Waiting for ServiceAccount "deployer" to be provisioned...
 I0303 20:54:18.127023 30170 client.go:432] Waiting for RoleBinding "system:image-pullers" to be provisioned...
 I0303 20:54:18.359013 30170 client.go:432] Waiting for RoleBinding "system:image-builders" to be provisioned...
 I0303 20:54:18.839394 30170 client.go:432] Waiting for RoleBinding "system:deployers" to be provisioned...
 I0303 20:54:22.380652 30170 client.go:469] Project "e2e-test-csi-byok-gmkgp" has been fully provisioned.
   STEP: Get preset storageClass names from configuration @ 03/03/26 20:54:22.651
   STEP: Verify all preset storage classes have encryption key configured @ 03/03/26 20:54:22.651
   STEP: Verifying storage class: gp2-csi @ 03/03/26 20:54:22.651
   STEP: Verifying storage class: gp3-csi @ 03/03/26 20:54:22.878
 I0303 20:54:23.351546 30170 client.go:689] Deleted {user.openshift.io/v1, Resource=users  e2e-test-csi-byok-gmkgp-user}, err: <nil>
 I0303 20:54:23.674411 30170 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-csi-byok-gmkgp}, err: <nil>
 I0303 20:54:23.983181 30170 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~bN_nmH4eCjt3lELpTXwdl4drpSZRvGwxqnD_1toWuWU}, err: <nil>
   STEP: Destroying namespace "e2e-test-csi-byok-gmkgp" for this suite. @ 03/03/26 20:54:23.983
 • [14.755 seconds]
 ------------------------------

 Ran 1 of 1 Specs in 14.755 seconds
 SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped
[
 {
   "name": "[sig-storage][Feature:BYOK][Jira:\"Storage\"] managed storage classes should be set with the specified encryption key [Suite:openshift/conformance/parallel]",
   "lifecycle": "blocking",
   "duration": 14755,
   "startTime": "2026-03-03 12:54:09.464689 UTC",
   "endTime": "2026-03-03 12:54:24.220543 UTC",
   "result": "passed",
   "output": "  STEP: Creating a kubernetes client @ 03/03/26 20:54:09.473\nI0303 20:54:14.607911 30170 client.go:293] configPath is now \"/var/folders/fl/wkjr1_ld75nfdb92ftdltyvh0000gn/T/configfile2409803311\"\nI0303 20:54:14.607954 30170 client.go:368] The user is now \"e2e-test-csi-byok-gmkgp-user\"\nI0303 20:54:14.607974 30170 client.go:370] Creating project \"e2e-test-csi-byok-gmkgp\"\nI0303 20:54:14.935768 30170 client.go:378] Waiting on permissions in project \"e2e-test-csi-byok-gmkgp\" ...\nI0303 20:54:16.199464 30170 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs\nI0303 20:54:16.423148 30170 client.go:422] Waiting for ServiceAccount \"default\" to be provisioned...\nI0303 20:54:16.996188 30170 client.go:422] Waiting for ServiceAccount \"builder\" to be provisioned...\nI0303 20:54:17.560385 30170 client.go:422] Waiting for ServiceAccount \"deployer\" to be provisioned...\nI0303 20:54:18.127023 30170 client.go:432] Waiting for RoleBinding \"system:image-pullers\" to be provisioned...\nI0303 20:54:18.359013 30170 client.go:432] Waiting for RoleBinding \"system:image-builders\" to be provisioned...\nI0303 20:54:18.839394 30170 client.go:432] Waiting for RoleBinding \"system:deployers\" to be provisioned...\nI0303 20:54:22.380652 30170 client.go:469] Project \"e2e-test-csi-byok-gmkgp\" has been fully provisioned.\n  STEP: Get preset storageClass names from configuration @ 03/03/26 20:54:22.651\n  STEP: Verify all preset storage classes have encryption key configured @ 03/03/26 20:54:22.651\n  STEP: Verifying storage class: gp2-csi @ 03/03/26 20:54:22.651\n  STEP: Verifying storage class: gp3-csi @ 03/03/26 20:54:22.878\nI0303 20:54:23.351546 30170 client.go:689] Deleted {user.openshift.io/v1, Resource=users  e2e-test-csi-byok-gmkgp-user}, err: \u003cnil\u003e\nI0303 20:54:23.674411 30170 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-csi-byok-gmkgp}, err: \u003cnil\u003e\nI0303 20:54:23.983181 30170 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~bN_nmH4eCjt3lELpTXwdl4drpSZRvGwxqnD_1toWuWU}, err: \u003cnil\u003e\n  STEP: Destroying namespace \"e2e-test-csi-byok-gmkgp\" for this suite. @ 03/03/26 20:54:23.983\n"
 }
]
  • azure byok test record
$ ./openshift-tests run-test "[sig-storage][Feature:BYOK][Jira:\"Storage\"] managed storage classes should be set with the specified encryption key [Suite:openshift/conformance/parallel]" 
 I0304 14:54:54.195552   72514 binary.go:78] Found 8527 test specs
 I0304 14:54:54.197212   72514 binary.go:95] 1077 test specs remain, after filtering out k8s
openshift-tests v1.33.0-1115-g337b212
 I0304 14:54:57.939433   72514 test_setup.go:125] Extended test version v1.33.0-1115-g337b212
 I0304 14:54:57.939477   72514 test_context.go:559] Tolerating taints "node-role.kubernetes.io/control-plane" when considering if nodes are ready
 I0304 14:54:57.939977 72514 framework.go:2324] [precondition-check] checking if cluster is MicroShift
 I0304 14:54:58.184954 72514 framework.go:2348] IsMicroShiftCluster: microshift-version configmap not found, not MicroShift
 I0304 14:54:58.185320   72514 binary.go:122] Loaded test configuration: &framework.TestContextType{KubeConfig:"/Users/wangpenghao/.kube/config", KubeContext:"", KubeAPIContentType:"application/vnd.kubernetes.protobuf", KubeletRootDir:"/var/lib/kubelet", KubeletConfigDropinDir:"", CertDir:"", Host:"https://api.pewang-0304az.qe.azure.devcluster.openshift.com:6443", BearerToken:"<redacted>", RepoRoot:"../../", ListImages:false, listTests:false, listLabels:false, ListConformanceTests:false, Provider:"azure", Tooling:"", timeouts:framework.TimeoutContext{Poll:2000000000, PodStart:300000000000, PodStartShort:120000000000, PodStartSlow:900000000000, PodDelete:300000000000, ClaimProvision:300000000000, DataSourceProvision:300000000000, ClaimProvisionShort:60000000000, ClaimBound:180000000000, PVReclaim:180000000000, PVBound:180000000000, PVCreate:180000000000, PVDelete:300000000000, PVDeleteSlow:1200000000000, SnapshotCreate:300000000000, SnapshotDelete:300000000000, SnapshotControllerMetrics:300000000000, SystemPodsStartup:600000000000, NodeSchedulable:1800000000000, SystemDaemonsetStartup:300000000000, NodeNotReady:180000000000}, CloudConfig:framework.CloudConfig{APIEndpoint:"", ProjectID:"", Zone:"0", Zones:[]string{"0", "1", "2"}, Region:"", MultiZone:true, MultiMaster:true, Cluster:"", MasterName:"", NodeInstanceGroup:"", NumNodes:3, ClusterIPRange:"", ClusterTag:"", Network:"", ConfigFile:"/var/folders/fl/wkjr1_ld75nfdb92ftdltyvh0000gn/T/e2e-2843429833", NodeTag:"", MasterTag:"", Provider:(*framework.NullProvider)(0x10feb3048)}, KubectlPath:"kubectl", OutputDir:"/tmp", ReportDir:"", ReportPrefix:"", ReportCompleteGinkgo:false, ReportCompleteJUnit:false, Prefix:"e2e", MinStartupPods:-1, EtcdUpgradeStorage:"", EtcdUpgradeVersion:"", GCEUpgradeScript:"", ContainerRuntimeEndpoint:"unix:///run/containerd/containerd.sock", ContainerRuntimeProcessName:"containerd", ContainerRuntimePidFile:"/run/containerd/containerd.pid", SystemdServices:"containerd*", DumpSystemdJournal:false, ImageServiceEndpoint:"", MasterOSDistro:"custom", NodeOSDistro:"custom", NodeOSArch:"amd64", VerifyServiceAccount:true, DeleteNamespace:true, DeleteNamespaceOnFailure:true, AllowedNotReadyNodes:-1, CleanStart:false, GatherKubeSystemResourceUsageData:"false", GatherLogsSizes:false, GatherMetricsAfterTest:"false", GatherSuiteMetricsAfterTest:false, MaxNodesToGather:0, IncludeClusterAutoscalerMetrics:false, OutputPrintType:"json", CreateTestingNS:(framework.CreateTestingNSFn)(0x107432880), DumpLogsOnFailure:true, DisableLogDump:false, LogexporterGCSPath:"", NodeTestContextType:framework.NodeTestContextType{NodeE2E:false, NodeName:"", NodeConformance:false, PrepullImages:false, ImageDescription:"", RuntimeConfig:map[string]string(nil), SystemSpecName:"", RestartKubelet:false, ExtraEnvs:map[string]string(nil), StandaloneMode:false, CriProxyEnabled:false}, ClusterDNSDomain:"cluster.local", NodeKiller:framework.NodeKillerConfig{Enabled:false, FailureRatio:0.01, Interval:60000000000, JitterFactor:60, SimulatedDowntime:600000000000, NodeKillerStopCtx:context.Context(nil), NodeKillerStop:(func())(nil)}, IPFamily:"ipv4", NonblockingTaints:"node-role.kubernetes.io/control-plane", ProgressReportURL:"", SriovdpConfigMapFile:"", SpecSummaryOutput:"", DockerConfigFile:"", E2EDockerConfigFile:"", KubeTestRepoList:"", SnapshotControllerPodName:"", SnapshotControllerHTTPPort:0, RequireDevices:false, EnabledVolumeDrivers:[]string(nil)}
 Running Suite:  - /Users/wangpenghao/Automation/origin
 ======================================================
 Random Seed: 1772607294 - will randomize all specs

 Will run 1 of 1 specs
 ------------------------------
 [sig-storage][Feature:BYOK][Jira:"Storage"] managed storage classes should be set with the specified encryption key
 github.com/openshift/origin/test/extended/storage/csi_byok.go:37
   STEP: Creating a kubernetes client @ 03/04/26 14:54:58.195
 I0304 14:54:58.196443   72514 discovery.go:214] Invalidating discovery information
 I0304 14:55:01.208984 72514 client.go:293] configPath is now "/var/folders/fl/wkjr1_ld75nfdb92ftdltyvh0000gn/T/configfile353105320"
 I0304 14:55:01.209065 72514 client.go:368] The user is now "e2e-test-csi-byok-kxc4k-user"
 I0304 14:55:01.209156 72514 client.go:370] Creating project "e2e-test-csi-byok-kxc4k"
 I0304 14:55:01.566560 72514 client.go:378] Waiting on permissions in project "e2e-test-csi-byok-kxc4k" ...
 I0304 14:55:02.559525 72514 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs
 I0304 14:55:02.807571 72514 client.go:422] Waiting for ServiceAccount "default" to be provisioned...
 I0304 14:55:03.401279 72514 client.go:422] Waiting for ServiceAccount "builder" to be provisioned...
 I0304 14:55:03.994624 72514 client.go:422] Waiting for ServiceAccount "deployer" to be provisioned...
 I0304 14:55:04.589256 72514 client.go:432] Waiting for RoleBinding "system:image-pullers" to be provisioned...
 I0304 14:55:05.082103 72514 client.go:432] Waiting for RoleBinding "system:image-builders" to be provisioned...
 I0304 14:55:05.572958 72514 client.go:432] Waiting for RoleBinding "system:deployers" to be provisioned...
 I0304 14:55:07.528586 72514 client.go:469] Project "e2e-test-csi-byok-kxc4k" has been fully provisioned.
   STEP: Get preset storageClass names from configuration @ 03/04/26 14:55:07.776
   STEP: Verify all preset storage classes have encryption key configured @ 03/04/26 14:55:07.777
   STEP: Verifying storage class: managed-csi @ 03/04/26 14:55:07.777
 I0304 14:55:08.277813 72514 client.go:689] Deleted {user.openshift.io/v1, Resource=users  e2e-test-csi-byok-kxc4k-user}, err: <nil>
 I0304 14:55:08.531746 72514 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-csi-byok-kxc4k}, err: <nil>
 I0304 14:55:08.783194 72514 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~TZvLNl8wKy0NFhUsJWTKPyxCUwJ24aDQfFwCCdOS_gk}, err: <nil>
   STEP: Destroying namespace "e2e-test-csi-byok-kxc4k" for this suite. @ 03/04/26 14:55:08.783
 • [10.862 seconds]
 ------------------------------

 Ran 1 of 1 Specs in 10.863 seconds
 SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped
[
 {
   "name": "[sig-storage][Feature:BYOK][Jira:\"Storage\"] managed storage classes should be set with the specified encryption key [Suite:openshift/conformance/parallel]",
   "lifecycle": "blocking",
   "duration": 10862,
   "startTime": "2026-03-04 06:54:58.185434 UTC",
   "endTime": "2026-03-04 06:55:09.048350 UTC",
   "result": "passed",
   "output": "  STEP: Creating a kubernetes client @ 03/04/26 14:54:58.195\nI0304 14:55:01.208984 72514 client.go:293] configPath is now \"/var/folders/fl/wkjr1_ld75nfdb92ftdltyvh0000gn/T/configfile353105320\"\nI0304 14:55:01.209065 72514 client.go:368] The user is now \"e2e-test-csi-byok-kxc4k-user\"\nI0304 14:55:01.209156 72514 client.go:370] Creating project \"e2e-test-csi-byok-kxc4k\"\nI0304 14:55:01.566560 72514 client.go:378] Waiting on permissions in project \"e2e-test-csi-byok-kxc4k\" ...\nI0304 14:55:02.559525 72514 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs\nI0304 14:55:02.807571 72514 client.go:422] Waiting for ServiceAccount \"default\" to be provisioned...\nI0304 14:55:03.401279 72514 client.go:422] Waiting for ServiceAccount \"builder\" to be provisioned...\nI0304 14:55:03.994624 72514 client.go:422] Waiting for ServiceAccount \"deployer\" to be provisioned...\nI0304 14:55:04.589256 72514 client.go:432] Waiting for RoleBinding \"system:image-pullers\" to be provisioned...\nI0304 14:55:05.082103 72514 client.go:432] Waiting for RoleBinding \"system:image-builders\" to be provisioned...\nI0304 14:55:05.572958 72514 client.go:432] Waiting for RoleBinding \"system:deployers\" to be provisioned...\nI0304 14:55:07.528586 72514 client.go:469] Project \"e2e-test-csi-byok-kxc4k\" has been fully provisioned.\n  STEP: Get preset storageClass names from configuration @ 03/04/26 14:55:07.776\n  STEP: Verify all preset storage classes have encryption key configured @ 03/04/26 14:55:07.777\n  STEP: Verifying storage class: managed-csi @ 03/04/26 14:55:07.777\nI0304 14:55:08.277813 72514 client.go:689] Deleted {user.openshift.io/v1, Resource=users  e2e-test-csi-byok-kxc4k-user}, err: \u003cnil\u003e\nI0304 14:55:08.531746 72514 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-csi-byok-kxc4k}, err: \u003cnil\u003e\nI0304 14:55:08.783194 72514 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~TZvLNl8wKy0NFhUsJWTKPyxCUwJ24aDQfFwCCdOS_gk}, err: \u003cnil\u003e\n  STEP: Destroying namespace \"e2e-test-csi-byok-kxc4k\" for this suite. @ 03/04/26 14:55:08.783\n"
 }
]
  • gce byok test record
$ ./openshift-tests run-test "[sig-storage][Feature:BYOK][Jira:\"Storage\"] managed storage classes should be set with the specified encryption key [Suite:openshift/conformance/parallel]" 
 I0304 21:13:51.407339    9587 binary.go:78] Found 8527 test specs
 I0304 21:13:51.409551    9587 binary.go:95] 1077 test specs remain, after filtering out k8s
openshift-tests v1.33.0-1115-g337b212
 I0304 21:13:58.012018    9587 test_setup.go:125] Extended test version v1.33.0-1115-g337b212
 I0304 21:13:58.012135    9587 test_context.go:559] Tolerating taints "node-role.kubernetes.io/control-plane" when considering if nodes are ready
 I0304 21:13:58.012784 9587 framework.go:2324] [precondition-check] checking if cluster is MicroShift
 I0304 21:13:58.312982 9587 framework.go:2348] IsMicroShiftCluster: microshift-version configmap not found, not MicroShift
 I0304 21:13:58.313631    9587 binary.go:122] Loaded test configuration: &framework.TestContextType{KubeConfig:"/Users/wangpenghao/.kube/config", KubeContext:"", KubeAPIContentType:"application/vnd.kubernetes.protobuf", KubeletRootDir:"/var/lib/kubelet", KubeletConfigDropinDir:"", CertDir:"", Host:"https://api.pewang-0304g.qe.gcp.devcluster.openshift.com:6443", BearerToken:"<redacted>", RepoRoot:"../../", ListImages:false, listTests:false, listLabels:false, ListConformanceTests:false, Provider:"gce", Tooling:"", timeouts:framework.TimeoutContext{Poll:2000000000, PodStart:300000000000, PodStartShort:120000000000, PodStartSlow:900000000000, PodDelete:300000000000, ClaimProvision:300000000000, DataSourceProvision:300000000000, ClaimProvisionShort:60000000000, ClaimBound:180000000000, PVReclaim:180000000000, PVBound:180000000000, PVCreate:180000000000, PVDelete:300000000000, PVDeleteSlow:1200000000000, SnapshotCreate:300000000000, SnapshotDelete:300000000000, SnapshotControllerMetrics:300000000000, SystemPodsStartup:600000000000, NodeSchedulable:1800000000000, SystemDaemonsetStartup:300000000000, NodeNotReady:180000000000}, CloudConfig:framework.CloudConfig{APIEndpoint:"", ProjectID:"openshift-qe", Zone:"us-central1-a", Zones:[]string{"us-central1-a", "us-central1-b", "us-central1-c"}, Region:"us-central1", MultiZone:true, MultiMaster:true, Cluster:"", MasterName:"", NodeInstanceGroup:"", NumNodes:3, ClusterIPRange:"", ClusterTag:"", Network:"", ConfigFile:"", NodeTag:"", MasterTag:"", Provider:(*framework.NullProvider)(0x110773048)}, KubectlPath:"kubectl", OutputDir:"/tmp", ReportDir:"", ReportPrefix:"", ReportCompleteGinkgo:false, ReportCompleteJUnit:false, Prefix:"e2e", MinStartupPods:-1, EtcdUpgradeStorage:"", EtcdUpgradeVersion:"", GCEUpgradeScript:"", ContainerRuntimeEndpoint:"unix:///run/containerd/containerd.sock", ContainerRuntimeProcessName:"containerd", ContainerRuntimePidFile:"/run/containerd/containerd.pid", SystemdServices:"containerd*", DumpSystemdJournal:false, ImageServiceEndpoint:"", MasterOSDistro:"custom", NodeOSDistro:"custom", NodeOSArch:"amd64", VerifyServiceAccount:true, DeleteNamespace:true, DeleteNamespaceOnFailure:true, AllowedNotReadyNodes:-1, CleanStart:false, GatherKubeSystemResourceUsageData:"false", GatherLogsSizes:false, GatherMetricsAfterTest:"false", GatherSuiteMetricsAfterTest:false, MaxNodesToGather:0, IncludeClusterAutoscalerMetrics:false, OutputPrintType:"json", CreateTestingNS:(framework.CreateTestingNSFn)(0x107cf2880), DumpLogsOnFailure:true, DisableLogDump:false, LogexporterGCSPath:"", NodeTestContextType:framework.NodeTestContextType{NodeE2E:false, NodeName:"", NodeConformance:false, PrepullImages:false, ImageDescription:"", RuntimeConfig:map[string]string(nil), SystemSpecName:"", RestartKubelet:false, ExtraEnvs:map[string]string(nil), StandaloneMode:false, CriProxyEnabled:false}, ClusterDNSDomain:"cluster.local", NodeKiller:framework.NodeKillerConfig{Enabled:false, FailureRatio:0.01, Interval:60000000000, JitterFactor:60, SimulatedDowntime:600000000000, NodeKillerStopCtx:context.Context(nil), NodeKillerStop:(func())(nil)}, IPFamily:"ipv4", NonblockingTaints:"node-role.kubernetes.io/control-plane", ProgressReportURL:"", SriovdpConfigMapFile:"", SpecSummaryOutput:"", DockerConfigFile:"", E2EDockerConfigFile:"", KubeTestRepoList:"", SnapshotControllerPodName:"", SnapshotControllerHTTPPort:0, RequireDevices:false, EnabledVolumeDrivers:[]string(nil)}
 Running Suite:  - /Users/wangpenghao/Automation/origin
 ======================================================
 Random Seed: 1772630031 - will randomize all specs

 Will run 1 of 1 specs
 ------------------------------
 [sig-storage][Feature:BYOK][Jira:"Storage"] managed storage classes should be set with the specified encryption key
 github.com/openshift/origin/test/extended/storage/csi_byok.go:37
   STEP: Creating a kubernetes client @ 03/04/26 21:13:58.329
 I0304 21:13:58.330913    9587 discovery.go:214] Invalidating discovery information
 I0304 21:14:02.603198 9587 client.go:293] configPath is now "/var/folders/fl/wkjr1_ld75nfdb92ftdltyvh0000gn/T/configfile3203854224"
 I0304 21:14:02.603254 9587 client.go:368] The user is now "e2e-test-csi-byok-blzcs-user"
 I0304 21:14:02.603276 9587 client.go:370] Creating project "e2e-test-csi-byok-blzcs"
 I0304 21:14:02.984515 9587 client.go:378] Waiting on permissions in project "e2e-test-csi-byok-blzcs" ...
 I0304 21:14:04.562088 9587 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs
 I0304 21:14:04.862626 9587 client.go:422] Waiting for ServiceAccount "default" to be provisioned...
 I0304 21:14:05.568316 9587 client.go:422] Waiting for ServiceAccount "builder" to be provisioned...
 I0304 21:14:06.271742 9587 client.go:422] Waiting for ServiceAccount "deployer" to be provisioned...
 I0304 21:14:06.982482 9587 client.go:432] Waiting for RoleBinding "system:image-pullers" to be provisioned...
 I0304 21:14:07.281502 9587 client.go:432] Waiting for RoleBinding "system:image-builders" to be provisioned...
 I0304 21:14:07.881115 9587 client.go:432] Waiting for RoleBinding "system:deployers" to be provisioned...
 I0304 21:14:09.873798 9587 client.go:469] Project "e2e-test-csi-byok-blzcs" has been fully provisioned.
   STEP: Get preset storageClass names from configuration @ 03/04/26 21:14:10.184
   STEP: Verify all preset storage classes have encryption key configured @ 03/04/26 21:14:10.184
   STEP: Verifying storage class: standard-csi @ 03/04/26 21:14:10.186
   STEP: Verifying storage class: ssd-csi @ 03/04/26 21:14:10.483
 I0304 21:14:11.146691 9587 client.go:689] Deleted {user.openshift.io/v1, Resource=users  e2e-test-csi-byok-blzcs-user}, err: <nil>
 I0304 21:14:11.454278 9587 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-csi-byok-blzcs}, err: <nil>
 I0304 21:14:11.765634 9587 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~_Ahd36HXtldX-Y1JS8yOaJtvFQKL9FXA_aSmASVJxPk}, err: <nil>
   STEP: Destroying namespace "e2e-test-csi-byok-blzcs" for this suite. @ 03/04/26 21:14:11.765
 • [13.756 seconds]
 ------------------------------

 Ran 1 of 1 Specs in 13.756 seconds
 SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped
[
 {
   "name": "[sig-storage][Feature:BYOK][Jira:\"Storage\"] managed storage classes should be set with the specified encryption key [Suite:openshift/conformance/parallel]",
   "lifecycle": "blocking",
   "duration": 13757,
   "startTime": "2026-03-04 13:13:58.313789 UTC",
   "endTime": "2026-03-04 13:14:12.070825 UTC",
   "result": "passed",
   "output": "  STEP: Creating a kubernetes client @ 03/04/26 21:13:58.329\nI0304 21:14:02.603198 9587 client.go:293] configPath is now \"/var/folders/fl/wkjr1_ld75nfdb92ftdltyvh0000gn/T/configfile3203854224\"\nI0304 21:14:02.603254 9587 client.go:368] The user is now \"e2e-test-csi-byok-blzcs-user\"\nI0304 21:14:02.603276 9587 client.go:370] Creating project \"e2e-test-csi-byok-blzcs\"\nI0304 21:14:02.984515 9587 client.go:378] Waiting on permissions in project \"e2e-test-csi-byok-blzcs\" ...\nI0304 21:14:04.562088 9587 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs\nI0304 21:14:04.862626 9587 client.go:422] Waiting for ServiceAccount \"default\" to be provisioned...\nI0304 21:14:05.568316 9587 client.go:422] Waiting for ServiceAccount \"builder\" to be provisioned...\nI0304 21:14:06.271742 9587 client.go:422] Waiting for ServiceAccount \"deployer\" to be provisioned...\nI0304 21:14:06.982482 9587 client.go:432] Waiting for RoleBinding \"system:image-pullers\" to be provisioned...\nI0304 21:14:07.281502 9587 client.go:432] Waiting for RoleBinding \"system:image-builders\" to be provisioned...\nI0304 21:14:07.881115 9587 client.go:432] Waiting for RoleBinding \"system:deployers\" to be provisioned...\nI0304 21:14:09.873798 9587 client.go:469] Project \"e2e-test-csi-byok-blzcs\" has been fully provisioned.\n  STEP: Get preset storageClass names from configuration @ 03/04/26 21:14:10.184\n  STEP: Verify all preset storage classes have encryption key configured @ 03/04/26 21:14:10.184\n  STEP: Verifying storage class: standard-csi @ 03/04/26 21:14:10.186\n  STEP: Verifying storage class: ssd-csi @ 03/04/26 21:14:10.483\nI0304 21:14:11.146691 9587 client.go:689] Deleted {user.openshift.io/v1, Resource=users  e2e-test-csi-byok-blzcs-user}, err: \u003cnil\u003e\nI0304 21:14:11.454278 9587 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-csi-byok-blzcs}, err: \u003cnil\u003e\nI0304 21:14:11.765634 9587 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~_Ahd36HXtldX-Y1JS8yOaJtvFQKL9FXA_aSmASVJxPk}, err: \u003cnil\u003e\n  STEP: Destroying namespace \"e2e-test-csi-byok-blzcs\" for this suite. @ 03/04/26 21:14:11.765\n"
 }
]
  • ibmcloud byok test record
$ ./openshift-tests run-test "[sig-storage][Feature:BYOK][Jira:\"Storage\"] managed storage classes should be set with the specified encryption key [Suite:openshift/conformance/parallel]" 
 I0306 22:01:15.707974   18101 binary.go:78] Found 8527 test specs
 I0306 22:01:15.709887   18101 binary.go:95] 1077 test specs remain, after filtering out k8s
openshift-tests v1.33.0-1115-g337b212
 I0306 22:01:36.359239   18101 test_setup.go:125] Extended test version v1.33.0-1115-g337b212
 I0306 22:01:36.359528   18101 test_context.go:559] Tolerating taints "node-role.kubernetes.io/control-plane" when considering if nodes are ready
 I0306 22:01:36.360102 18101 framework.go:2324] [precondition-check] checking if cluster is MicroShift
 I0306 22:01:36.446422 18101 framework.go:2348] IsMicroShiftCluster: microshift-version configmap not found, not MicroShift
 I0306 22:01:36.446690   18101 binary.go:122] Loaded test configuration: &framework.TestContextType{KubeConfig:"/Users/wangpenghao/.kube/mgmt_kubeconfig", KubeContext:"", KubeAPIContentType:"application/vnd.kubernetes.protobuf", KubeletRootDir:"/var/lib/kubelet", KubeletConfigDropinDir:"", CertDir:"", Host:"https://api.ci-op-lvyh95vq-01805.private-ibmcloud-1.qe.devcluster.openshift.com:6443", BearerToken:"<redacted>", RepoRoot:"../../", ListImages:false, listTests:false, listLabels:false, ListConformanceTests:false, Provider:"ibmcloud", Tooling:"", timeouts:framework.TimeoutContext{Poll:2000000000, PodStart:300000000000, PodStartShort:120000000000, PodStartSlow:900000000000, PodDelete:300000000000, ClaimProvision:300000000000, DataSourceProvision:300000000000, ClaimProvisionShort:60000000000, ClaimBound:180000000000, PVReclaim:180000000000, PVBound:180000000000, PVCreate:180000000000, PVDelete:300000000000, PVDeleteSlow:1200000000000, SnapshotCreate:300000000000, SnapshotDelete:300000000000, SnapshotControllerMetrics:300000000000, SystemPodsStartup:600000000000, NodeSchedulable:1800000000000, SystemDaemonsetStartup:300000000000, NodeNotReady:180000000000}, CloudConfig:framework.CloudConfig{APIEndpoint:"", ProjectID:"", Zone:"jp-tok-1", Zones:[]string{"jp-tok-1", "jp-tok-2", "jp-tok-3"}, Region:"", MultiZone:true, MultiMaster:true, Cluster:"", MasterName:"", NodeInstanceGroup:"", NumNodes:3, ClusterIPRange:"", ClusterTag:"", Network:"", ConfigFile:"", NodeTag:"", MasterTag:"", Provider:(*ibmcloud.Provider)(0x10e843048)}, KubectlPath:"kubectl", OutputDir:"/tmp", ReportDir:"", ReportPrefix:"", ReportCompleteGinkgo:false, ReportCompleteJUnit:false, Prefix:"e2e", MinStartupPods:-1, EtcdUpgradeStorage:"", EtcdUpgradeVersion:"", GCEUpgradeScript:"", ContainerRuntimeEndpoint:"unix:///run/containerd/containerd.sock", ContainerRuntimeProcessName:"containerd", ContainerRuntimePidFile:"/run/containerd/containerd.pid", SystemdServices:"containerd*", DumpSystemdJournal:false, ImageServiceEndpoint:"", MasterOSDistro:"custom", NodeOSDistro:"custom", NodeOSArch:"amd64", VerifyServiceAccount:true, DeleteNamespace:true, DeleteNamespaceOnFailure:true, AllowedNotReadyNodes:-1, CleanStart:false, GatherKubeSystemResourceUsageData:"false", GatherLogsSizes:false, GatherMetricsAfterTest:"false", GatherSuiteMetricsAfterTest:false, MaxNodesToGather:0, IncludeClusterAutoscalerMetrics:false, OutputPrintType:"json", CreateTestingNS:(framework.CreateTestingNSFn)(0x105dc2880), DumpLogsOnFailure:true, DisableLogDump:false, LogexporterGCSPath:"", NodeTestContextType:framework.NodeTestContextType{NodeE2E:false, NodeName:"", NodeConformance:false, PrepullImages:false, ImageDescription:"", RuntimeConfig:map[string]string(nil), SystemSpecName:"", RestartKubelet:false, ExtraEnvs:map[string]string(nil), StandaloneMode:false, CriProxyEnabled:false}, ClusterDNSDomain:"cluster.local", NodeKiller:framework.NodeKillerConfig{Enabled:false, FailureRatio:0.01, Interval:60000000000, JitterFactor:60, SimulatedDowntime:600000000000, NodeKillerStopCtx:context.Context(nil), NodeKillerStop:(func())(nil)}, IPFamily:"ipv4", NonblockingTaints:"node-role.kubernetes.io/control-plane", ProgressReportURL:"", SriovdpConfigMapFile:"", SpecSummaryOutput:"", DockerConfigFile:"", E2EDockerConfigFile:"", KubeTestRepoList:"", SnapshotControllerPodName:"", SnapshotControllerHTTPPort:0, RequireDevices:false, EnabledVolumeDrivers:[]string(nil)}
 Running Suite:  - /Users/wangpenghao/Automation/origin
 ======================================================
 Random Seed: 1772805675 - will randomize all specs

 Will run 1 of 1 specs
 ------------------------------
 [sig-storage][Feature:BYOK][Jira:"Storage"] managed storage classes should be set with the specified encryption key
 github.com/openshift/origin/test/extended/storage/csi_byok.go:37
   STEP: Creating a kubernetes client @ 03/06/26 22:01:36.465
 I0306 22:01:36.466047   18101 discovery.go:214] Invalidating discovery information
 I0306 22:01:45.049652 18101 client.go:293] configPath is now "/var/folders/fl/wkjr1_ld75nfdb92ftdltyvh0000gn/T/configfile94106"
 I0306 22:01:45.049763 18101 client.go:368] The user is now "e2e-test-csi-byok-hv5qx-user"
 I0306 22:01:45.049784 18101 client.go:370] Creating project "e2e-test-csi-byok-hv5qx"
 I0306 22:01:45.392849 18101 client.go:378] Waiting on permissions in project "e2e-test-csi-byok-hv5qx" ...
 I0306 22:01:46.465010 18101 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs
 I0306 22:01:46.631390 18101 client.go:422] Waiting for ServiceAccount "default" to be provisioned...
 I0306 22:01:46.976237 18101 client.go:422] Waiting for ServiceAccount "builder" to be provisioned...
 I0306 22:01:47.317366 18101 client.go:422] Waiting for ServiceAccount "deployer" to be provisioned...
 I0306 22:01:47.684201 18101 client.go:432] Waiting for RoleBinding "system:image-pullers" to be provisioned...
 I0306 22:01:47.844203 18101 client.go:432] Waiting for RoleBinding "system:image-builders" to be provisioned...
 I0306 22:01:47.993026 18101 client.go:432] Waiting for RoleBinding "system:deployers" to be provisioned...
 I0306 22:01:51.334549 18101 client.go:469] Project "e2e-test-csi-byok-hv5qx" has been fully provisioned.
   STEP: Get preset storageClass names from configuration @ 03/06/26 22:01:51.576
   STEP: Verify all preset storage classes have encryption key configured @ 03/06/26 22:01:51.576
   STEP: Verifying storage class: ibmc-vpc-block-10iops-tier @ 03/06/26 22:01:51.576
   STEP: Verifying storage class: ibmc-vpc-block-5iops-tier @ 03/06/26 22:01:51.659
   STEP: Verifying storage class: ibmc-vpc-block-custom @ 03/06/26 22:01:51.737
 I0306 22:01:51.908868 18101 client.go:689] Deleted {user.openshift.io/v1, Resource=users  e2e-test-csi-byok-hv5qx-user}, err: <nil>
 I0306 22:01:52.438400 18101 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-csi-byok-hv5qx}, err: <nil>
 I0306 22:01:52.521924 18101 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~R7Ube7DtGYQtNQbSlhdPzb_tAnnrY2FDgYXPTgjadWk}, err: <nil>
   STEP: Destroying namespace "e2e-test-csi-byok-hv5qx" for this suite. @ 03/06/26 22:01:52.522
 • [16.154 seconds]
 ------------------------------

 Ran 1 of 1 Specs in 16.155 seconds
 SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped
[
 {
   "name": "[sig-storage][Feature:BYOK][Jira:\"Storage\"] managed storage classes should be set with the specified encryption key [Suite:openshift/conformance/parallel]",
   "lifecycle": "blocking",
   "duration": 16158,
   "startTime": "2026-03-06 14:01:36.446760 UTC",
   "endTime": "2026-03-06 14:01:52.604853 UTC",
   "result": "passed",
   "output": "  STEP: Creating a kubernetes client @ 03/06/26 22:01:36.465\nI0306 22:01:45.049652 18101 client.go:293] configPath is now \"/var/folders/fl/wkjr1_ld75nfdb92ftdltyvh0000gn/T/configfile94106\"\nI0306 22:01:45.049763 18101 client.go:368] The user is now \"e2e-test-csi-byok-hv5qx-user\"\nI0306 22:01:45.049784 18101 client.go:370] Creating project \"e2e-test-csi-byok-hv5qx\"\nI0306 22:01:45.392849 18101 client.go:378] Waiting on permissions in project \"e2e-test-csi-byok-hv5qx\" ...\nI0306 22:01:46.465010 18101 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs\nI0306 22:01:46.631390 18101 client.go:422] Waiting for ServiceAccount \"default\" to be provisioned...\nI0306 22:01:46.976237 18101 client.go:422] Waiting for ServiceAccount \"builder\" to be provisioned...\nI0306 22:01:47.317366 18101 client.go:422] Waiting for ServiceAccount \"deployer\" to be provisioned...\nI0306 22:01:47.684201 18101 client.go:432] Waiting for RoleBinding \"system:image-pullers\" to be provisioned...\nI0306 22:01:47.844203 18101 client.go:432] Waiting for RoleBinding \"system:image-builders\" to be provisioned...\nI0306 22:01:47.993026 18101 client.go:432] Waiting for RoleBinding \"system:deployers\" to be provisioned...\nI0306 22:01:51.334549 18101 client.go:469] Project \"e2e-test-csi-byok-hv5qx\" has been fully provisioned.\n  STEP: Get preset storageClass names from configuration @ 03/06/26 22:01:51.576\n  STEP: Verify all preset storage classes have encryption key configured @ 03/06/26 22:01:51.576\n  STEP: Verifying storage class: ibmc-vpc-block-10iops-tier @ 03/06/26 22:01:51.576\n  STEP: Verifying storage class: ibmc-vpc-block-5iops-tier @ 03/06/26 22:01:51.659\n  STEP: Verifying storage class: ibmc-vpc-block-custom @ 03/06/26 22:01:51.737\nI0306 22:01:51.908868 18101 client.go:689] Deleted {user.openshift.io/v1, Resource=users  e2e-test-csi-byok-hv5qx-user}, err: \u003cnil\u003e\nI0306 22:01:52.438400 18101 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-csi-byok-hv5qx}, err: \u003cnil\u003e\nI0306 22:01:52.521924 18101 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~R7Ube7DtGYQtNQbSlhdPzb_tAnnrY2FDgYXPTgjadWk}, err: \u003cnil\u003e\n  STEP: Destroying namespace \"e2e-test-csi-byok-hv5qx\" for this suite. @ 03/06/26 22:01:52.522\n"
 }
]

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.

Signed-off-by: Penghao <pewang@redhat.com>
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Mar 6, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: Phaow
Once this PR has been reviewed and has the lgtm label, please assign neisw 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

@Phaow
Copy link
Contributor Author

Phaow commented Mar 6, 2026

/retitle STOR-2893: add storage BYOK feature tests

@openshift-ci openshift-ci bot changed the title [WIP] STOR-2893: add storage BYOK feature tests STOR-2893: add storage BYOK feature tests Mar 6, 2026
@Phaow Phaow marked this pull request as ready for review March 6, 2026 14:13
@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 Mar 6, 2026
@openshift-ci openshift-ci bot requested review from gnufied and sjenning March 6, 2026 14:14
@coderabbitai
Copy link

coderabbitai bot commented Mar 6, 2026

Walkthrough

This pull request adds IBM Cloud support to the cluster discovery provider system and introduces a CSI provisioner configuration framework for testing Bring-Your-Own-Key (BYOK) functionality across multiple cloud platforms and storage provisioners.

Changes

Cohort / File(s) Summary
IBM Cloud Provider Integration
pkg/clioptions/clusterdiscovery/cluster.go, pkg/clioptions/clusterdiscovery/provider.go
Added IBM Cloud as a recognized provider in cluster discovery by assigning provider name in LoadConfig and adding "ibmcloud" case handling in DecodeProvider alongside existing providers.
CSI Provisioner Configuration
test/extended/storage/const.go
Introduced comprehensive provisioner configuration model defining ProvisionerType, FeatureSupport, ProvisionerInfo, and PlatformConfig types with platform-specific provisioner mappings for aws, gce, azure, and ibmcloud. Includes accessor functions for querying provisioners by platform, name, BYOK support, and type.
BYOK Storage Testing
test/extended/storage/csi_byok.go
Added end-to-end Ginkgo test suite validating BYOK integration across supported CSI provisioners with helper functions to extract BYOK key identifiers from ClusterCSIDriver and verify consistency between storage classes and BYOK configurations.

Sequence Diagram

sequenceDiagram
    participant Test as BYOK Test Suite
    participant Cluster as Kubernetes Cluster
    participant Config as Config Module
    participant CSI as ClusterCSIDriver
    participant SC as Storage Classes

    Test->>Config: GetBYOKProvisioners(platform)
    Config-->>Test: Provisioner list

    loop For each provisioner
        Test->>Config: GetProvisionerInfo(name)
        Config-->>Test: Provisioner details
        
        Test->>CSI: Read ClusterCSIDriver resource
        CSI-->>Test: Driver config with BYOK key
        
        Test->>Test: Extract BYOK key by driver type
        
        Test->>Config: GetPresetStorageClassNames(provisioner)
        Config-->>Test: Storage class names
        
        Test->>SC: Query storage classes
        SC-->>Test: Storage class definitions
        
        Test->>Test: Validate provisioner matches<br/>& BYOK key present
    end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Test Structure And Quality ⚠️ Warning Test lacks proper setup/cleanup with no AfterEach block, violates established error handling patterns by using g.Skip() instead of e2e.Failf() for API errors, and masks infrastructure issues by returning empty strings on API failures instead of differentiating error conditions. Add AfterEach block for cleanup, replace g.Skip() with e2e.Failf() for expected resource API errors, and modify getByokKeyIDFromClusterCSIDriver() to return error information distinguishing between NotFound and other API failures.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly describes the main change: adding storage BYOK feature tests, which aligns with the primary purpose of the PR to migrate and implement BYOK validation tests.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Stable And Deterministic Test Names ✅ Passed Test name is static and deterministic with no dynamic values. Dynamic provisioners and storage classes are used only in test logic and g.By() descriptive steps, not in test titles.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 golangci-lint (2.5.0)

Error: can't load config: unsupported version of the configuration: "" See https://golangci-lint.run/docs/product/migration-guide for migration instructions
The command is terminated due to an error: can't load config: unsupported version of the configuration: "" See https://golangci-lint.run/docs/product/migration-guide for migration instructions

Tip

Try Coding Plans. Let us write the prompt for your AI agent so you can ship faster (with fewer bugs).
Share your feedback on Discord.


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

@openshift-ci-robot
Copy link

openshift-ci-robot commented Mar 6, 2026

@Phaow: This pull request references STOR-2893 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 sub-task to target the "4.22.0" version, but no target version was set.

Details

In response to this:

Why we need this?

Test records

  • aws-byok-cluster test record
$ ./openshift-tests run-test "[sig-storage][Feature:BYOK][Jira:\"Storage\"] managed storage classes should be set with the specified encryption key [Suite:openshift/conformance/parallel]" 
 I0303 20:54:01.354472   30170 binary.go:78] Found 8527 test specs
 I0303 20:54:01.356060   30170 binary.go:95] 1077 test specs remain, after filtering out k8s
openshift-tests v1.33.0-1115-g337b212
 I0303 20:54:09.242272   30170 test_setup.go:125] Extended test version v1.33.0-1115-g337b212
 I0303 20:54:09.242425   30170 test_context.go:559] Tolerating taints "node-role.kubernetes.io/control-plane" when considering if nodes are ready
 I0303 20:54:09.243172 30170 framework.go:2324] [precondition-check] checking if cluster is MicroShift
 I0303 20:54:09.464274 30170 framework.go:2348] IsMicroShiftCluster: microshift-version configmap not found, not MicroShift
 I0303 20:54:09.464612   30170 binary.go:122] Loaded test configuration: &framework.TestContextType{KubeConfig:"/Users/wangpenghao/.kube/config", KubeContext:"", KubeAPIContentType:"application/vnd.kubernetes.protobuf", KubeletRootDir:"/var/lib/kubelet", KubeletConfigDropinDir:"", CertDir:"", Host:"https://api.pewang-0303a.qe.devcluster.openshift.com:6443", BearerToken:"<redacted>", RepoRoot:"../../", ListImages:false, listTests:false, listLabels:false, ListConformanceTests:false, Provider:"aws", Tooling:"", timeouts:framework.TimeoutContext{Poll:2000000000, PodStart:300000000000, PodStartShort:120000000000, PodStartSlow:900000000000, PodDelete:300000000000, ClaimProvision:300000000000, DataSourceProvision:300000000000, ClaimProvisionShort:60000000000, ClaimBound:180000000000, PVReclaim:180000000000, PVBound:180000000000, PVCreate:180000000000, PVDelete:300000000000, PVDeleteSlow:1200000000000, SnapshotCreate:300000000000, SnapshotDelete:300000000000, SnapshotControllerMetrics:300000000000, SystemPodsStartup:600000000000, NodeSchedulable:1800000000000, SystemDaemonsetStartup:300000000000, NodeNotReady:180000000000}, CloudConfig:framework.CloudConfig{APIEndpoint:"", ProjectID:"", Zone:"us-east-2a", Zones:[]string{"us-east-2a", "us-east-2b", "us-east-2c"}, Region:"us-east-2", MultiZone:true, MultiMaster:true, Cluster:"", MasterName:"", NodeInstanceGroup:"", NumNodes:3, ClusterIPRange:"", ClusterTag:"", Network:"", ConfigFile:"", NodeTag:"", MasterTag:"", Provider:(*aws.Provider)(0x10df17048)}, KubectlPath:"kubectl", OutputDir:"/tmp", ReportDir:"", ReportPrefix:"", ReportCompleteGinkgo:false, ReportCompleteJUnit:false, Prefix:"e2e", MinStartupPods:-1, EtcdUpgradeStorage:"", EtcdUpgradeVersion:"", GCEUpgradeScript:"", ContainerRuntimeEndpoint:"unix:///run/containerd/containerd.sock", ContainerRuntimeProcessName:"containerd", ContainerRuntimePidFile:"/run/containerd/containerd.pid", SystemdServices:"containerd*", DumpSystemdJournal:false, ImageServiceEndpoint:"", MasterOSDistro:"custom", NodeOSDistro:"custom", NodeOSArch:"amd64", VerifyServiceAccount:true, DeleteNamespace:true, DeleteNamespaceOnFailure:true, AllowedNotReadyNodes:-1, CleanStart:false, GatherKubeSystemResourceUsageData:"false", GatherLogsSizes:false, GatherMetricsAfterTest:"false", GatherSuiteMetricsAfterTest:false, MaxNodesToGather:0, IncludeClusterAutoscalerMetrics:false, OutputPrintType:"json", CreateTestingNS:(framework.CreateTestingNSFn)(0x105496880), DumpLogsOnFailure:true, DisableLogDump:false, LogexporterGCSPath:"", NodeTestContextType:framework.NodeTestContextType{NodeE2E:false, NodeName:"", NodeConformance:false, PrepullImages:false, ImageDescription:"", RuntimeConfig:map[string]string(nil), SystemSpecName:"", RestartKubelet:false, ExtraEnvs:map[string]string(nil), StandaloneMode:false, CriProxyEnabled:false}, ClusterDNSDomain:"cluster.local", NodeKiller:framework.NodeKillerConfig{Enabled:false, FailureRatio:0.01, Interval:60000000000, JitterFactor:60, SimulatedDowntime:600000000000, NodeKillerStopCtx:context.Context(nil), NodeKillerStop:(func())(nil)}, IPFamily:"ipv4", NonblockingTaints:"node-role.kubernetes.io/control-plane", ProgressReportURL:"", SriovdpConfigMapFile:"", SpecSummaryOutput:"", DockerConfigFile:"", E2EDockerConfigFile:"", KubeTestRepoList:"", SnapshotControllerPodName:"", SnapshotControllerHTTPPort:0, RequireDevices:false, EnabledVolumeDrivers:[]string(nil)}
 Running Suite:  - /Users/wangpenghao/Automation/origin
 ======================================================
 Random Seed: 1772542441 - will randomize all specs

 Will run 1 of 1 specs
 ------------------------------
 [sig-storage][Feature:BYOK][Jira:"Storage"] managed storage classes should be set with the specified encryption key
 github.com/openshift/origin/test/extended/storage/csi_byok.go:37
   STEP: Creating a kubernetes client @ 03/03/26 20:54:09.473
 I0303 20:54:09.474613   30170 discovery.go:214] Invalidating discovery information
 I0303 20:54:14.607911 30170 client.go:293] configPath is now "/var/folders/fl/wkjr1_ld75nfdb92ftdltyvh0000gn/T/configfile2409803311"
 I0303 20:54:14.607954 30170 client.go:368] The user is now "e2e-test-csi-byok-gmkgp-user"
 I0303 20:54:14.607974 30170 client.go:370] Creating project "e2e-test-csi-byok-gmkgp"
 I0303 20:54:14.935768 30170 client.go:378] Waiting on permissions in project "e2e-test-csi-byok-gmkgp" ...
 I0303 20:54:16.199464 30170 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs
 I0303 20:54:16.423148 30170 client.go:422] Waiting for ServiceAccount "default" to be provisioned...
 I0303 20:54:16.996188 30170 client.go:422] Waiting for ServiceAccount "builder" to be provisioned...
 I0303 20:54:17.560385 30170 client.go:422] Waiting for ServiceAccount "deployer" to be provisioned...
 I0303 20:54:18.127023 30170 client.go:432] Waiting for RoleBinding "system:image-pullers" to be provisioned...
 I0303 20:54:18.359013 30170 client.go:432] Waiting for RoleBinding "system:image-builders" to be provisioned...
 I0303 20:54:18.839394 30170 client.go:432] Waiting for RoleBinding "system:deployers" to be provisioned...
 I0303 20:54:22.380652 30170 client.go:469] Project "e2e-test-csi-byok-gmkgp" has been fully provisioned.
   STEP: Get preset storageClass names from configuration @ 03/03/26 20:54:22.651
   STEP: Verify all preset storage classes have encryption key configured @ 03/03/26 20:54:22.651
   STEP: Verifying storage class: gp2-csi @ 03/03/26 20:54:22.651
   STEP: Verifying storage class: gp3-csi @ 03/03/26 20:54:22.878
 I0303 20:54:23.351546 30170 client.go:689] Deleted {user.openshift.io/v1, Resource=users  e2e-test-csi-byok-gmkgp-user}, err: <nil>
 I0303 20:54:23.674411 30170 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-csi-byok-gmkgp}, err: <nil>
 I0303 20:54:23.983181 30170 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~bN_nmH4eCjt3lELpTXwdl4drpSZRvGwxqnD_1toWuWU}, err: <nil>
   STEP: Destroying namespace "e2e-test-csi-byok-gmkgp" for this suite. @ 03/03/26 20:54:23.983
 • [14.755 seconds]
 ------------------------------

 Ran 1 of 1 Specs in 14.755 seconds
 SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped
[
 {
   "name": "[sig-storage][Feature:BYOK][Jira:\"Storage\"] managed storage classes should be set with the specified encryption key [Suite:openshift/conformance/parallel]",
   "lifecycle": "blocking",
   "duration": 14755,
   "startTime": "2026-03-03 12:54:09.464689 UTC",
   "endTime": "2026-03-03 12:54:24.220543 UTC",
   "result": "passed",
   "output": "  STEP: Creating a kubernetes client @ 03/03/26 20:54:09.473\nI0303 20:54:14.607911 30170 client.go:293] configPath is now \"/var/folders/fl/wkjr1_ld75nfdb92ftdltyvh0000gn/T/configfile2409803311\"\nI0303 20:54:14.607954 30170 client.go:368] The user is now \"e2e-test-csi-byok-gmkgp-user\"\nI0303 20:54:14.607974 30170 client.go:370] Creating project \"e2e-test-csi-byok-gmkgp\"\nI0303 20:54:14.935768 30170 client.go:378] Waiting on permissions in project \"e2e-test-csi-byok-gmkgp\" ...\nI0303 20:54:16.199464 30170 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs\nI0303 20:54:16.423148 30170 client.go:422] Waiting for ServiceAccount \"default\" to be provisioned...\nI0303 20:54:16.996188 30170 client.go:422] Waiting for ServiceAccount \"builder\" to be provisioned...\nI0303 20:54:17.560385 30170 client.go:422] Waiting for ServiceAccount \"deployer\" to be provisioned...\nI0303 20:54:18.127023 30170 client.go:432] Waiting for RoleBinding \"system:image-pullers\" to be provisioned...\nI0303 20:54:18.359013 30170 client.go:432] Waiting for RoleBinding \"system:image-builders\" to be provisioned...\nI0303 20:54:18.839394 30170 client.go:432] Waiting for RoleBinding \"system:deployers\" to be provisioned...\nI0303 20:54:22.380652 30170 client.go:469] Project \"e2e-test-csi-byok-gmkgp\" has been fully provisioned.\n  STEP: Get preset storageClass names from configuration @ 03/03/26 20:54:22.651\n  STEP: Verify all preset storage classes have encryption key configured @ 03/03/26 20:54:22.651\n  STEP: Verifying storage class: gp2-csi @ 03/03/26 20:54:22.651\n  STEP: Verifying storage class: gp3-csi @ 03/03/26 20:54:22.878\nI0303 20:54:23.351546 30170 client.go:689] Deleted {user.openshift.io/v1, Resource=users  e2e-test-csi-byok-gmkgp-user}, err: \u003cnil\u003e\nI0303 20:54:23.674411 30170 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-csi-byok-gmkgp}, err: \u003cnil\u003e\nI0303 20:54:23.983181 30170 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~bN_nmH4eCjt3lELpTXwdl4drpSZRvGwxqnD_1toWuWU}, err: \u003cnil\u003e\n  STEP: Destroying namespace \"e2e-test-csi-byok-gmkgp\" for this suite. @ 03/03/26 20:54:23.983\n"
 }
]
  • azure byok test record
$ ./openshift-tests run-test "[sig-storage][Feature:BYOK][Jira:\"Storage\"] managed storage classes should be set with the specified encryption key [Suite:openshift/conformance/parallel]" 
 I0304 14:54:54.195552   72514 binary.go:78] Found 8527 test specs
 I0304 14:54:54.197212   72514 binary.go:95] 1077 test specs remain, after filtering out k8s
openshift-tests v1.33.0-1115-g337b212
 I0304 14:54:57.939433   72514 test_setup.go:125] Extended test version v1.33.0-1115-g337b212
 I0304 14:54:57.939477   72514 test_context.go:559] Tolerating taints "node-role.kubernetes.io/control-plane" when considering if nodes are ready
 I0304 14:54:57.939977 72514 framework.go:2324] [precondition-check] checking if cluster is MicroShift
 I0304 14:54:58.184954 72514 framework.go:2348] IsMicroShiftCluster: microshift-version configmap not found, not MicroShift
 I0304 14:54:58.185320   72514 binary.go:122] Loaded test configuration: &framework.TestContextType{KubeConfig:"/Users/wangpenghao/.kube/config", KubeContext:"", KubeAPIContentType:"application/vnd.kubernetes.protobuf", KubeletRootDir:"/var/lib/kubelet", KubeletConfigDropinDir:"", CertDir:"", Host:"https://api.pewang-0304az.qe.azure.devcluster.openshift.com:6443", BearerToken:"<redacted>", RepoRoot:"../../", ListImages:false, listTests:false, listLabels:false, ListConformanceTests:false, Provider:"azure", Tooling:"", timeouts:framework.TimeoutContext{Poll:2000000000, PodStart:300000000000, PodStartShort:120000000000, PodStartSlow:900000000000, PodDelete:300000000000, ClaimProvision:300000000000, DataSourceProvision:300000000000, ClaimProvisionShort:60000000000, ClaimBound:180000000000, PVReclaim:180000000000, PVBound:180000000000, PVCreate:180000000000, PVDelete:300000000000, PVDeleteSlow:1200000000000, SnapshotCreate:300000000000, SnapshotDelete:300000000000, SnapshotControllerMetrics:300000000000, SystemPodsStartup:600000000000, NodeSchedulable:1800000000000, SystemDaemonsetStartup:300000000000, NodeNotReady:180000000000}, CloudConfig:framework.CloudConfig{APIEndpoint:"", ProjectID:"", Zone:"0", Zones:[]string{"0", "1", "2"}, Region:"", MultiZone:true, MultiMaster:true, Cluster:"", MasterName:"", NodeInstanceGroup:"", NumNodes:3, ClusterIPRange:"", ClusterTag:"", Network:"", ConfigFile:"/var/folders/fl/wkjr1_ld75nfdb92ftdltyvh0000gn/T/e2e-2843429833", NodeTag:"", MasterTag:"", Provider:(*framework.NullProvider)(0x10feb3048)}, KubectlPath:"kubectl", OutputDir:"/tmp", ReportDir:"", ReportPrefix:"", ReportCompleteGinkgo:false, ReportCompleteJUnit:false, Prefix:"e2e", MinStartupPods:-1, EtcdUpgradeStorage:"", EtcdUpgradeVersion:"", GCEUpgradeScript:"", ContainerRuntimeEndpoint:"unix:///run/containerd/containerd.sock", ContainerRuntimeProcessName:"containerd", ContainerRuntimePidFile:"/run/containerd/containerd.pid", SystemdServices:"containerd*", DumpSystemdJournal:false, ImageServiceEndpoint:"", MasterOSDistro:"custom", NodeOSDistro:"custom", NodeOSArch:"amd64", VerifyServiceAccount:true, DeleteNamespace:true, DeleteNamespaceOnFailure:true, AllowedNotReadyNodes:-1, CleanStart:false, GatherKubeSystemResourceUsageData:"false", GatherLogsSizes:false, GatherMetricsAfterTest:"false", GatherSuiteMetricsAfterTest:false, MaxNodesToGather:0, IncludeClusterAutoscalerMetrics:false, OutputPrintType:"json", CreateTestingNS:(framework.CreateTestingNSFn)(0x107432880), DumpLogsOnFailure:true, DisableLogDump:false, LogexporterGCSPath:"", NodeTestContextType:framework.NodeTestContextType{NodeE2E:false, NodeName:"", NodeConformance:false, PrepullImages:false, ImageDescription:"", RuntimeConfig:map[string]string(nil), SystemSpecName:"", RestartKubelet:false, ExtraEnvs:map[string]string(nil), StandaloneMode:false, CriProxyEnabled:false}, ClusterDNSDomain:"cluster.local", NodeKiller:framework.NodeKillerConfig{Enabled:false, FailureRatio:0.01, Interval:60000000000, JitterFactor:60, SimulatedDowntime:600000000000, NodeKillerStopCtx:context.Context(nil), NodeKillerStop:(func())(nil)}, IPFamily:"ipv4", NonblockingTaints:"node-role.kubernetes.io/control-plane", ProgressReportURL:"", SriovdpConfigMapFile:"", SpecSummaryOutput:"", DockerConfigFile:"", E2EDockerConfigFile:"", KubeTestRepoList:"", SnapshotControllerPodName:"", SnapshotControllerHTTPPort:0, RequireDevices:false, EnabledVolumeDrivers:[]string(nil)}
 Running Suite:  - /Users/wangpenghao/Automation/origin
 ======================================================
 Random Seed: 1772607294 - will randomize all specs

 Will run 1 of 1 specs
 ------------------------------
 [sig-storage][Feature:BYOK][Jira:"Storage"] managed storage classes should be set with the specified encryption key
 github.com/openshift/origin/test/extended/storage/csi_byok.go:37
   STEP: Creating a kubernetes client @ 03/04/26 14:54:58.195
 I0304 14:54:58.196443   72514 discovery.go:214] Invalidating discovery information
 I0304 14:55:01.208984 72514 client.go:293] configPath is now "/var/folders/fl/wkjr1_ld75nfdb92ftdltyvh0000gn/T/configfile353105320"
 I0304 14:55:01.209065 72514 client.go:368] The user is now "e2e-test-csi-byok-kxc4k-user"
 I0304 14:55:01.209156 72514 client.go:370] Creating project "e2e-test-csi-byok-kxc4k"
 I0304 14:55:01.566560 72514 client.go:378] Waiting on permissions in project "e2e-test-csi-byok-kxc4k" ...
 I0304 14:55:02.559525 72514 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs
 I0304 14:55:02.807571 72514 client.go:422] Waiting for ServiceAccount "default" to be provisioned...
 I0304 14:55:03.401279 72514 client.go:422] Waiting for ServiceAccount "builder" to be provisioned...
 I0304 14:55:03.994624 72514 client.go:422] Waiting for ServiceAccount "deployer" to be provisioned...
 I0304 14:55:04.589256 72514 client.go:432] Waiting for RoleBinding "system:image-pullers" to be provisioned...
 I0304 14:55:05.082103 72514 client.go:432] Waiting for RoleBinding "system:image-builders" to be provisioned...
 I0304 14:55:05.572958 72514 client.go:432] Waiting for RoleBinding "system:deployers" to be provisioned...
 I0304 14:55:07.528586 72514 client.go:469] Project "e2e-test-csi-byok-kxc4k" has been fully provisioned.
   STEP: Get preset storageClass names from configuration @ 03/04/26 14:55:07.776
   STEP: Verify all preset storage classes have encryption key configured @ 03/04/26 14:55:07.777
   STEP: Verifying storage class: managed-csi @ 03/04/26 14:55:07.777
 I0304 14:55:08.277813 72514 client.go:689] Deleted {user.openshift.io/v1, Resource=users  e2e-test-csi-byok-kxc4k-user}, err: <nil>
 I0304 14:55:08.531746 72514 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-csi-byok-kxc4k}, err: <nil>
 I0304 14:55:08.783194 72514 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~TZvLNl8wKy0NFhUsJWTKPyxCUwJ24aDQfFwCCdOS_gk}, err: <nil>
   STEP: Destroying namespace "e2e-test-csi-byok-kxc4k" for this suite. @ 03/04/26 14:55:08.783
 • [10.862 seconds]
 ------------------------------

 Ran 1 of 1 Specs in 10.863 seconds
 SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped
[
 {
   "name": "[sig-storage][Feature:BYOK][Jira:\"Storage\"] managed storage classes should be set with the specified encryption key [Suite:openshift/conformance/parallel]",
   "lifecycle": "blocking",
   "duration": 10862,
   "startTime": "2026-03-04 06:54:58.185434 UTC",
   "endTime": "2026-03-04 06:55:09.048350 UTC",
   "result": "passed",
   "output": "  STEP: Creating a kubernetes client @ 03/04/26 14:54:58.195\nI0304 14:55:01.208984 72514 client.go:293] configPath is now \"/var/folders/fl/wkjr1_ld75nfdb92ftdltyvh0000gn/T/configfile353105320\"\nI0304 14:55:01.209065 72514 client.go:368] The user is now \"e2e-test-csi-byok-kxc4k-user\"\nI0304 14:55:01.209156 72514 client.go:370] Creating project \"e2e-test-csi-byok-kxc4k\"\nI0304 14:55:01.566560 72514 client.go:378] Waiting on permissions in project \"e2e-test-csi-byok-kxc4k\" ...\nI0304 14:55:02.559525 72514 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs\nI0304 14:55:02.807571 72514 client.go:422] Waiting for ServiceAccount \"default\" to be provisioned...\nI0304 14:55:03.401279 72514 client.go:422] Waiting for ServiceAccount \"builder\" to be provisioned...\nI0304 14:55:03.994624 72514 client.go:422] Waiting for ServiceAccount \"deployer\" to be provisioned...\nI0304 14:55:04.589256 72514 client.go:432] Waiting for RoleBinding \"system:image-pullers\" to be provisioned...\nI0304 14:55:05.082103 72514 client.go:432] Waiting for RoleBinding \"system:image-builders\" to be provisioned...\nI0304 14:55:05.572958 72514 client.go:432] Waiting for RoleBinding \"system:deployers\" to be provisioned...\nI0304 14:55:07.528586 72514 client.go:469] Project \"e2e-test-csi-byok-kxc4k\" has been fully provisioned.\n  STEP: Get preset storageClass names from configuration @ 03/04/26 14:55:07.776\n  STEP: Verify all preset storage classes have encryption key configured @ 03/04/26 14:55:07.777\n  STEP: Verifying storage class: managed-csi @ 03/04/26 14:55:07.777\nI0304 14:55:08.277813 72514 client.go:689] Deleted {user.openshift.io/v1, Resource=users  e2e-test-csi-byok-kxc4k-user}, err: \u003cnil\u003e\nI0304 14:55:08.531746 72514 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-csi-byok-kxc4k}, err: \u003cnil\u003e\nI0304 14:55:08.783194 72514 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~TZvLNl8wKy0NFhUsJWTKPyxCUwJ24aDQfFwCCdOS_gk}, err: \u003cnil\u003e\n  STEP: Destroying namespace \"e2e-test-csi-byok-kxc4k\" for this suite. @ 03/04/26 14:55:08.783\n"
 }
]
  • gce byok test record
$ ./openshift-tests run-test "[sig-storage][Feature:BYOK][Jira:\"Storage\"] managed storage classes should be set with the specified encryption key [Suite:openshift/conformance/parallel]" 
 I0304 21:13:51.407339    9587 binary.go:78] Found 8527 test specs
 I0304 21:13:51.409551    9587 binary.go:95] 1077 test specs remain, after filtering out k8s
openshift-tests v1.33.0-1115-g337b212
 I0304 21:13:58.012018    9587 test_setup.go:125] Extended test version v1.33.0-1115-g337b212
 I0304 21:13:58.012135    9587 test_context.go:559] Tolerating taints "node-role.kubernetes.io/control-plane" when considering if nodes are ready
 I0304 21:13:58.012784 9587 framework.go:2324] [precondition-check] checking if cluster is MicroShift
 I0304 21:13:58.312982 9587 framework.go:2348] IsMicroShiftCluster: microshift-version configmap not found, not MicroShift
 I0304 21:13:58.313631    9587 binary.go:122] Loaded test configuration: &framework.TestContextType{KubeConfig:"/Users/wangpenghao/.kube/config", KubeContext:"", KubeAPIContentType:"application/vnd.kubernetes.protobuf", KubeletRootDir:"/var/lib/kubelet", KubeletConfigDropinDir:"", CertDir:"", Host:"https://api.pewang-0304g.qe.gcp.devcluster.openshift.com:6443", BearerToken:"<redacted>", RepoRoot:"../../", ListImages:false, listTests:false, listLabels:false, ListConformanceTests:false, Provider:"gce", Tooling:"", timeouts:framework.TimeoutContext{Poll:2000000000, PodStart:300000000000, PodStartShort:120000000000, PodStartSlow:900000000000, PodDelete:300000000000, ClaimProvision:300000000000, DataSourceProvision:300000000000, ClaimProvisionShort:60000000000, ClaimBound:180000000000, PVReclaim:180000000000, PVBound:180000000000, PVCreate:180000000000, PVDelete:300000000000, PVDeleteSlow:1200000000000, SnapshotCreate:300000000000, SnapshotDelete:300000000000, SnapshotControllerMetrics:300000000000, SystemPodsStartup:600000000000, NodeSchedulable:1800000000000, SystemDaemonsetStartup:300000000000, NodeNotReady:180000000000}, CloudConfig:framework.CloudConfig{APIEndpoint:"", ProjectID:"openshift-qe", Zone:"us-central1-a", Zones:[]string{"us-central1-a", "us-central1-b", "us-central1-c"}, Region:"us-central1", MultiZone:true, MultiMaster:true, Cluster:"", MasterName:"", NodeInstanceGroup:"", NumNodes:3, ClusterIPRange:"", ClusterTag:"", Network:"", ConfigFile:"", NodeTag:"", MasterTag:"", Provider:(*framework.NullProvider)(0x110773048)}, KubectlPath:"kubectl", OutputDir:"/tmp", ReportDir:"", ReportPrefix:"", ReportCompleteGinkgo:false, ReportCompleteJUnit:false, Prefix:"e2e", MinStartupPods:-1, EtcdUpgradeStorage:"", EtcdUpgradeVersion:"", GCEUpgradeScript:"", ContainerRuntimeEndpoint:"unix:///run/containerd/containerd.sock", ContainerRuntimeProcessName:"containerd", ContainerRuntimePidFile:"/run/containerd/containerd.pid", SystemdServices:"containerd*", DumpSystemdJournal:false, ImageServiceEndpoint:"", MasterOSDistro:"custom", NodeOSDistro:"custom", NodeOSArch:"amd64", VerifyServiceAccount:true, DeleteNamespace:true, DeleteNamespaceOnFailure:true, AllowedNotReadyNodes:-1, CleanStart:false, GatherKubeSystemResourceUsageData:"false", GatherLogsSizes:false, GatherMetricsAfterTest:"false", GatherSuiteMetricsAfterTest:false, MaxNodesToGather:0, IncludeClusterAutoscalerMetrics:false, OutputPrintType:"json", CreateTestingNS:(framework.CreateTestingNSFn)(0x107cf2880), DumpLogsOnFailure:true, DisableLogDump:false, LogexporterGCSPath:"", NodeTestContextType:framework.NodeTestContextType{NodeE2E:false, NodeName:"", NodeConformance:false, PrepullImages:false, ImageDescription:"", RuntimeConfig:map[string]string(nil), SystemSpecName:"", RestartKubelet:false, ExtraEnvs:map[string]string(nil), StandaloneMode:false, CriProxyEnabled:false}, ClusterDNSDomain:"cluster.local", NodeKiller:framework.NodeKillerConfig{Enabled:false, FailureRatio:0.01, Interval:60000000000, JitterFactor:60, SimulatedDowntime:600000000000, NodeKillerStopCtx:context.Context(nil), NodeKillerStop:(func())(nil)}, IPFamily:"ipv4", NonblockingTaints:"node-role.kubernetes.io/control-plane", ProgressReportURL:"", SriovdpConfigMapFile:"", SpecSummaryOutput:"", DockerConfigFile:"", E2EDockerConfigFile:"", KubeTestRepoList:"", SnapshotControllerPodName:"", SnapshotControllerHTTPPort:0, RequireDevices:false, EnabledVolumeDrivers:[]string(nil)}
 Running Suite:  - /Users/wangpenghao/Automation/origin
 ======================================================
 Random Seed: 1772630031 - will randomize all specs

 Will run 1 of 1 specs
 ------------------------------
 [sig-storage][Feature:BYOK][Jira:"Storage"] managed storage classes should be set with the specified encryption key
 github.com/openshift/origin/test/extended/storage/csi_byok.go:37
   STEP: Creating a kubernetes client @ 03/04/26 21:13:58.329
 I0304 21:13:58.330913    9587 discovery.go:214] Invalidating discovery information
 I0304 21:14:02.603198 9587 client.go:293] configPath is now "/var/folders/fl/wkjr1_ld75nfdb92ftdltyvh0000gn/T/configfile3203854224"
 I0304 21:14:02.603254 9587 client.go:368] The user is now "e2e-test-csi-byok-blzcs-user"
 I0304 21:14:02.603276 9587 client.go:370] Creating project "e2e-test-csi-byok-blzcs"
 I0304 21:14:02.984515 9587 client.go:378] Waiting on permissions in project "e2e-test-csi-byok-blzcs" ...
 I0304 21:14:04.562088 9587 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs
 I0304 21:14:04.862626 9587 client.go:422] Waiting for ServiceAccount "default" to be provisioned...
 I0304 21:14:05.568316 9587 client.go:422] Waiting for ServiceAccount "builder" to be provisioned...
 I0304 21:14:06.271742 9587 client.go:422] Waiting for ServiceAccount "deployer" to be provisioned...
 I0304 21:14:06.982482 9587 client.go:432] Waiting for RoleBinding "system:image-pullers" to be provisioned...
 I0304 21:14:07.281502 9587 client.go:432] Waiting for RoleBinding "system:image-builders" to be provisioned...
 I0304 21:14:07.881115 9587 client.go:432] Waiting for RoleBinding "system:deployers" to be provisioned...
 I0304 21:14:09.873798 9587 client.go:469] Project "e2e-test-csi-byok-blzcs" has been fully provisioned.
   STEP: Get preset storageClass names from configuration @ 03/04/26 21:14:10.184
   STEP: Verify all preset storage classes have encryption key configured @ 03/04/26 21:14:10.184
   STEP: Verifying storage class: standard-csi @ 03/04/26 21:14:10.186
   STEP: Verifying storage class: ssd-csi @ 03/04/26 21:14:10.483
 I0304 21:14:11.146691 9587 client.go:689] Deleted {user.openshift.io/v1, Resource=users  e2e-test-csi-byok-blzcs-user}, err: <nil>
 I0304 21:14:11.454278 9587 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-csi-byok-blzcs}, err: <nil>
 I0304 21:14:11.765634 9587 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~_Ahd36HXtldX-Y1JS8yOaJtvFQKL9FXA_aSmASVJxPk}, err: <nil>
   STEP: Destroying namespace "e2e-test-csi-byok-blzcs" for this suite. @ 03/04/26 21:14:11.765
 • [13.756 seconds]
 ------------------------------

 Ran 1 of 1 Specs in 13.756 seconds
 SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped
[
 {
   "name": "[sig-storage][Feature:BYOK][Jira:\"Storage\"] managed storage classes should be set with the specified encryption key [Suite:openshift/conformance/parallel]",
   "lifecycle": "blocking",
   "duration": 13757,
   "startTime": "2026-03-04 13:13:58.313789 UTC",
   "endTime": "2026-03-04 13:14:12.070825 UTC",
   "result": "passed",
   "output": "  STEP: Creating a kubernetes client @ 03/04/26 21:13:58.329\nI0304 21:14:02.603198 9587 client.go:293] configPath is now \"/var/folders/fl/wkjr1_ld75nfdb92ftdltyvh0000gn/T/configfile3203854224\"\nI0304 21:14:02.603254 9587 client.go:368] The user is now \"e2e-test-csi-byok-blzcs-user\"\nI0304 21:14:02.603276 9587 client.go:370] Creating project \"e2e-test-csi-byok-blzcs\"\nI0304 21:14:02.984515 9587 client.go:378] Waiting on permissions in project \"e2e-test-csi-byok-blzcs\" ...\nI0304 21:14:04.562088 9587 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs\nI0304 21:14:04.862626 9587 client.go:422] Waiting for ServiceAccount \"default\" to be provisioned...\nI0304 21:14:05.568316 9587 client.go:422] Waiting for ServiceAccount \"builder\" to be provisioned...\nI0304 21:14:06.271742 9587 client.go:422] Waiting for ServiceAccount \"deployer\" to be provisioned...\nI0304 21:14:06.982482 9587 client.go:432] Waiting for RoleBinding \"system:image-pullers\" to be provisioned...\nI0304 21:14:07.281502 9587 client.go:432] Waiting for RoleBinding \"system:image-builders\" to be provisioned...\nI0304 21:14:07.881115 9587 client.go:432] Waiting for RoleBinding \"system:deployers\" to be provisioned...\nI0304 21:14:09.873798 9587 client.go:469] Project \"e2e-test-csi-byok-blzcs\" has been fully provisioned.\n  STEP: Get preset storageClass names from configuration @ 03/04/26 21:14:10.184\n  STEP: Verify all preset storage classes have encryption key configured @ 03/04/26 21:14:10.184\n  STEP: Verifying storage class: standard-csi @ 03/04/26 21:14:10.186\n  STEP: Verifying storage class: ssd-csi @ 03/04/26 21:14:10.483\nI0304 21:14:11.146691 9587 client.go:689] Deleted {user.openshift.io/v1, Resource=users  e2e-test-csi-byok-blzcs-user}, err: \u003cnil\u003e\nI0304 21:14:11.454278 9587 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-csi-byok-blzcs}, err: \u003cnil\u003e\nI0304 21:14:11.765634 9587 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~_Ahd36HXtldX-Y1JS8yOaJtvFQKL9FXA_aSmASVJxPk}, err: \u003cnil\u003e\n  STEP: Destroying namespace \"e2e-test-csi-byok-blzcs\" for this suite. @ 03/04/26 21:14:11.765\n"
 }
]
  • ibmcloud byok test record
$ ./openshift-tests run-test "[sig-storage][Feature:BYOK][Jira:\"Storage\"] managed storage classes should be set with the specified encryption key [Suite:openshift/conformance/parallel]" 
 I0306 22:01:15.707974   18101 binary.go:78] Found 8527 test specs
 I0306 22:01:15.709887   18101 binary.go:95] 1077 test specs remain, after filtering out k8s
openshift-tests v1.33.0-1115-g337b212
 I0306 22:01:36.359239   18101 test_setup.go:125] Extended test version v1.33.0-1115-g337b212
 I0306 22:01:36.359528   18101 test_context.go:559] Tolerating taints "node-role.kubernetes.io/control-plane" when considering if nodes are ready
 I0306 22:01:36.360102 18101 framework.go:2324] [precondition-check] checking if cluster is MicroShift
 I0306 22:01:36.446422 18101 framework.go:2348] IsMicroShiftCluster: microshift-version configmap not found, not MicroShift
 I0306 22:01:36.446690   18101 binary.go:122] Loaded test configuration: &framework.TestContextType{KubeConfig:"/Users/wangpenghao/.kube/mgmt_kubeconfig", KubeContext:"", KubeAPIContentType:"application/vnd.kubernetes.protobuf", KubeletRootDir:"/var/lib/kubelet", KubeletConfigDropinDir:"", CertDir:"", Host:"https://api.ci-op-lvyh95vq-01805.private-ibmcloud-1.qe.devcluster.openshift.com:6443", BearerToken:"<redacted>", RepoRoot:"../../", ListImages:false, listTests:false, listLabels:false, ListConformanceTests:false, Provider:"ibmcloud", Tooling:"", timeouts:framework.TimeoutContext{Poll:2000000000, PodStart:300000000000, PodStartShort:120000000000, PodStartSlow:900000000000, PodDelete:300000000000, ClaimProvision:300000000000, DataSourceProvision:300000000000, ClaimProvisionShort:60000000000, ClaimBound:180000000000, PVReclaim:180000000000, PVBound:180000000000, PVCreate:180000000000, PVDelete:300000000000, PVDeleteSlow:1200000000000, SnapshotCreate:300000000000, SnapshotDelete:300000000000, SnapshotControllerMetrics:300000000000, SystemPodsStartup:600000000000, NodeSchedulable:1800000000000, SystemDaemonsetStartup:300000000000, NodeNotReady:180000000000}, CloudConfig:framework.CloudConfig{APIEndpoint:"", ProjectID:"", Zone:"jp-tok-1", Zones:[]string{"jp-tok-1", "jp-tok-2", "jp-tok-3"}, Region:"", MultiZone:true, MultiMaster:true, Cluster:"", MasterName:"", NodeInstanceGroup:"", NumNodes:3, ClusterIPRange:"", ClusterTag:"", Network:"", ConfigFile:"", NodeTag:"", MasterTag:"", Provider:(*ibmcloud.Provider)(0x10e843048)}, KubectlPath:"kubectl", OutputDir:"/tmp", ReportDir:"", ReportPrefix:"", ReportCompleteGinkgo:false, ReportCompleteJUnit:false, Prefix:"e2e", MinStartupPods:-1, EtcdUpgradeStorage:"", EtcdUpgradeVersion:"", GCEUpgradeScript:"", ContainerRuntimeEndpoint:"unix:///run/containerd/containerd.sock", ContainerRuntimeProcessName:"containerd", ContainerRuntimePidFile:"/run/containerd/containerd.pid", SystemdServices:"containerd*", DumpSystemdJournal:false, ImageServiceEndpoint:"", MasterOSDistro:"custom", NodeOSDistro:"custom", NodeOSArch:"amd64", VerifyServiceAccount:true, DeleteNamespace:true, DeleteNamespaceOnFailure:true, AllowedNotReadyNodes:-1, CleanStart:false, GatherKubeSystemResourceUsageData:"false", GatherLogsSizes:false, GatherMetricsAfterTest:"false", GatherSuiteMetricsAfterTest:false, MaxNodesToGather:0, IncludeClusterAutoscalerMetrics:false, OutputPrintType:"json", CreateTestingNS:(framework.CreateTestingNSFn)(0x105dc2880), DumpLogsOnFailure:true, DisableLogDump:false, LogexporterGCSPath:"", NodeTestContextType:framework.NodeTestContextType{NodeE2E:false, NodeName:"", NodeConformance:false, PrepullImages:false, ImageDescription:"", RuntimeConfig:map[string]string(nil), SystemSpecName:"", RestartKubelet:false, ExtraEnvs:map[string]string(nil), StandaloneMode:false, CriProxyEnabled:false}, ClusterDNSDomain:"cluster.local", NodeKiller:framework.NodeKillerConfig{Enabled:false, FailureRatio:0.01, Interval:60000000000, JitterFactor:60, SimulatedDowntime:600000000000, NodeKillerStopCtx:context.Context(nil), NodeKillerStop:(func())(nil)}, IPFamily:"ipv4", NonblockingTaints:"node-role.kubernetes.io/control-plane", ProgressReportURL:"", SriovdpConfigMapFile:"", SpecSummaryOutput:"", DockerConfigFile:"", E2EDockerConfigFile:"", KubeTestRepoList:"", SnapshotControllerPodName:"", SnapshotControllerHTTPPort:0, RequireDevices:false, EnabledVolumeDrivers:[]string(nil)}
 Running Suite:  - /Users/wangpenghao/Automation/origin
 ======================================================
 Random Seed: 1772805675 - will randomize all specs

 Will run 1 of 1 specs
 ------------------------------
 [sig-storage][Feature:BYOK][Jira:"Storage"] managed storage classes should be set with the specified encryption key
 github.com/openshift/origin/test/extended/storage/csi_byok.go:37
   STEP: Creating a kubernetes client @ 03/06/26 22:01:36.465
 I0306 22:01:36.466047   18101 discovery.go:214] Invalidating discovery information
 I0306 22:01:45.049652 18101 client.go:293] configPath is now "/var/folders/fl/wkjr1_ld75nfdb92ftdltyvh0000gn/T/configfile94106"
 I0306 22:01:45.049763 18101 client.go:368] The user is now "e2e-test-csi-byok-hv5qx-user"
 I0306 22:01:45.049784 18101 client.go:370] Creating project "e2e-test-csi-byok-hv5qx"
 I0306 22:01:45.392849 18101 client.go:378] Waiting on permissions in project "e2e-test-csi-byok-hv5qx" ...
 I0306 22:01:46.465010 18101 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs
 I0306 22:01:46.631390 18101 client.go:422] Waiting for ServiceAccount "default" to be provisioned...
 I0306 22:01:46.976237 18101 client.go:422] Waiting for ServiceAccount "builder" to be provisioned...
 I0306 22:01:47.317366 18101 client.go:422] Waiting for ServiceAccount "deployer" to be provisioned...
 I0306 22:01:47.684201 18101 client.go:432] Waiting for RoleBinding "system:image-pullers" to be provisioned...
 I0306 22:01:47.844203 18101 client.go:432] Waiting for RoleBinding "system:image-builders" to be provisioned...
 I0306 22:01:47.993026 18101 client.go:432] Waiting for RoleBinding "system:deployers" to be provisioned...
 I0306 22:01:51.334549 18101 client.go:469] Project "e2e-test-csi-byok-hv5qx" has been fully provisioned.
   STEP: Get preset storageClass names from configuration @ 03/06/26 22:01:51.576
   STEP: Verify all preset storage classes have encryption key configured @ 03/06/26 22:01:51.576
   STEP: Verifying storage class: ibmc-vpc-block-10iops-tier @ 03/06/26 22:01:51.576
   STEP: Verifying storage class: ibmc-vpc-block-5iops-tier @ 03/06/26 22:01:51.659
   STEP: Verifying storage class: ibmc-vpc-block-custom @ 03/06/26 22:01:51.737
 I0306 22:01:51.908868 18101 client.go:689] Deleted {user.openshift.io/v1, Resource=users  e2e-test-csi-byok-hv5qx-user}, err: <nil>
 I0306 22:01:52.438400 18101 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-csi-byok-hv5qx}, err: <nil>
 I0306 22:01:52.521924 18101 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~R7Ube7DtGYQtNQbSlhdPzb_tAnnrY2FDgYXPTgjadWk}, err: <nil>
   STEP: Destroying namespace "e2e-test-csi-byok-hv5qx" for this suite. @ 03/06/26 22:01:52.522
 • [16.154 seconds]
 ------------------------------

 Ran 1 of 1 Specs in 16.155 seconds
 SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped
[
 {
   "name": "[sig-storage][Feature:BYOK][Jira:\"Storage\"] managed storage classes should be set with the specified encryption key [Suite:openshift/conformance/parallel]",
   "lifecycle": "blocking",
   "duration": 16158,
   "startTime": "2026-03-06 14:01:36.446760 UTC",
   "endTime": "2026-03-06 14:01:52.604853 UTC",
   "result": "passed",
   "output": "  STEP: Creating a kubernetes client @ 03/06/26 22:01:36.465\nI0306 22:01:45.049652 18101 client.go:293] configPath is now \"/var/folders/fl/wkjr1_ld75nfdb92ftdltyvh0000gn/T/configfile94106\"\nI0306 22:01:45.049763 18101 client.go:368] The user is now \"e2e-test-csi-byok-hv5qx-user\"\nI0306 22:01:45.049784 18101 client.go:370] Creating project \"e2e-test-csi-byok-hv5qx\"\nI0306 22:01:45.392849 18101 client.go:378] Waiting on permissions in project \"e2e-test-csi-byok-hv5qx\" ...\nI0306 22:01:46.465010 18101 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs\nI0306 22:01:46.631390 18101 client.go:422] Waiting for ServiceAccount \"default\" to be provisioned...\nI0306 22:01:46.976237 18101 client.go:422] Waiting for ServiceAccount \"builder\" to be provisioned...\nI0306 22:01:47.317366 18101 client.go:422] Waiting for ServiceAccount \"deployer\" to be provisioned...\nI0306 22:01:47.684201 18101 client.go:432] Waiting for RoleBinding \"system:image-pullers\" to be provisioned...\nI0306 22:01:47.844203 18101 client.go:432] Waiting for RoleBinding \"system:image-builders\" to be provisioned...\nI0306 22:01:47.993026 18101 client.go:432] Waiting for RoleBinding \"system:deployers\" to be provisioned...\nI0306 22:01:51.334549 18101 client.go:469] Project \"e2e-test-csi-byok-hv5qx\" has been fully provisioned.\n  STEP: Get preset storageClass names from configuration @ 03/06/26 22:01:51.576\n  STEP: Verify all preset storage classes have encryption key configured @ 03/06/26 22:01:51.576\n  STEP: Verifying storage class: ibmc-vpc-block-10iops-tier @ 03/06/26 22:01:51.576\n  STEP: Verifying storage class: ibmc-vpc-block-5iops-tier @ 03/06/26 22:01:51.659\n  STEP: Verifying storage class: ibmc-vpc-block-custom @ 03/06/26 22:01:51.737\nI0306 22:01:51.908868 18101 client.go:689] Deleted {user.openshift.io/v1, Resource=users  e2e-test-csi-byok-hv5qx-user}, err: \u003cnil\u003e\nI0306 22:01:52.438400 18101 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-csi-byok-hv5qx}, err: \u003cnil\u003e\nI0306 22:01:52.521924 18101 client.go:689] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~R7Ube7DtGYQtNQbSlhdPzb_tAnnrY2FDgYXPTgjadWk}, err: \u003cnil\u003e\n  STEP: Destroying namespace \"e2e-test-csi-byok-hv5qx\" for this suite. @ 03/06/26 22:01:52.522\n"
 }
]

Summary by CodeRabbit

  • New Features

  • Added IBM Cloud provider support for cluster discovery and storage configuration.

  • Enhanced storage configuration management with BYOK (Bring Your Own Key) support across cloud platforms.

  • Tests

  • Added comprehensive BYOK integration validation tests for CSI storage classes.

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.

@Phaow
Copy link
Contributor Author

Phaow commented Mar 6, 2026

/payload 4.22 nightly blocking

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Mar 6, 2026

@Phaow: trigger 14 job(s) of type blocking for the nightly release of OCP 4.22

  • periodic-ci-openshift-release-main-ci-4.22-e2e-aws-upgrade-ovn-single-node
  • periodic-ci-openshift-release-main-nightly-4.22-e2e-aws-ovn-upgrade-fips
  • periodic-ci-openshift-release-main-ci-4.22-e2e-azure-ovn-upgrade
  • periodic-ci-openshift-release-main-ci-4.22-upgrade-from-stable-4.21-e2e-gcp-ovn-rt-upgrade
  • periodic-ci-openshift-hypershift-release-4.22-periodics-e2e-aws-ovn-conformance
  • periodic-ci-openshift-release-main-nightly-4.22-e2e-aws-ovn-serial-1of2
  • periodic-ci-openshift-release-main-nightly-4.22-e2e-aws-ovn-serial-2of2
  • periodic-ci-openshift-release-main-ci-4.22-e2e-aws-ovn-techpreview
  • periodic-ci-openshift-release-main-ci-4.22-e2e-aws-ovn-techpreview-serial-1of3
  • periodic-ci-openshift-release-main-ci-4.22-e2e-aws-ovn-techpreview-serial-2of3
  • periodic-ci-openshift-release-main-ci-4.22-e2e-aws-ovn-techpreview-serial-3of3
  • periodic-ci-openshift-release-main-nightly-4.22-e2e-aws-ovn-upgrade-fips-no-nat-instance
  • periodic-ci-openshift-release-main-nightly-4.22-e2e-metal-ipi-ovn-ipv4
  • periodic-ci-openshift-release-main-nightly-4.22-e2e-metal-ipi-ovn-ipv6

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/59ff5e70-1967-11f1-8951-ff2be3f06a63-0

Copy link

@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: 2

🤖 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/storage/csi_byok.go`:
- Around line 64-67: The current test silently skips when
oc.AdminKubeClient().StorageV1().StorageClasses().Get(...) returns an error
(using g.Skip), which masks failures; change the behavior to fail the test
instead — replace the g.Skip(...) call for the StorageClasses().Get error with a
test failure call (e.g., e2e.Failf or the test suite's Failf) and include the
storage class name and error in the failure message; ensure this change is
applied around the retrieval of scName so missing managed storage classes cause
a test failure rather than a skip.
- Around line 48-51: The test currently treats an empty result from
getByokKeyIDFromClusterCSIDriver as "not BYOK" and skips, which hides API/read
failures; change getByokKeyIDFromClusterCSIDriver to return (string, error)
instead of just string, propagate the error to the caller in the test (where
byokKeyID := getByokKeyIDFromClusterCSIDriver(oc, provisioner) is called), and
update the test to fail (e.g., g.Fatal/g.Fatalf) when err != nil while only
calling g.Skip when err == nil and the returned key ID is empty; update all call
sites accordingly so real API errors surface as test failures.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 85f78b6f-b37d-4d55-9930-99e31dd09b5b

📥 Commits

Reviewing files that changed from the base of the PR and between 0bb7edf and 553e25a.

📒 Files selected for processing (4)
  • pkg/clioptions/clusterdiscovery/cluster.go
  • pkg/clioptions/clusterdiscovery/provider.go
  • test/extended/storage/const.go
  • test/extended/storage/csi_byok.go

Comment on lines +48 to +51
byokKeyID := getByokKeyIDFromClusterCSIDriver(oc, provisioner)
if len(byokKeyID) == 0 {
g.Skip("Skipped: the cluster is not byok cluster, no key settings in clustercsidriver/" + provisioner)
}
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

cat -n test/extended/storage/csi_byok.go

Repository: openshift/origin

Length of output: 5921


🏁 Script executed:

rg -n "getByokKeyIDFromClusterCSIDriver" test/extended/storage/csi_byok.go

Repository: openshift/origin

Length of output: 214


Differentiate "not BYOK-configured" from API/read failures.

When ClusterCSIDriver fetch fails, the function returns "" and the test skips instead of failing. This masks real infrastructure issues and regressions—API errors should cause test failure, not silent skips.

🔧 Proposed fix
 import (
 	"context"
 	"fmt"
 
 	g "github.com/onsi/ginkgo/v2"
 	o "github.com/onsi/gomega"
 
+	apierrors "k8s.io/apimachinery/pkg/api/errors"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	e2e "k8s.io/kubernetes/test/e2e/framework"
 	admissionapi "k8s.io/pod-security-admission/api"
@@
-			byokKeyID := getByokKeyIDFromClusterCSIDriver(oc, provisioner)
-			if len(byokKeyID) == 0 {
+			byokKeyID, byokConfigured, err := getByokKeyIDFromClusterCSIDriver(oc, provisioner)
+			o.Expect(err).NotTo(o.HaveOccurred(), fmt.Sprintf("failed to get ClusterCSIDriver/%s", provisioner))
+			if !byokConfigured {
 				g.Skip("Skipped: the cluster is not byok cluster, no key settings in clustercsidriver/" + provisioner)
 			}
@@
-func getByokKeyIDFromClusterCSIDriver(oc *exutil.CLI, provisioner string) string {
+func getByokKeyIDFromClusterCSIDriver(oc *exutil.CLI, provisioner string) (string, bool, error) {
 	clusterCSIDriver, err := oc.AdminOperatorClient().OperatorV1().ClusterCSIDrivers().Get(context.Background(), provisioner, metav1.GetOptions{})
 	if err != nil {
-		e2e.Logf("Failed to get ClusterCSIDriver %s: %v", provisioner, err)
-		return ""
+		if apierrors.IsNotFound(err) {
+			return "", false, nil
+		}
+		return "", false, err
 	}
@@
 	driverConfig := clusterCSIDriver.Spec.DriverConfig
 	if driverConfig.DriverType == "" {
-		return ""
+		return "", false, nil
 	}
@@
 	case "AWS":
 		if driverConfig.AWS != nil {
-			return driverConfig.AWS.KMSKeyARN
+			return driverConfig.AWS.KMSKeyARN, true, nil
 		}
@@
 	case "IBMCloud":
 		if driverConfig.IBMCloud != nil {
-			return driverConfig.IBMCloud.EncryptionKeyCRN
+			return driverConfig.IBMCloud.EncryptionKeyCRN, true, nil
 		}
 	}
 
-	return ""
+	return "", false, nil
 }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@test/extended/storage/csi_byok.go` around lines 48 - 51, The test currently
treats an empty result from getByokKeyIDFromClusterCSIDriver as "not BYOK" and
skips, which hides API/read failures; change getByokKeyIDFromClusterCSIDriver to
return (string, error) instead of just string, propagate the error to the caller
in the test (where byokKeyID := getByokKeyIDFromClusterCSIDriver(oc,
provisioner) is called), and update the test to fail (e.g., g.Fatal/g.Fatalf)
when err != nil while only calling g.Skip when err == nil and the returned key
ID is empty; update all call sites accordingly so real API errors surface as
test failures.

Comment on lines +64 to +67
sc, err := oc.AdminKubeClient().StorageV1().StorageClasses().Get(context.Background(), scName, metav1.GetOptions{})
if err != nil {
g.Skip(fmt.Sprintf("Storage class %s not found in cluster: %v", scName, err))
}
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

# First, let's see the broader context of this test function
head -n 100 test/extended/storage/csi_byok.go | tail -n 80

Repository: openshift/origin

Length of output: 3168


🏁 Script executed:

# Let's also check the full test function that contains lines 64-67
sed -n '1,100p' test/extended/storage/csi_byok.go | cat -n

Repository: openshift/origin

Length of output: 4283


🏁 Script executed:

# Search for similar storage class retrieval patterns in test files
rg "StorageClasses\(\)\.Get" test/ -A 3 -B 1

Repository: openshift/origin

Length of output: 2315


Fail when expected managed StorageClasses are absent.

Skipping on StorageClasses().Get() error hides regressions in managed class creation. Since presetStorageClassNames is populated from configuration, missing classes indicate a provisioning issue, not an environmental skip condition. This pattern contradicts the test's assertion that "managed storage classes should be set with the specified encryption key"—if they don't exist, that's a test failure. Other storage tests in the suite (e.g., test/extended/storage/storageclass.go) use e2e.Failf() for similar retrieval errors, establishing the correct pattern.

Proposed fix
 				sc, err := oc.AdminKubeClient().StorageV1().StorageClasses().Get(context.Background(), scName, metav1.GetOptions{})
-				if err != nil {
-					g.Skip(fmt.Sprintf("Storage class %s not found in cluster: %v", scName, err))
-				}
+				o.Expect(err).NotTo(o.HaveOccurred(),
+					fmt.Sprintf("expected managed storage class %s to exist", scName))
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@test/extended/storage/csi_byok.go` around lines 64 - 67, The current test
silently skips when oc.AdminKubeClient().StorageV1().StorageClasses().Get(...)
returns an error (using g.Skip), which masks failures; change the behavior to
fail the test instead — replace the g.Skip(...) call for the
StorageClasses().Get error with a test failure call (e.g., e2e.Failf or the test
suite's Failf) and include the storage class name and error in the failure
message; ensure this change is applied around the retrieval of scName so missing
managed storage classes cause a test failure rather than a skip.

@openshift-ci-robot
Copy link

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

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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants