Skip to content

Conversation

@ming1013
Copy link

@ming1013 ming1013 commented Jan 13, 2026

OTE Migration Report - cloud-credential-operator

What Was Created

Extension Binary: cmd/extension/main.go - Successfully builds to a 316MB binary at bin/cco-tests-ext

Test Module: test/e2e/go.mod - Separate module with OTE dependencies

Testdata Infrastructure: test/testdata/fixtures.go - Wrapper for accessing test fixtures

Build System: Updated Makefiles with tests-ext-build target

Module Configuration: Root and test go.mod files properly configured with replace directives

Test Files Migrated

  • 1 test file copied from openshift-tests-private (cloudcredential.go)
  • 16 test cases migrated with [sig-cco] tag
  • 3 Level0 conformance tests annotated (33204, 36498, 66538)
  • 1 testdata directory copied (cluster_operator/cloudcredential/)
  • All FixturePath calls automatically updated
  • Imports automatically cleaned up
  • [OTP] and [Level0] annotations added

Build Verification

✅ Extension binary builds successfully
✅ Binary executes and shows help
✅ Suite registered: openshift/cloud-credential-operator/tests
✅ Tests discovered: 16 total, 3 Level0

The tests will be discovered and run when the extension is used within the OpenShift testing infrastructure.

Directory Structure

/home/minl/cloud-credential-operator/          # Target repository root
├── cmd/
│   └── extension/
│       └── main.go                            # OTE extension binary
├── test/
│   ├── e2e/                                   # Test files
│   │   ├── go.mod                             # Test module (separate from root)
│   │   ├── go.sum
│   │   ├── cloudcredential.go                 # 16 CCO test cases
│   │   └── cloudcredential_util.go            # Test utility functions
│   ├── testdata/                              # Testdata files
│   │   ├── cluster_operator/
│   │   │   └── cloudcredential/
│   │   │       └── credentials_request.yaml   # Test fixture
│   │   ├── bindata.go                         # Generated (embedded fixtures)
│   │   └── fixtures.go                        # Wrapper functions
│   └── bindata.mk                             # Bindata generation
├── bin/
│   └── cco-tests-ext                          # Extension binary
├── go.mod                                     # Root module (with test/e2e replace)
├── go.sum
└── Makefile                                   # Root Makefile (extension target added)


## Tested By:

$ bin/cco-tests-ext list | grep sig-cco | grep  "\[sig-cco\]\[OTP\]" | wc -l
16
$ bin/cco-tests-ext list | grep sig-cco | grep  "\[sig-cco\]\[OTP\] \[Level0\]" | wc -l
3

$ bin/cco-tests-ext run-test "[sig-cco][OTP] [Level0] Cluster_Operator CCO is enabled NonHyperShiftHOST-ROSA-OSD_CCS-Author:jshu-LEVEL0-Critical-36498-CCO credentials secret change to STS-style""
> ^C
[minl@minl-thinkpadt14sgen1 cloud-credential-operator]$ bin/cco-tests-ext run-test "[sig-cco][OTP] [Level0] Cluster_Operator CCO is enabled NonHyperShiftHOST-ROSA-OSD_CCS-Author:jshu-LEVEL0-Critical-36498-CCO credentials secret change to STS-style"
  I0114 17:21:33.137435 46250 test_context.go:567] The --provider flag is not set. Continuing as if --provider=skeleton had been used.
  Running Suite:  - /home/minl/cloud-credential-operator
  ======================================================
  Random Seed: 1768382493 - will randomize all specs

  Will run 1 of 1 specs
  ------------------------------
  [sig-cco][OTP] [Level0] Cluster_Operator CCO is enabled NonHyperShiftHOST-ROSA-OSD_CCS-Author:jshu-LEVEL0-Critical-36498-CCO credentials secret change to STS-style
  /home/minl/cloud-credential-operator/test/e2e/cloudcredential.go:244
    STEP: Creating a kubernetes client @ 01/14/26 17:21:33.421
  I0114 17:21:39.713466 46250 client.go:293] configPath is now "/tmp/configfile3767314205"
  I0114 17:21:39.713487 46250 client.go:368] The user is now "e2e-test-default-cco-g47lv-user"
  I0114 17:21:39.713495 46250 client.go:370] Creating project "e2e-test-default-cco-g47lv"
  I0114 17:21:40.119981 46250 client.go:378] Waiting on permissions in project "e2e-test-default-cco-g47lv" ...
  I0114 17:21:41.499616 46250 client.go:407] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs
  I0114 17:21:41.841235 46250 client.go:422] Waiting for ServiceAccount "default" to be provisioned...
  I0114 17:21:42.630513 46250 client.go:422] Waiting for ServiceAccount "builder" to be provisioned...
  I0114 17:21:43.414539 46250 client.go:422] Waiting for ServiceAccount "deployer" to be provisioned...
  I0114 17:21:44.198903 46250 client.go:432] Waiting for RoleBinding "system:image-pullers" to be provisioned...
  I0114 17:21:44.878379 46250 client.go:432] Waiting for RoleBinding "system:image-builders" to be provisioned...
  I0114 17:21:45.564232 46250 client.go:432] Waiting for RoleBinding "system:deployers" to be provisioned...
  I0114 17:21:46.837010 46250 client.go:465] Project "e2e-test-default-cco-g47lv" has been fully provisioned.
  I0114 17:21:53.347907 46250 cloudcredential.go:252] cco mode in cluster is mint
  I0114 17:21:54.949174 46250 client.go:681] Deleted {user.openshift.io/v1, Resource=users  e2e-test-default-cco-g47lv-user}, err: <nil>
  I0114 17:21:55.293919 46250 client.go:681] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-default-cco-g47lv}, err: <nil>
  I0114 17:21:55.639600 46250 client.go:681] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~yL2RzER_DgA3hzVz-prlomKkTSjknBJjG6T58LWvo1I}, err: <nil>
    STEP: Destroying namespace "e2e-test-default-cco-g47lv" for this suite. @ 01/14/26 17:21:55.639
  • [22.563 seconds]
  ------------------------------

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

  - Create test/e2e/go.mod as separate module
  - Add openshift-tests-extension framework dependency
  - Add replace directives for k8s and OpenShift dependencies
  - Use Go version 1.24 from root module
  - Copy 16 CCO test cases from openshift-tests-private
  - Add [OTP] annotation to all ported tests for tracking
  - Add [Level0] annotation to 3 conformance tests (33204, 36498, 66538)
  - Restructure test names: move Describe text into It() descriptions
  - Add testdata fixtures for cluster_operator tests
  - Generate bindata.go for embedded fixtures
  - Create cmd/extension/main.go for cco-tests-ext binary
  - Filter tests to only include [sig-cco] tagged tests (16 tests)
  - Apply platform filters based on labels and test names
  - Update root go.mod with test/e2e replace directive
  - Add Makefile targets: tests-ext-build, extension, clean-extension
  - Add test/bindata.mk for testdata embedding with go-bindata
