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?

Special notes for your reviewer:

  • Currently all BYOK jobs are not exist in payload jobs, they're in QE's periodic CI, I'll check with installer/TRT for the migrate BYOK jobs progress.

aws BYOK: periodic-ci-openshift-openshift-tests-private-release-4.22-amd64-nightly-aws-ipi-localzone-byo-subnet-role-sts-kms-mini-perm-f14
azure BYOK: periodic-ci-openshift-openshift-tests-private-release-4.22-multi-nightly-azure-ipi-des-arm-regen-cert-f14/2027321272165208064/artifacts/azure-ipi-des-arm-regen-cert-f14
gcp BYOK: periodic-ci-openshift-openshift-tests-private-release-4.22-multi-nightly-gcp-ipi-disk-encryption-arm-f14-cert-manager-custom-cert
ibmcloud BYOK: periodic-ci-openshift-openshift-tests-private-release-4.22-amd64-nightly-ibmcloud-ipi-private-byo-kms-f28 (with IBMCLOUD_DEFAULT_MACHINE_ENCRYPTION_KEY: "true")

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 configuration and discovery.
    • Introduced BYOK (Bring Your Own Key) encryption validation for CSI storage classes across AWS, Azure, GCP, and IBM Cloud platforms.
  • Tests

    • Added comprehensive end-to-end tests for BYOK encryption support validation in storage configurations.

@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-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.

@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

The pull request adds IBM Cloud provider support to the cluster discovery system, introduces a new end-to-end CSI BYOK (Bring Your Own Key) validation test, and defines platform-specific provisioner configurations for AWS, GCP, Azure, and IBM Cloud with support detection and storage class mappings.

Changes

Cohort / File(s) Summary
Cloud Provider Registration
pkg/clioptions/clusterdiscovery/cluster.go, pkg/clioptions/clusterdiscovery/provider.go
Adds IBM Cloud ("ibmcloud") as a recognized provider in cluster discovery by setting the provider name before status determination and updating the provider switch statement to handle the new provider alongside existing ones.
CSI BYOK Test Suite
test/extended/storage/csi_byok.go
Introduces comprehensive end-to-end test for CSI storage class BYOK validation. Detects cloud provider, iterates through BYOK-supported provisioners, verifies ClusterCSIDriver BYOK configuration, and asserts that storage classes contain matching BYOK encryption key parameters.
Provisioner Configuration
test/extended/storage/consts.go
Defines platform-specific CSI provisioner metadata including ProvisionerInfo and PlatformConfig types, with helper functions to query provisioner capabilities (BYOK support), types (block/file), encryption keys, and managed storage class names across aws, gce, azure, and ibmcloud platforms.

Sequence Diagram(s)

sequenceDiagram
    participant Test as Test Suite
    participant Provider as Provider Detection
    participant Config as Provisioner Config
    participant Driver as ClusterCSIDriver
    participant SC as StorageClass

    Test->>Provider: Detect cloud platform
    Provider-->>Test: Platform identified
    Test->>Config: GetBYOKProvisionerNames(platform)
    Config-->>Test: List of BYOK provisioners
    loop For each provisioner
        Test->>Config: GetProvisionerByName(provisioner)
        Config-->>Test: Provisioner config or nil
        alt Config exists
            Test->>Driver: Read ClusterCSIDriver
            Driver-->>Test: Driver configuration
            Test->>Test: Extract BYOK key ID by provider type
            Test->>Config: getPresetStorageClassNamesByProvisioner()
            Config-->>Test: Storage class names
            loop For each storage class
                Test->>SC: Fetch StorageClass
                SC-->>Test: StorageClass object
                Test->>Test: Verify BYOK parameter matches key ID
            end
        else
            Test->>Test: Skip provisioner
        end
    end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~23 minutes

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Test Structure And Quality ❓ Inconclusive Test files are not accessible in repository sandbox; PR summary indicates proper Ginkgo patterns and configuration-based architecture but actual implementation details cannot be verified without code access. Access actual test file to verify BeforeEach/AfterEach patterns, timeout specifications on Eventually calls, assertion messages, and cleanup mechanisms for cluster-scoped resources.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The pull request title clearly and specifically summarizes the main change: adding storage BYOK (Bring Your Own Key) feature tests.
Docstring Coverage ✅ Passed Docstring coverage is 83.33% which is sufficient. The required threshold is 80.00%.
Stable And Deterministic Test Names ✅ Passed The Ginkgo test names in csi_byok.go are stable and deterministic with static descriptive titles and no dynamic content in test identifiers.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ 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

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

@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

@Phaow
Copy link
Contributor Author

Phaow commented Mar 8, 2026

/retest

@Phaow
Copy link
Contributor Author

Phaow commented Mar 8, 2026

/payload-job periodic-ci-openshift-release-main-ci-4.22-e2e-azure-ovn-upgrade

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Mar 8, 2026

@Phaow: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-release-main-ci-4.22-e2e-azure-ovn-upgrade

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/39cc1de0-1ae4-11f1-97dc-2dc0d95b78ef-0

@openshift-ci-robot
Copy link

openshift-ci-robot commented Mar 9, 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 with BYOK (Bring Your Own Key) metadata and per-platform provisioner details.

  • Tests

  • Added end-to-end BYOK integration tests validating CSI storage classes across supported cloud providers.

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.

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: 1

♻️ Duplicate comments (1)
test/extended/storage/csi_byok.go (1)

64-67: ⚠️ Potential issue | 🟠 Major

Don't skip when an expected managed StorageClass is missing.

These names are sourced from static repo config, so a Get() error here is the regression this test is supposed to catch. Skipping turns a broken managed class into a false green.

Suggested change
 				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 test currently
calls g.Skip when
oc.AdminKubeClient().StorageV1().StorageClasses().Get(context.Background(),
scName, metav1.GetOptions{}) returns an error, which hides regressions; replace
the g.Skip(...) call with a hard test failure that surfaces the error (e.g., use
t.Fatalf or the framework's Fail/Failf method) so a missing managed StorageClass
causes the test to fail and include scName and err in the failure message.
🤖 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 55-58: The test currently skips when presetStorageClassNames is
empty, but since presetStorageClassNames is derived from
provisionerInfo.ManagedStorageClassNames the test should fail instead; replace
the g.Skip(...) call in the block that checks len(presetStorageClassNames) == 0
with a test failure (e.g., g.Fatalf or g.Fail with a clear message) so the test
fails when a BYOK-capable provisioner has no managed storage classes,
referencing provisioner and provisionerInfo.ManagedStorageClassNames in the
message.

---

Duplicate comments:
In `@test/extended/storage/csi_byok.go`:
- Around line 64-67: The test currently calls g.Skip when
oc.AdminKubeClient().StorageV1().StorageClasses().Get(context.Background(),
scName, metav1.GetOptions{}) returns an error, which hides regressions; replace
the g.Skip(...) call with a hard test failure that surfaces the error (e.g., use
t.Fatalf or the framework's Fail/Failf method) so a missing managed StorageClass
causes the test to fail and include scName and err in the failure message.

ℹ️ Review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Pro

Run ID: 50929a1f-5650-4128-8d17-c8a5085dbe44

📥 Commits

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

📒 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
🚧 Files skipped from review as they are similar to previous changes (2)
  • pkg/clioptions/clusterdiscovery/provider.go
  • test/extended/storage/const.go

@openshift-ci-robot
Copy link

openshift-ci-robot commented Mar 9, 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 with per-platform provisioner metadata and BYOK (Bring Your Own Key) support.

  • Tests

  • Added end-to-end BYOK integration tests validating CSI storage classes across supported cloud providers.

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>
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.

🧹 Nitpick comments (1)
test/extended/storage/const.go (1)

126-130: Return the actual provisioner entry, not the range copy.

On Line 130, return &p returns a pointer to the for ... range copy, not the ProvisionerInfo stored in Platforms. Current callers only read from it, but any future mutation through this API will silently update only the copy.

♻️ Proposed fix
 func GetProvisionerByName(provisioner string) *ProvisionerInfo {
 	for _, config := range Platforms {
-		for _, p := range config.Provisioners {
-			if p.Name == provisioner {
-				return &p
+		for i := range config.Provisioners {
+			if config.Provisioners[i].Name == provisioner {
+				return &config.Provisioners[i]
 			}
 		}
 	}
 	return nil
 }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@test/extended/storage/const.go` around lines 126 - 130, GetProvisionerByName
currently returns &p which is the address of the range loop copy; change
iteration to index-based so you return the pointer to the actual slice element
inside Platforms. Replace both range loops with index-based loops (e.g. for ci
:= range Platforms { for pi := range Platforms[ci].Provisioners { if
Platforms[ci].Provisioners[pi].Name == provisioner { return
&Platforms[ci].Provisioners[pi] } } }) so the returned *ProvisionerInfo points
to the real entry in Platforms rather than a temporary copy.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@test/extended/storage/const.go`:
- Around line 126-130: GetProvisionerByName currently returns &p which is the
address of the range loop copy; change iteration to index-based so you return
the pointer to the actual slice element inside Platforms. Replace both range
loops with index-based loops (e.g. for ci := range Platforms { for pi := range
Platforms[ci].Provisioners { if Platforms[ci].Provisioners[pi].Name ==
provisioner { return &Platforms[ci].Provisioners[pi] } } }) so the returned
*ProvisionerInfo points to the real entry in Platforms rather than a temporary
copy.

ℹ️ Review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Pro

Run ID: 3130ea1d-7459-4a9c-9280-816e17d5aa6e

📥 Commits

Reviewing files that changed from the base of the PR and between bfc97d3 and 10ad232.

📒 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

@openshift-ci-robot
Copy link

openshift-ci-robot commented Mar 9, 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 configuration and discovery.

  • Introduced BYOK (Bring Your Own Key) encryption validation for CSI storage classes across AWS, Azure, GCP, and IBM Cloud platforms.

  • Tests

  • Added comprehensive end-to-end tests for BYOK encryption support validation in storage configurations.

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.

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.

🧹 Nitpick comments (2)
test/extended/storage/csi_byok.go (2)

39-51: Calling g.Skip() inside the loop terminates the entire spec.

If the cluster has multiple BYOK-capable provisioners and one isn't BYOK-configured, the test skips without verifying the others. For example, if provisioner A is verified successfully but provisioner B triggers the skip at line 50, the entire test is marked "skipped" rather than "passed with some provisioners skipped."

If partial verification is acceptable, consider using continue with logging instead of g.Skip() to allow other provisioners to be checked:

♻️ Alternative approach
 		byokKeyID := getByokKeyIDFromClusterCSIDriver(oc, provisioner)
 		if len(byokKeyID) == 0 {
-			g.Skip("Skipped: the cluster is not byok cluster, no key settings in clustercsidriver/" + provisioner)
+			e2e.Logf("Skipping provisioner %s: no BYOK key settings in ClusterCSIDriver", provisioner)
+			continue
 		}

Alternatively, if all-or-nothing BYOK configuration is expected, this is acceptable as-is.

🤖 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 39 - 51, The loop over
featureProviderSupportProvisioners currently calls g.Skip() when
getByokKeyIDFromClusterCSIDriver(oc, provisioner) returns an empty key, which
aborts the entire spec; change this to log a warning and continue to the next
provisioner instead (replace the g.Skip(...) call with a log/ginkgo skip-message
via t.Logf or g.Log and a continue) so other provisioners are still verified;
keep the existing g.Skip usage only if you intentionally require an
all-or-nothing BYOK configuration.

43-45: This skip condition should never trigger; consider asserting instead.

The provisioner variable comes from featureProviderSupportProvisioners, which is populated by GetBYOKProvisionerNames(cloudProvider). That function retrieves names from the same Platforms map that GetProvisionerByName searches. If a provisioner name is returned by one, it will always be found by the other.

If this condition ever triggers, it indicates a configuration inconsistency that should fail the test, not be silently skipped.

♻️ Suggested change
 		provisionerInfo := GetProvisionerByName(provisioner)
-		if provisionerInfo == nil {
-			g.Skip("Provisioner not found in configuration: " + provisioner)
-		}
+		o.Expect(provisionerInfo).NotTo(o.BeNil(),
+			"provisioner %s returned by GetBYOKProvisionerNames but not found in configuration", provisioner)
🤖 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 43 - 45, The nil-check on
provisionerInfo should assert failure rather than skip because provisioner names
come from GetBYOKProvisionerNames and must exist; replace the
g.Skip("Provisioner not found...") in the block checking provisionerInfo == nil
with a hard test failure (e.g., call g.Fatalf/g.Failf or equivalent) so the test
fails loudly on this configuration inconsistency; reference symbols:
provisionerInfo, provisioner, featureProviderSupportProvisioners,
GetBYOKProvisionerNames, GetProvisionerByName, and g.Skip.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@test/extended/storage/csi_byok.go`:
- Around line 39-51: The loop over featureProviderSupportProvisioners currently
calls g.Skip() when getByokKeyIDFromClusterCSIDriver(oc, provisioner) returns an
empty key, which aborts the entire spec; change this to log a warning and
continue to the next provisioner instead (replace the g.Skip(...) call with a
log/ginkgo skip-message via t.Logf or g.Log and a continue) so other
provisioners are still verified; keep the existing g.Skip usage only if you
intentionally require an all-or-nothing BYOK configuration.
- Around line 43-45: The nil-check on provisionerInfo should assert failure
rather than skip because provisioner names come from GetBYOKProvisionerNames and
must exist; replace the g.Skip("Provisioner not found...") in the block checking
provisionerInfo == nil with a hard test failure (e.g., call g.Fatalf/g.Failf or
equivalent) so the test fails loudly on this configuration inconsistency;
reference symbols: provisionerInfo, provisioner,
featureProviderSupportProvisioners, GetBYOKProvisionerNames,
GetProvisionerByName, and g.Skip.

ℹ️ Review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Pro

Run ID: bce46845-11d8-4c03-9c3f-0faa0bf01303

📥 Commits

Reviewing files that changed from the base of the PR and between 10ad232 and 5e53e5f.

📒 Files selected for processing (4)
  • pkg/clioptions/clusterdiscovery/cluster.go
  • pkg/clioptions/clusterdiscovery/provider.go
  • test/extended/storage/consts.go
  • test/extended/storage/csi_byok.go
🚧 Files skipped from review as they are similar to previous changes (2)
  • pkg/clioptions/clusterdiscovery/cluster.go
  • pkg/clioptions/clusterdiscovery/provider.go

@Phaow
Copy link
Contributor Author

Phaow commented Mar 9, 2026

/retest

@Phaow
Copy link
Contributor Author

Phaow commented Mar 9, 2026

/test okd-scos-images

@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

@Phaow
Copy link
Contributor Author

Phaow commented Mar 9, 2026

/retest-required

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Mar 9, 2026

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

Test name Commit Details Required Rerun command
ci/prow/e2e-aws-ovn-microshift 5e53e5f link true /test e2e-aws-ovn-microshift

Full PR test history. Your PR dashboard.

Details

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

@openshift-trt
Copy link

openshift-trt bot commented Mar 9, 2026

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

New Test Risks for sha: 5e53e5f

Job Name New Test Risk
pull-ci-openshift-origin-main-e2e-aws-ovn-fips High - "[sig-storage] MutableCSINodeAllocatableCount [FeatureGate:MutableCSINodeAllocatableCount] [Beta] Attach Limit Exceeded should transition pod to failed state when attachment limit exceeded" is a new test that was not present in all runs against the current commit.
pull-ci-openshift-origin-main-e2e-aws-ovn-fips High - "[sig-storage] MutableCSINodeAllocatableCount [FeatureGate:MutableCSINodeAllocatableCount] [Beta] Dynamic Allocatable Count should observe dynamic changes in CSINode allocatable count" is a new test that was not present in all runs against the current commit.
pull-ci-openshift-origin-main-e2e-metal-ipi-ovn-ipv6 High - "[sig-storage] MutableCSINodeAllocatableCount [FeatureGate:MutableCSINodeAllocatableCount] [Beta] Attach Limit Exceeded should transition pod to failed state when attachment limit exceeded" is a new test that was not present in all runs against the current commit.
pull-ci-openshift-origin-main-e2e-metal-ipi-ovn-ipv6 High - "[sig-storage] MutableCSINodeAllocatableCount [FeatureGate:MutableCSINodeAllocatableCount] [Beta] Dynamic Allocatable Count should observe dynamic changes in CSINode allocatable count" is a new test that was not present in all runs against the current commit.

New tests seen in this PR at sha: 5e53e5f

  • "[sig-storage] MutableCSINodeAllocatableCount [FeatureGate:MutableCSINodeAllocatableCount] [Beta] Attach Limit Exceeded should transition pod to failed state when attachment limit exceeded" [Total: 4, Pass: 4, Fail: 0, Flake: 0]
  • "[sig-storage] MutableCSINodeAllocatableCount [FeatureGate:MutableCSINodeAllocatableCount] [Beta] Dynamic Allocatable Count should observe dynamic changes in CSINode allocatable count" [Total: 4, Pass: 4, Fail: 0, Flake: 0]

@openshift-ci-robot
Copy link

openshift-ci-robot commented Mar 10, 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?

Special notes for your reviewer:

  • Currently all BYOK jobs are not exist in payload jobs, they're in QE's periodic CI, I'll check with installer/TRT for the migrate BYOK jobs progress.

aws BYOK: periodic-ci-openshift-openshift-tests-private-release-4.22-amd64-nightly-aws-ipi-localzone-byo-subnet-role-sts-kms-mini-perm-f14
azure BYOK: periodic-ci-openshift-openshift-tests-private-release-4.22-multi-nightly-azure-ipi-des-arm-regen-cert-f14/2027321272165208064/artifacts/azure-ipi-des-arm-regen-cert-f14
gcp BYOK: periodic-ci-openshift-openshift-tests-private-release-4.22-multi-nightly-gcp-ipi-disk-encryption-arm-f14-cert-manager-custom-cert
ibmcloud BYOK: periodic-ci-openshift-openshift-tests-private-release-4.22-amd64-nightly-ibmcloud-ipi-private-byo-kms-f28 (with IBMCLOUD_DEFAULT_MACHINE_ENCRYPTION_KEY: "true")

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 configuration and discovery.

  • Introduced BYOK (Bring Your Own Key) encryption validation for CSI storage classes across AWS, Azure, GCP, and IBM Cloud platforms.

  • Tests

  • Added comprehensive end-to-end tests for BYOK encryption support validation in storage configurations.

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 10, 2026

Hi @jsafrane @duanwei33 , could you please help take a look when you get a chance? Thank you! ^^

@Phaow
Copy link
Contributor Author

Phaow commented Mar 10, 2026

/assign @jsafrane @duanwei33

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.

4 participants