Skip to content

OCPQE-29415:add testing framework based on OTE and the first tests-private case#1113

Merged
openshift-merge-bot[bot] merged 1 commit intoopenshift:mainfrom
kuiwang02:initial
Sep 19, 2025
Merged

OCPQE-29415:add testing framework based on OTE and the first tests-private case#1113
openshift-merge-bot[bot] merged 1 commit intoopenshift:mainfrom
kuiwang02:initial

Conversation

@kuiwang02
Copy link
Copy Markdown
Contributor

@kuiwang02 kuiwang02 commented Sep 18, 2025

Add OLMv0 Testing Framework Based on OTE

Summary

This PR introduces a comprehensive testing framework for OLMv0 (Operator Lifecycle Manager v0) based on OTE (OpenShift Tests Extension). The implementation includes:

  • Complete testing infrastructure with utility libraries for OLM operations
  • Test data and fixtures for various OLM scenarios including catalog sources, subscriptions, and operator groups
  • Comprehensive test utilities for container management, database operations, and cluster interactions
  • First migrated test case from tests-private to demonstrate the framework functionality

Key Components

🧪 Test Framework Infrastructure

  • Test utilities (test/qe/util/) providing helpers for:
    • OLM operations (catalog sources, subscriptions, operator groups, etc.)
    • Container management (Podman, Quay clients)
    • Database operations (SQLite support)
    • Cluster and node management
    • Template processing and YAML handling

📋 Test Data & Fixtures

  • Extensive test data (test/qe/testdata/olm/) with YAML files covering:
    • Catalog source configurations (image, configmap, legacy variants)
    • Subscription templates (manual, proxy, environment configurations)
    • Operator group definitions
    • RBAC configurations and service accounts
    • ConfigMaps and custom resources

🏗️ Framework Architecture

  • OTE integration following OpenShift Tests Extension patterns
  • Suite definitions for different test execution contexts:
    • Parallel/Serial/Slow suites for openshift-tests
    • Extended suites for QE-specific testing
  • Automatic labeling system to distinguish tests from different sources

📚 Documentation

  • Comprehensive README with migration guidelines and best practices
  • Test case organization strategy for origin vs tests-private cases
  • Suite selection logic for different CI environments

Test Result

./openshift-tests run olmv0/extended --monitor watch-namespaces                                                                                                           
  I0918 12:11:06.364645   27240 i18n.go:119] Couldn't find the LC_ALL, LC_MESSAGES or LANG environment variables, defaulting to en_US
  I0918 12:11:06.364799   27240 i18n.go:157] Setting language to default
openshift-tests v4.1.0-9884-g87d58ca
...
INFO[0225] Found 0 must-gather tests                    
started: 0/1/2 "[sig-operator][Jira:OLM] OLMv0 should pass a trivial sanity check"

passed: (0s) 2025-09-18T04:14:55 "[sig-operator][Jira:OLM] OLMv0 should pass a trivial sanity check"

started: 0/2/2 "[sig-operator][Jira:OLM] OLMv0 should PolarionID:22259-[Skipped:Disconnected]marketplace operator CR status on a running cluster[Serial]"

passed: (55s) 2025-09-18T04:15:53 "[sig-operator][Jira:OLM] OLMv0 should PolarionID:22259-[Skipped:Disconnected]marketplace operator CR status on a running cluster[Serial]"

Shutting down the monitor
Collecting data.
INFO[0287] Starting CollectData for all monitor tests   
INFO[0287]   Starting CollectData for [Jira:"Test Framework"] monitor test watch-namespaces collection 
INFO[0287]   Finished CollectData for [Jira:"Test Framework"] monitor test watch-namespaces collection 
INFO[0287] Finished CollectData for all monitor tests   
Computing intervals.
Evaluating tests.
Cleaning up.
INFO[0287] beginning cleanup                             monitorTest=watch-namespaces
Serializing results.
Writing to storage.
  m.startTime = 2025-09-18 12:14:51.32438 +0800 CST m=+225.047897417
  m.stopTime  = 2025-09-18 12:15:53.424133 +0800 CST m=+287.148314084