@openshift-merge-robot openshift-merge-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jan 13, 2026
@openshift-merge-robot
Copy link
Contributor

PR needs rebase.

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.

@ming1013
Copy link
Author

cc @huangmingxia @rioliu-rh @LuboTerifaj @jhuttana @tomasdavidorg

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 13, 2026

@ming1013: The following tests 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/verify-deps 6f473bd link true /test verify-deps
ci/prow/e2e-upgrade 6f473bd link true /test e2e-upgrade
ci/prow/verify 6f473bd link true /test verify
ci/prow/images 6f473bd link true /test images
ci/prow/security 6f473bd link true /test security
ci/prow/e2e-hypershift 6f473bd link true /test e2e-hypershift
ci/prow/e2e-aws-qe 6f473bd link false /test e2e-aws-qe
ci/prow/coverage 6f473bd link true /test coverage
ci/prow/e2e-aws-ovn 6f473bd link true /test e2e-aws-ovn
ci/prow/unit 6f473bd link true /test unit
ci/prow/okd-scos-images 6f473bd link true /test okd-scos-images

Full PR test history. Your PR dashboard.

Details

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

@openshift-ci openshift-ci bot requested review from jstuever and suhanime January 13, 2026 15:07
@huangmingxia
Copy link
Contributor

/hold

@openshift-ci openshift-ci bot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Jan 13, 2026
@huangmingxia
Copy link
Contributor

/cc

@openshift-ci openshift-ci bot requested a review from huangmingxia January 14, 2026 15:30
Copy link
Contributor

@huangmingxia huangmingxia left a comment

Choose a reason for hiding this comment

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

Thanks for the PR! The overall approach looks good, though there are a few adjustments needed. I've added some comments below - we can go through them together later.

@@ -0,0 +1,104 @@
package main
Copy link
Contributor

Choose a reason for hiding this comment

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

The OTE test framework has already been added to CCO, so this addition may be redundant.
Perhaps the prompt could be adjusted here to check whether the OTE test framework already exists and whether any update is needed.

@@ -0,0 +1,906 @@
package cloudcredential
Copy link
Contributor

Choose a reason for hiding this comment

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

We have set up the test/extend directory for QE test case related.

@@ -0,0 +1,13 @@
package cloudcredential
Copy link
Contributor

Choose a reason for hiding this comment

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

May I ask what this file is intended for?

@@ -0,0 +1,366 @@
module github.com/openshift/cloud-credential-operator/test/e2e
Copy link
Contributor

Choose a reason for hiding this comment

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

I wonder if creating a submodule is really needed here. However, we do not plan to introduce a submodule in CCO.

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 14, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

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

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

Labels

do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants