Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[poc] [wip] create QE test mappings. #85

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

deads2k
Copy link
Contributor

@deads2k deads2k commented Nov 1, 2023

No description provided.

Copy link
Contributor

openshift-ci bot commented Nov 1, 2023

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: deads2k

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

The pull request process is described here

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 Nov 1, 2023
if err := tableManager.Migrate(); err != nil {
log.WithError(err).Fatal("could not migrate mapping table")
}
//tableManager = bigquery.NewMappingTableManager(context.Background(), bigqueryClient)
Copy link
Contributor Author

Choose a reason for hiding this comment

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

this table (renamed to be qe_component_mapping) needs to be created. The serviceaccount I have lacks permissions to do this.

@deads2k
Copy link
Contributor Author

deads2k commented Nov 1, 2023

go build . && ./ci-test-mapping map --push-to-bigquery=true --mode=bigquery --google-service-account-credential-file='/home/deads/Downloads/google-sa.json' --mapping-file=qe_mapping.json

INFO[0000] fetching unique test/suite names from bigquery
INFO[0002] fetched unique test/suite names from bigquery in 2.096940488s count=8526
INFO[0002] writing results to file
INFO[0002] write complete in 15.662121ms
INFO[0002] mapping tests to ownership
INFO[0004] mapping tests to ownership complete in 2.365497963s matched=2686 unmatched=5840
INFO[0004] pushing to bigquery...
FATA[0004] could not push records to bigquery error="googleapi: Error 403: Access Denied: Table openshift-gce-devel:ci_analysis_us.qe_component_mapping: Permission bigquery.tables.updateData denied on table openshift-gce-devel:ci_analysis_us.qe_component_mapping (or it may not exist)., accessDenied"

I lack the powers

@deads2k deads2k force-pushed the qe-tests branch 2 times, most recently from 759d883 to f048583 Compare November 15, 2023 02:22
@openshift-merge-robot openshift-merge-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Nov 28, 2023
@openshift-merge-robot
Copy link
Contributor

PR needs rebase.

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/test-infra repository.

Copy link
Contributor

openshift-ci bot commented Nov 28, 2023

@deads2k: 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/lint bd6bc4a link true /test lint
ci/prow/mapping bd6bc4a link true /test mapping
ci/prow/unit bd6bc4a link true /test unit

Full PR test history. Your PR dashboard.

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/test-infra repository. I understand the commands that are listed here.

{Suite: "template related scenarios:"},
{Suite: "Testing the isolation during build scenarios"},
{Suite: "buildlogic.feature"},
{Suite: "admin build related features"},

Choose a reason for hiding this comment

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

Perhaps we can add BuildAPI and Workloads as one of the suites for build ?

Comment on lines +53 to +64
{Suite: "Operators related features"},
{Suite: "Cluster_Operator"},
{Suite: "Display All Namespace Operands for Global Operators"},
{Suite: "OTA"},
{Suite: "Operators related features"},
{Suite: "Scenarios which will be used both for function checking and upgrade checking"},
{Suite: "basic verification for upgrade testing"},
{Suite: "cluster upgrade"},
{Suite: "fips enabled verification for upgrade"},
{Suite: "operand tests"},
{Suite: "Operators Installed nonlatest operator test"},
{Suite: "Operators related features on sts cluster mode"},

Choose a reason for hiding this comment

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

I think only OTA and cluster upgrade need to map to CVO.

Choose a reason for hiding this comment

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

Actually I think it will be easier to understand that mapping CVO and cluster upgrade to OTA. To achieve that, sounds we need update golang e2e test case keyword.

Choose a reason for hiding this comment

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

Currently we are using OTA cvo and OTA osus for the golang e2e test and cluster upgrade for the upgrade test. Maybe we can map OTA and cluster upgrade to OTA? cc @jiajliu for discussion

Choose a reason for hiding this comment

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

Maybe we can map OTA and cluster upgrade to OTA

That sounds good to me.

Copy link

Choose a reason for hiding this comment

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

Mapping to OTA instead of current clusterversionoperator sounds reasonable. It looks like sub directory could be created on component dir, maybe we could use sub dirs under OTA component for a better mapping.

$ tree ota
ota
├── cvo
├── oc
├── osus
└── upgrade

then the ginkgo cases and upgrade could be mapping to each sub directory clearly.

{Suite: "Cases to test forward logs to external elasticsearch"},
{Suite: "cluster log forwarder features"},
{Suite: "fluentd related tests"},
},
Copy link

@anpingli anpingli May 21, 2024

Choose a reason for hiding this comment

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

I don't see feature below in Suite? shall use use these items>

verification-tests repo:

collector related tests
eventrouter related test
permission related test

cucushift repo:

log forwarding related tests
logging permission related tests
kibana web UI related cases for logging

{Suite: "Multus-CNI ipv6 related scenarios"},
{Suite: "Multus-CNI related scenarios"},
{Suite: "SDN multus compoment upgrade testing"},
{Suite: "testing multicast scenarios"},
Copy link

Choose a reason for hiding this comment

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

testing multicast scenarios is not belong to multus, please move to openshiftsdn and ovnkubernetes

Suggested change
{Suite: "testing multicast scenarios"},

Copy link

Choose a reason for hiding this comment

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

Please updated to

			{Suite: "CNI related features"},
			{Suite: "Multus-CNI ipv6 related scenarios"},
			{Suite: "Multus-CNI related scenarios"},
			{Suite: "SDN multus compoment upgrade testing"},
                        {Suite: "Multus"},

@@ -25,6 +25,13 @@ var OpenshiftInstallerComponent = Component{
{
IncludeAll: []string{"install should succeed"},
},
{
Suite: "Install and configuration related scenarios",

Choose a reason for hiding this comment

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

installer component does not use this keyword, so I think it should be removed.

@@ -14,7 +14,12 @@ var KubernetesComponent = Component{
Name: "Storage / Kubernetes",
Operators: []string{},
DefaultJiraComponent: "Storage / Kubernetes",
Matchers: []config.ComponentMatcher{},
Matchers: []config.ComponentMatcher{

Choose a reason for hiding this comment

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

Hi, maybe I missed something, but I think we don't need a storage/kubernetes component, and all these cases can be added in storage

@@ -39,6 +39,11 @@ var MachineConfigOperatorComponent = Component{
IncludeAll: []string{"Pods cannot access the /config"},
Capabilities: []string{"Config"},
},
{Suite: "Improve MachineConfigPool list table for update status"},
{Suite: "MCO"},

Choose a reason for hiding this comment

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

in MCO QE dedicated jobs, only suite MCO is used in generated junit xml file e..g gcp-ipi-f9-longduration-mco-critical/openshift-extended-test-longduration/artifacts/junit/import-MCO.xml, I think other suites can be removed

@@ -14,7 +14,9 @@ var IngressNodeFirewallComponent = Component{
Name: "Networking / ingress-node-firewall",
Operators: []string{},
DefaultJiraComponent: "Networking / ingress-node-firewall",
Matchers: []config.ComponentMatcher{},
Matchers: []config.ComponentMatcher{
{Suite: "Egress-ingress related networking scenarios"},
Copy link

Choose a reason for hiding this comment

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

Egress-ingress related networking scenarios belong to openshiftsdn and ovnkubernetes component

Here should be Suite: "INFW"

{Suite: "Symptom Detection"},
{Suite: "cluster monitoring related upgrade check"},
{Suite: "servicemonitor"},
{Suite: "serviceXXXitor"},
Copy link

Choose a reason for hiding this comment

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

no

{Suite: "Symptom Detection"},
{Suite: "servicemonitor"},
{Suite: "serviceXXXitor"},

missed cucushift suites
Install and configuration related scenarios, see from https://github.com/openshift/cucushift/blob/master/monitoring/ci.feature#L1
alerts browser, see from https://github.com/openshift/cucushift/blob/master/web/monitoring/alerts-browser.feature#L1
query browser, see from https://github.com/openshift/cucushift/blob/master/web/monitoring/query-browser.feature#L1

also Monitoring dashboards related features for monitoring cypress UI cases
https://github.com/openshift/openshift-tests-private/blob/master/frontend/tests/monitoring/dashboards.cy.ts#L2

{Suite: "Group sync related scenarios"},
{Suite: "SCC policy related scenarios"},
{Suite: "Seccomp part of SCC policy should be kept and working after upgrade"},
{Suite: "Security_and_Compliance"},

Choose a reason for hiding this comment

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

Please drop Security_and_Compliance. I don't think apiserverauth contains this keyword.

{Suite: "about cluster setting page"},
{Suite: "add idp from console"},
{Suite: "admin console api related"},
{Suite: "alerts browser"},
Copy link

Choose a reason for hiding this comment

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

see from https://github.com/openshift-eng/ci-test-mapping/pull/85/files#r1607567823
alerts browser belongs to monitoring team

{Suite: "operand form view"},
{Suite: "pod page"},
{Suite: "projects related features via web"},
{Suite: "query browser"},
Copy link

Choose a reason for hiding this comment

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

see from https://github.com/openshift-eng/ci-test-mapping/pull/85/files#r1607567823
query browser belongs to monitoring team

Comment on lines +38 to +48
{Suite: "IPsec upgrade scenarios"},
{Suite: "Network policy plugin scenarios"},
{Suite: "Operator related networking scenarios"},
{Suite: "Pod related networking scenarios"},
{Suite: "SCTP related scenarios"},
{Suite: "Service related networking scenarios"},
{Suite: "Service_Development_A"},
{Suite: "networking isolation related scenarios"},
{Suite: "service upgrade scenarios"},
{Suite: "service related scenarios"},
{Suite: "Egress IP related features"},
Copy link

Choose a reason for hiding this comment

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

please updated to

{Suite: "Operator related networking scenarios"},
{Suite: "CNO"}

@xiaojiey
Copy link

xiaojiey commented May 21, 2024

The below components are missing: complianceoperator, occompliance, fileintegrityoperator and securityprofilesoperator.
Besides, there are several fips related test cases, fips-or-die, fips-check-node-scan, . Shall we create a separate component for FIPS? Thanks.

Copy link

@memodi memodi left a comment

Choose a reason for hiding this comment

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

netobserv comments

Copy link

Choose a reason for hiding this comment

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

how "networktools" package name was chosen? these are are network observability test suite. I wonder how the package name will be utilized?

{Suite: "Connection tracking netflow table page features"},
{Suite: "NETOBSERV Performances"},
{Suite: "NETOBSERV dashboards tests"},
},
Copy link

Choose a reason for hiding this comment

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

How often will these be updated if we add/remove/rename suites?

@@ -21,6 +21,8 @@ var CloudCredentialOperatorComponent = Component{
{
IncludeAll: []string{"bz-Cloud Credential Operator"},
},
{Suite: "CloudCredentialOperator components upgrade tests"},
{Suite: "cloud credential operator"},

Choose a reason for hiding this comment

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

For below golang test case as example, it won't be mapping into the Suites?
g.It("NonHyperShiftHOST-ROSA-OSD_CCS-Author:jshu-LEVEL0-Critical-36498-CCO credentials secret change to STS-style", func()

Comment on lines +31 to +36
{Suite: "OVN related networking scenarios"},
{Suite: "OVNKubernetes IPsec related networking scenarios"},
{Suite: "OVNKubernetes Windows Container related networking scenarios"},
{Suite: "SDN/OVN metrics related networking scenarios"},
{Suite: "ipv6 dual stack cluster test scenarios"},
{Suite: "sdn2ovn migration testing"},
Copy link

Choose a reason for hiding this comment

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

Suggested change
{Suite: "OVN related networking scenarios"},
{Suite: "OVNKubernetes IPsec related networking scenarios"},
{Suite: "OVNKubernetes Windows Container related networking scenarios"},
{Suite: "SDN/OVN metrics related networking scenarios"},
{Suite: "ipv6 dual stack cluster test scenarios"},
{Suite: "sdn2ovn migration testing"},
{Suite: "SDN"},
{Suite: "OVN related networking scenarios"},
{Suite: "OVNKubernetes IPsec related networking scenarios"},
{Suite: "OVNKubernetes Windows Container related networking scenarios"},
{Suite: "SDN/OVN metrics related networking scenarios"},
{Suite: "ipv6 dual stack cluster test scenarios"},
{Suite: "sdn2ovn migration testing"},
{Suite: "SDN compoment upgrade testing"},
{Suite: "SDN externalIP compoment upgrade testing"},
{Suite: "SDN multicast compoment upgrade testing"},
{Suite: "SDN multus compoment upgrade testing"},

{Suite: "SDN compoment upgrade testing"},
{Suite: "SDN externalIP compoment upgrade testing"},
{Suite: "SDN multicast compoment upgrade testing"},
{Suite: "SSDN multus compoment upgrade testingDN"},

Choose a reason for hiding this comment

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

Suggested change
{Suite: "SSDN multus compoment upgrade testingDN"},
{Suite: "SDN multus compoment upgrade testing"},

{Suite: "containers related features"},
{Suite: "kubelet restart and node restart"},
{Suite: "node logs related features"},
{Suite: "pod related features"},

Choose a reason for hiding this comment

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

This should be included in kubecontrollermanager/component.go, thanks !!

@kasturinarra
Copy link

Workloads:

In pkg/components/kubecontrollermanager/component.go file

remove line.no:32 as the tests are currently inactive and these does not belong to kcm.
remove line.no:33 as only two of the cases are from workloads in this file and rest others are node teams
        case OCP-11111,OCP-9778 only belongs to workloads, need to see how to run only these cases.
remove line.no:36 as when searched they give `ui related test case results"
remove line.no:38  as when searched they give `ui related test case results"
remove line.no:30 as when searched they give `ui related test case resulsts"
remove line.no:41 as when searched does not return anything in cucushift / openshift-tests-private
remove line.no:34 as these belongs to cli and not scheduler
Include case https://polarion.engineering.redhat.com/polarion/#/project/OSE/workitem?id=OCP-12975
Include {Suite: replicaSet related tests}
Include {Suite: rolling deployment related scenarios}
Include {Suite: scaling related scenarios}
Include {Suite: certificates related scenarios}
Include {Suite: pod related features} 
Include {Suite: Workloads test kcm works well}

In pkg/components/kubescheduler/component.go file

Add {Suite: "podTopologySpreadConstraints"} for scheduler/component.go file
Include {Suite: "Workloads test kubescheduler operator works well"}
Incude {Suite: Workloads test predicates and priority work well}
Include {Suite: Workloads taints and toleration works well}
Include {Suite: Workloads podTopologySpreadConstraints works well}

pkg/components/oc/component.go (A note: including oc-mirror to oc itself)

remove line.no 25, as the test belongs to storage
Include {Suite: "Event related scenarios"} in oc instead of kubeapiserver as the tests in them belong to oc
Include {Suite: "containers related features"} 
Include {Suite: "oc exports related scenarios"}
Include {Suite: "template related scenarios:"} in oc instead of component as this file has must-gather case
Include {Suite: admin build related features} in oc instead of component build.
Include {Suite: Workloads Test oc works well}
Include {Suite: Workloads test credentials work well}
Include {Suite: Workloads test syncing the groups work well}
Include {Suite: Workloads mustgather works well}
Include {Suite: Workloads oc adm command works well}
Include {Suite: Workloads ocmirror v1 works well}
Include {Suite: Workloads ocmirror v2 works well}

Have updated the g.Describe in gingko-tests to make sure every file has a unique name otherwise everything was falling under kubecontrollermanager due to the Suite: Workloads and i do not want it to show too may test failures or regression as all these tests are not actually testing kubecontrollermanager. Please let me know if i am missing something or have misunderstood things. Thanks !!

PR to address unique names for g.Describe https://github.com/openshift/openshift-tests-private/pull/16906

@@ -22,6 +22,49 @@ var ManagementConsoleComponent = Component{
{
IncludeAll: []string{"bz-Management Console"},
Copy link

Choose a reason for hiding this comment

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

QE test cases all have string UserInterface
can we have a new IncludeAll matcher?

			{
				IncludeAll: []string{"UserInterface"},
			},

Copy link

Choose a reason for hiding this comment

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

then we can safely remove all {Suite} matching lines from 25 ~ 67

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

None yet