Processing monitorTest: watch-namespaces
  finalIntervals size = 4
  first interval time: From = 2025-09-18 12:14:51.327796 +0800 CST m=+225.051312876; To = 2025-09-18 12:14:51.327796 +0800 CST m=+225.051312876
  last interval time: From = 2025-09-18 12:15:53.423517 +0800 CST m=+287.147697751; To = 2025-09-18 12:15:53.423517 +0800 CST m=+287.147697751
Writing junits.
Writing JUnit report to e2e-monitor-tests__20250918-041150.xml
2 pass, 0 skip (4m3s)
INFO[0290] Successfully removed tmpDir /var/folders/wl/t8n9cyz511q96jx5xvjfwkn40000gn/T/openshift-tests1513432006 

Usage
Please refer to README

Assisted-by: Claude Code

@openshift-ci-robot
Copy link
Copy Markdown

openshift-ci-robot commented Sep 18, 2025

@kuiwang02: This pull request references OCPQE-29415 which is a valid jira issue.

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

Details

In response to this:

Add OLMv0 Testing Framework Based on OTE

Summary

This PR introduces a comprehensive testing framework for OLMv0 (Operator Lifecycle Manager v0) based on OTE (OpenShift Tests Extension). The implementation includes:

  • Complete testing infrastructure with utility libraries for OLM operations
  • Test data and fixtures for various OLM scenarios including catalog sources, subscriptions, and operator groups
  • Comprehensive test utilities for container management, database operations, and cluster interactions
  • First migrated test case from tests-private to demonstrate the framework functionality

Key Components

🧪 Test Framework Infrastructure

  • Test utilities (test/qe/util/) providing helpers for:
    • OLM operations (catalog sources, subscriptions, operator groups, etc.)
    • Container management (Podman, Quay clients)
    • Database operations (SQLite support)
    • Cluster and node management
    • Template processing and YAML handling

📋 Test Data & Fixtures

  • Extensive test data (test/qe/testdata/olm/) with YAML files covering:
    • Catalog source configurations (image, configmap, legacy variants)
    • Subscription templates (manual, proxy, environment configurations)
    • Operator group definitions
    • RBAC configurations and service accounts
    • ConfigMaps and custom resources

🏗️ Framework Architecture

  • OTE integration following OpenShift Tests Extension patterns
  • Suite definitions for different test execution contexts:
    • Parallel/Serial/Slow suites for openshift-tests
    • Extended suites for QE-specific testing
  • Automatic labeling system to distinguish tests from different sources

📚 Documentation

  • Comprehensive README with migration guidelines and best practices
  • Test case organization strategy for origin vs tests-private cases
  • Suite selection logic for different CI environments

Test Result

./openshift-tests run olmv0/extended --monitor watch-namespaces                                                                                                           
 I0918 12:11:06.364645   27240 i18n.go:119] Couldn't find the LC_ALL, LC_MESSAGES or LANG environment variables, defaulting to en_US
 I0918 12:11:06.364799   27240 i18n.go:157] Setting language to default
openshift-tests v4.1.0-9884-g87d58ca
INFO[0000] Including only extension binaries with image tags: [tests olm-operator-controller] 
...
INFO[0225] Found 0 must-gather tests                    
started: 0/1/2 "[sig-operator][Jira:OLM] OLMv0 should pass a trivial sanity check"

passed: (0s) 2025-09-18T04:14:55 "[sig-operator][Jira:OLM] OLMv0 should pass a trivial sanity check"

started: 0/2/2 "[sig-operator][Jira:OLM] OLMv0 should PolarionID:22259-[Skipped:Disconnected]marketplace operator CR status on a running cluster[Serial]"

passed: (55s) 2025-09-18T04:15:53 "[sig-operator][Jira:OLM] OLMv0 should PolarionID:22259-[Skipped:Disconnected]marketplace operator CR status on a running cluster[Serial]"

Shutting down the monitor
Collecting data.
INFO[0287] Starting CollectData for all monitor tests   
INFO[0287]   Starting CollectData for [Jira:"Test Framework"] monitor test watch-namespaces collection 
INFO[0287]   Finished CollectData for [Jira:"Test Framework"] monitor test watch-namespaces collection 
INFO[0287] Finished CollectData for all monitor tests   
Computing intervals.
Evaluating tests.
Cleaning up.
INFO[0287] beginning cleanup                             monitorTest=watch-namespaces
Serializing results.
Writing to storage.
 m.startTime = 2025-09-18 12:14:51.32438 +0800 CST m=+225.047897417
 m.stopTime  = 2025-09-18 12:15:53.424133 +0800 CST m=+287.148314084
Processing monitorTest: watch-namespaces
 finalIntervals size = 4
 first interval time: From = 2025-09-18 12:14:51.327796 +0800 CST m=+225.051312876; To = 2025-09-18 12:14:51.327796 +0800 CST m=+225.051312876
 last interval time: From = 2025-09-18 12:15:53.423517 +0800 CST m=+287.147697751; To = 2025-09-18 12:15:53.423517 +0800 CST m=+287.147697751
Writing junits.
Writing JUnit report to e2e-monitor-tests__20250918-041150.xml
2 pass, 0 skip (4m3s)
INFO[0290] Successfully removed tmpDir /var/folders/wl/t8n9cyz511q96jx5xvjfwkn40000gn/T/openshift-tests1513432006 

Usage

Assisted-by: Claude Code

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

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Sep 18, 2025
@openshift-ci-robot
Copy link
Copy Markdown

openshift-ci-robot commented Sep 18, 2025

@kuiwang02: This pull request references OCPQE-29415 which is a valid jira issue.

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

Details

In response to this:

Add OLMv0 Testing Framework Based on OTE

Summary

This PR introduces a comprehensive testing framework for OLMv0 (Operator Lifecycle Manager v0) based on OTE (OpenShift Tests Extension). The implementation includes:

  • Complete testing infrastructure with utility libraries for OLM operations
  • Test data and fixtures for various OLM scenarios including catalog sources, subscriptions, and operator groups
  • Comprehensive test utilities for container management, database operations, and cluster interactions
  • First migrated test case from tests-private to demonstrate the framework functionality

Key Components

🧪 Test Framework Infrastructure

  • Test utilities (test/qe/util/) providing helpers for:
    • OLM operations (catalog sources, subscriptions, operator groups, etc.)
    • Container management (Podman, Quay clients)
    • Database operations (SQLite support)
    • Cluster and node management
    • Template processing and YAML handling

📋 Test Data & Fixtures

  • Extensive test data (test/qe/testdata/olm/) with YAML files covering:
    • Catalog source configurations (image, configmap, legacy variants)
    • Subscription templates (manual, proxy, environment configurations)
    • Operator group definitions
    • RBAC configurations and service accounts
    • ConfigMaps and custom resources

🏗️ Framework Architecture

  • OTE integration following OpenShift Tests Extension patterns
  • Suite definitions for different test execution contexts:
    • Parallel/Serial/Slow suites for openshift-tests
    • Extended suites for QE-specific testing
  • Automatic labeling system to distinguish tests from different sources

📚 Documentation

  • Comprehensive README with migration guidelines and best practices
  • Test case organization strategy for origin vs tests-private cases
  • Suite selection logic for different CI environments

Test Result

./openshift-tests run olmv0/extended --monitor watch-namespaces                                                                                                           
 I0918 12:11:06.364645   27240 i18n.go:119] Couldn't find the LC_ALL, LC_MESSAGES or LANG environment variables, defaulting to en_US
 I0918 12:11:06.364799   27240 i18n.go:157] Setting language to default
openshift-tests v4.1.0-9884-g87d58ca
INFO[0000] Including only extension binaries with image tags: [tests olm-operator-controller] 
...
INFO[0225] Found 0 must-gather tests                    
started: 0/1/2 "[sig-operator][Jira:OLM] OLMv0 should pass a trivial sanity check"

passed: (0s) 2025-09-18T04:14:55 "[sig-operator][Jira:OLM] OLMv0 should pass a trivial sanity check"

