Skip to content

Conversation

@sergiordlr
Copy link
Contributor

- What I did
Migrate pinnedimageset test cases from the private repository to MCO repository

A new suite openshift/machine-config-operator/qe has been created. In this suite we will include all test cases not in cluded in the already existing openshift/machine-config-operator/disruptive suite. The idea is that one suite will contain the most important test cases and will be run more often, and the other test suites will contain the rest of the test cases and will be run less frequently.

- How to verify it
All migrated test cases should pass

@openshift-ci-robot
Copy link
Contributor

openshift-ci-robot commented Dec 4, 2025

@sergiordlr: This pull request references MCO-2006 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:

- What I did
Migrate pinnedimageset test cases from the private repository to MCO repository

A new suite openshift/machine-config-operator/qe has been created. In this suite we will include all test cases not in cluded in the already existing openshift/machine-config-operator/disruptive suite. The idea is that one suite will contain the most important test cases and will be run more often, and the other test suites will contain the rest of the test cases and will be run less frequently.

- How to verify it
All migrated test cases should pass

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 Dec 4, 2025
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Dec 4, 2025

[APPROVALNOTIFIER] This PR is NOT APPROVED

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

Comment on lines +156 to +159
// BeAvailable returns the gomega matcher to check if a resource is available or not.
func BeAvailable() types.GomegaMatcher {
return &DegradedMatcher{&conditionMatcher{conditionType: "Available", field: "status", expected: "True"}}
}
Copy link
Member

Choose a reason for hiding this comment

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

I didn't know it was so simple to define our own GomegaMatcher. Cool!

o.EventuallyWithOffset(1, &kc, timeout, "2s").Should(o.SatisfyAll(
HaveConditionField("Failure", "status", "False"),
HaveConditionField("Failure", "message", o.ContainSubstring(expectedMsg)),
), "KubeletConfig '%s' should report Failure in status.conditions and report failure message %s. But it doesnt.", kc.GetName(), expectedMsg)
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
), "KubeletConfig '%s' should report Failure in status.conditions and report failure message %s. But it doesnt.", kc.GetName(), expectedMsg)
), "KubeletConfig '%s' should report Failure in status.conditions and report failure message %s. But it doesn't.", kc.GetName(), expectedMsg)

Nit, but I do not think it is a blocker to letting this merge.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

done

Comment on lines +7 to +8
# We trigger this service using a timeout with command:
# systemd-run --on-active="5minutes" --unit=tc-73659-clean-file-timed.service
Copy link
Member

Choose a reason for hiding this comment

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

Is this intentionally commented out?

Copy link
Contributor Author

@sergiordlr sergiordlr Dec 5, 2025

Choose a reason for hiding this comment

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

Yes. It explains how this unit is used. It is triggered by a timeout.

We first create the unit file, and instead of starting it directly, we run the commented command, so that it is triggered once the 5 minutes pass.

It tells the manual command used, just in case it is needed for debugging, or to understand how the test uses this unit.

The problem is that we cannot reach the node if it is under pressure because it rejects the debug pods. What we do is that we delay the file deletion 5 minutes, and then we put the node under pressure creating this file. Like that the pressure is auto-resolved (deleting the file) without we having to access the node again.

Copy link
Member

Choose a reason for hiding this comment

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

I see, thank you for the detailed explanation!


})

// Disconnected clusters use an imagecontentsourcepolicy to mirror the images in openshittest. In this test cases we create an ImageDigestMirrorSet to mirror the same images and it is not supported
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
// Disconnected clusters use an imagecontentsourcepolicy to mirror the images in openshittest. In this test cases we create an ImageDigestMirrorSet to mirror the same images and it is not supported
// Disconnected clusters use an imagecontentsourcepolicy to mirror the images in openshifttest. In this test cases we create an ImageDigestMirrorSet to mirror the same images and it is not supported

Copy link
Contributor Author

Choose a reason for hiding this comment

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

done

DigestMirrorTest(oc, mcp, idmsName, idmsMirrors, pinnedImage, pinnedImageSetName)
})

// Disconnected clusters use an imagecontentsourcepolicy to mirror the images in openshittest. In this test cases we create an ImageDigestMirrorSet to mirror the same images and it is not supported
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
// Disconnected clusters use an imagecontentsourcepolicy to mirror the images in openshittest. In this test cases we create an ImageDigestMirrorSet to mirror the same images and it is not supported
// Disconnected clusters use an imagecontentsourcepolicy to mirror the images in openshifttest. In this test cases we create an ImageDigestMirrorSet to mirror the same images and it is not supported

Copy link
Contributor Author

Choose a reason for hiding this comment

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

done

Comment on lines 196 to 197
// Due to https://issues.redhat.com/browse/OCPBUGS-57473 we execute this test case in P1, and we have moved all OCL test cases out of P1
// Like that we make sure that no test cases are skipped because the cluster is unhealthy. This change can be undone once the issue is fixed
Copy link
Member

Choose a reason for hiding this comment

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

This change can be undone once the issue is fixed

Is it worth making a Jira to track this follow up work? Or at least a comment on OCPBUGS-57473 to make sure this followup need is not lost?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I added a comment here: https://issues.redhat.com/browse/OCPBUGS-57473?focusedId=28611858&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-28611858

We don't execute the test cases in defined groups here, like we do in the private repo. This comment doesn't make much sense in this repository. Sharding will be in charge of distributing them.

I'll re-phrase this comment in the code apart from adding the new comment in the jira ticket

Copy link
Member

Choose a reason for hiding this comment

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

Awesome, thank you.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

done

Comment on lines +559 to +561
// TODO: When the "oc adm release info" command spec fails:
// 1. parse the output to get the release image name
// 2. search in all imagecontentsourcepolicies and all imagedigestimirrorsets if there is any mirror for the release image (it should)
// 3. use the mirror manually to get the image specs
Copy link
Member

Choose a reason for hiding this comment

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

Is this followup work that can be tracked in Jira?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I created this ticket https://issues.redhat.com/browse/MCO-2008, included in the QE improvements epic.

Copy link
Member

Choose a reason for hiding this comment

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

Thank you!

o.Expect(mcp.waitForPinComplete(waitForPinned)).To(o.Succeed(), "Pinned image operation is not completed in %s", mcp)
logger.Infof("OK!\n")

exutil.By("Check that only the image reamaining in the pinnedimageset is pinned")
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
exutil.By("Check that only the image reamaining in the pinnedimageset is pinned")
exutil.By("Check that only the image remaining in the pinnedimageset is pinned")

Copy link
Contributor Author

Choose a reason for hiding this comment

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

done

Copy link
Contributor

@yuqi-zhang yuqi-zhang left a comment

Choose a reason for hiding this comment

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

the general idea looks fine to me, some non-blocking thoughts on the suites inline


// This suite will include all tests not included in the previous suite inheriting from openshift/disruptive
ext.AddGlobalSuite(e.Suite{
Name: "openshift/machine-config-operator/qe",
Copy link
Contributor

Choose a reason for hiding this comment

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

Maybe we can name this something more descriptive, with something like slow or longrunning (haven't thought of a good name yet)

Alternatively we could add a Description here as well.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

We have configured this name: openshift/machine-config-operator/longduration and added a description for both suites.

ext.AddGlobalSuite(e.Suite{
Name: "openshift/machine-config-operator/qe",
Qualifiers: []string{
`!name.contains("[Suite:openshift/machine-config-operator/disruptive")`,
Copy link
Contributor

Choose a reason for hiding this comment

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

Perhaps we should have an actual qualifier here, in case we want to add more suites in the future. Probably easier to be explicit than to depend on exclusion

Copy link
Contributor Author

Choose a reason for hiding this comment

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

We use this qualifier now: [Suite:openshift/machine-config-operator/longduration]

Copy link
Member

@isabella-janssen isabella-janssen left a comment

Choose a reason for hiding this comment

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

The tests look generally good to me. I agree with @yuqi-zhang's comment about the test suite name (#5466 (comment)) and I'd like to see some rehearsal payload runs, if possible.

@sergiordlr sergiordlr force-pushed the mco_2006_migrate_pinned_tests branch 2 times, most recently from 791058b to 3130a4f Compare December 9, 2025 10:47
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Dec 9, 2025

@sergiordlr: 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 3130a4f link true /test verify
ci/prow/e2e-aws-ovn-upgrade 3130a4f link true /test e2e-aws-ovn-upgrade
ci/prow/e2e-aws-ovn 3130a4f link true /test e2e-aws-ovn
ci/prow/images 3130a4f link true /test images
ci/prow/e2e-gcp-op-1of2 3130a4f link true /test e2e-gcp-op-1of2
ci/prow/bootstrap-unit 3130a4f link false /test bootstrap-unit
ci/prow/e2e-gcp-op-single-node 3130a4f link true /test e2e-gcp-op-single-node
ci/prow/okd-scos-images 3130a4f link true /test okd-scos-images
ci/prow/e2e-gcp-op-2of2 3130a4f link true /test e2e-gcp-op-2of2
ci/prow/e2e-hypershift 3130a4f link true /test e2e-hypershift
ci/prow/unit 3130a4f link true /test unit

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.

@sergiordlr sergiordlr force-pushed the mco_2006_migrate_pinned_tests branch from 3130a4f to c7aa7a4 Compare December 9, 2025 11:05
@sergiordlr
Copy link
Contributor Author

/payload-job periodic-ci-openshift-machine-config-operator-release-4.21-periodics-e2e-vsphere-mco-tp-longduration periodic-ci-openshift-machine-config-operator-release-4.21-periodics-e2e-aws-mco-tp-fips-proxy-longduration

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Dec 9, 2025

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

  • periodic-ci-openshift-machine-config-operator-release-4.21-periodics-e2e-vsphere-mco-tp-longduration

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/d9f34dd0-d501-11f0-934c-989a16946a02-0

@sergiordlr
Copy link
Contributor Author

/payload-job periodic-ci-openshift-machine-config-operator-release-4.21-periodics-e2e-vsphere-mco-tp-longduration periodic-ci-openshift-machine-config-operator-release-4.21-periodics-e2e-aws-mco-fips-proxy-longduration

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Dec 9, 2025

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

  • periodic-ci-openshift-machine-config-operator-release-4.21-periodics-e2e-vsphere-mco-tp-longduration
  • periodic-ci-openshift-machine-config-operator-release-4.21-periodics-e2e-aws-mco-fips-proxy-longduration

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/1488b5c0-d502-11f0-9ab7-cf8e19f31771-0

@sergiordlr
Copy link
Contributor Author

/payload-job periodic-ci-openshift-machine-config-operator-release-4.21-periodics-e2e-vsphere-mco-tp-longduration periodic-ci-openshift-machine-config-operator-release-4.21-periodics-e2e-aws-mco-fips-proxy-longduration

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Dec 9, 2025

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

  • periodic-ci-openshift-machine-config-operator-release-4.21-periodics-e2e-vsphere-mco-tp-longduration
  • periodic-ci-openshift-machine-config-operator-release-4.21-periodics-e2e-aws-mco-fips-proxy-longduration

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/a153bb40-d529-11f0-81b6-b61ea4f4236f-0

@sergiordlr
Copy link
Contributor Author

/test e2e-gcp-op-single-node

@sergiordlr
Copy link
Contributor Author

/payload-job-with-prs periodic-ci-openshift-machine-config-operator-release-4.21-periodics-e2e-aws-mco-fips-proxy-longduration openshift/origin#30592

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Dec 10, 2025

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

  • periodic-ci-openshift-machine-config-operator-release-4.21-periodics-e2e-aws-mco-fips-proxy-longduration

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/73bc4330-d5da-11f0-9bb4-9cb64c814439-0

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