started: 0/2/2 "[sig-operator][Jira:OLM] OLMv0 should PolarionID:22259-[Skipped:Disconnected]marketplace operator CR status on a running cluster[Serial]"

passed: (55s) 2025-09-18T04:15:53 "[sig-operator][Jira:OLM] OLMv0 should PolarionID:22259-[Skipped:Disconnected]marketplace operator CR status on a running cluster[Serial]"

Shutting down the monitor
Collecting data.
INFO[0287] Starting CollectData for all monitor tests   
INFO[0287]   Starting CollectData for [Jira:"Test Framework"] monitor test watch-namespaces collection 
INFO[0287]   Finished CollectData for [Jira:"Test Framework"] monitor test watch-namespaces collection 
INFO[0287] Finished CollectData for all monitor tests   
Computing intervals.
Evaluating tests.
Cleaning up.
INFO[0287] beginning cleanup                             monitorTest=watch-namespaces
Serializing results.
Writing to storage.
 m.startTime = 2025-09-18 12:14:51.32438 +0800 CST m=+225.047897417
 m.stopTime  = 2025-09-18 12:15:53.424133 +0800 CST m=+287.148314084
Processing monitorTest: watch-namespaces
 finalIntervals size = 4
 first interval time: From = 2025-09-18 12:14:51.327796 +0800 CST m=+225.051312876; To = 2025-09-18 12:14:51.327796 +0800 CST m=+225.051312876
 last interval time: From = 2025-09-18 12:15:53.423517 +0800 CST m=+287.147697751; To = 2025-09-18 12:15:53.423517 +0800 CST m=+287.147697751
Writing junits.
Writing JUnit report to e2e-monitor-tests__20250918-041150.xml
2 pass, 0 skip (4m3s)
INFO[0290] Successfully removed tmpDir /var/folders/wl/t8n9cyz511q96jx5xvjfwkn40000gn/T/openshift-tests1513432006 

Usage
Please refer to README

Assisted-by: Claude Code

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

@openshift-ci-robot
Copy link
Copy Markdown

openshift-ci-robot commented Sep 18, 2025

@kuiwang02: This pull request references OCPQE-29415 which is a valid jira issue.

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

Details

In response to this:

Add OLMv0 Testing Framework Based on OTE

Summary

This PR introduces a comprehensive testing framework for OLMv0 (Operator Lifecycle Manager v0) based on OTE (OpenShift Tests Extension). The implementation includes:

  • Complete testing infrastructure with utility libraries for OLM operations
  • Test data and fixtures for various OLM scenarios including catalog sources, subscriptions, and operator groups
  • Comprehensive test utilities for container management, database operations, and cluster interactions
  • First migrated test case from tests-private to demonstrate the framework functionality

Key Components

🧪 Test Framework Infrastructure

  • Test utilities (test/qe/util/) providing helpers for:
    • OLM operations (catalog sources, subscriptions, operator groups, etc.)
    • Container management (Podman, Quay clients)
    • Database operations (SQLite support)
    • Cluster and node management
    • Template processing and YAML handling

📋 Test Data & Fixtures

  • Extensive test data (test/qe/testdata/olm/) with YAML files covering:
    • Catalog source configurations (image, configmap, legacy variants)
    • Subscription templates (manual, proxy, environment configurations)
    • Operator group definitions
    • RBAC configurations and service accounts
    • ConfigMaps and custom resources

🏗️ Framework Architecture

  • OTE integration following OpenShift Tests Extension patterns
  • Suite definitions for different test execution contexts:
    • Parallel/Serial/Slow suites for openshift-tests
    • Extended suites for QE-specific testing
  • Automatic labeling system to distinguish tests from different sources

📚 Documentation

  • Comprehensive README with migration guidelines and best practices
  • Test case organization strategy for origin vs tests-private cases
  • Suite selection logic for different CI environments

Test Result

./openshift-tests run olmv0/extended --monitor watch-namespaces                                                                                                           
 I0918 12:11:06.364645   27240 i18n.go:119] Couldn't find the LC_ALL, LC_MESSAGES or LANG environment variables, defaulting to en_US
 I0918 12:11:06.364799   27240 i18n.go:157] Setting language to default
openshift-tests v4.1.0-9884-g87d58ca
...
INFO[0225] Found 0 must-gather tests                    
started: 0/1/2 "[sig-operator][Jira:OLM] OLMv0 should pass a trivial sanity check"

passed: (0s) 2025-09-18T04:14:55 "[sig-operator][Jira:OLM] OLMv0 should pass a trivial sanity check"

started: 0/2/2 "[sig-operator][Jira:OLM] OLMv0 should PolarionID:22259-[Skipped:Disconnected]marketplace operator CR status on a running cluster[Serial]"

passed: (55s) 2025-09-18T04:15:53 "[sig-operator][Jira:OLM] OLMv0 should PolarionID:22259-[Skipped:Disconnected]marketplace operator CR status on a running cluster[Serial]"

Shutting down the monitor
Collecting data.
INFO[0287] Starting CollectData for all monitor tests   
INFO[0287]   Starting CollectData for [Jira:"Test Framework"] monitor test watch-namespaces collection 
INFO[0287]   Finished CollectData for [Jira:"Test Framework"] monitor test watch-namespaces collection 
INFO[0287] Finished CollectData for all monitor tests   
Computing intervals.
Evaluating tests.
Cleaning up.
INFO[0287] beginning cleanup                             monitorTest=watch-namespaces
Serializing results.
Writing to storage.
 m.startTime = 2025-09-18 12:14:51.32438 +0800 CST m=+225.047897417
 m.stopTime  = 2025-09-18 12:15:53.424133 +0800 CST m=+287.148314084
Processing monitorTest: watch-namespaces
 finalIntervals size = 4
 first interval time: From = 2025-09-18 12:14:51.327796 +0800 CST m=+225.051312876; To = 2025-09-18 12:14:51.327796 +0800 CST m=+225.051312876
 last interval time: From = 2025-09-18 12:15:53.423517 +0800 CST m=+287.147697751; To = 2025-09-18 12:15:53.423517 +0800 CST m=+287.147697751
Writing junits.
Writing JUnit report to e2e-monitor-tests__20250918-041150.xml
2 pass, 0 skip (4m3s)
INFO[0290] Successfully removed tmpDir /var/folders/wl/t8n9cyz511q96jx5xvjfwkn40000gn/T/openshift-tests1513432006 

Usage
Please refer to README

Assisted-by: Claude Code

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.

@kuiwang02
Copy link
Copy Markdown
Contributor Author

/hold
to wait #1114

@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 Sep 18, 2025
@kuiwang02
Copy link
Copy Markdown
Contributor Author

/test okd-scos-e2e-aws-ovn

@kuiwang02
Copy link
Copy Markdown
Contributor Author

/test e2e-gcp-ovn

@kuiwang02
Copy link
Copy Markdown
Contributor Author

/unhold
because #1114 is merged

@openshift-ci openshift-ci Bot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Sep 19, 2025
@kuiwang02
Copy link
Copy Markdown
Contributor Author

/verified by @kuiwang02

@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label Sep 19, 2025
@openshift-ci-robot
Copy link
Copy Markdown

@kuiwang02: This PR has been marked as verified by @kuiwang02.

Details

In response to this:

/verified by @kuiwang02

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.

@jianzhangbjz
Copy link
Copy Markdown
Contributor

/approve
/lgtm

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Sep 19, 2025
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Sep 19, 2025

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: jianzhangbjz, kuiwang02

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

The pull request process is described 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

@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Sep 19, 2025
@openshift-ci-robot
Copy link
Copy Markdown

/retest-required

Remaining retests: 0 against base HEAD 44c9931 and 2 for PR HEAD c126c41 in total

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Sep 19, 2025

@kuiwang02: all tests passed!

Full PR test history. Your PR dashboard.

Details

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

@openshift-merge-bot openshift-merge-bot Bot merged commit 36ad306 into openshift:main Sep 19, 2025
16 checks passed
@kuiwang02 kuiwang02 deleted the initial branch September 22, 2025 00:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged. verified Signifies that the PR passed pre-merge verification criteria

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants