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

Port Node and Pod State to Structured Intervals #28299

Merged
merged 16 commits into from Oct 18, 2023

Conversation

dgoodwin
Copy link
Contributor

@dgoodwin dgoodwin commented Oct 5, 2023

Ports the code that generates the node and pod state intervals we show in spyglass to use, and generate new structured intervals. These components interpret other "source" intervals to determine what intervals they should generate.

This was incredibly complex and time consuming to get working between the complexity and the use of raw json files as test inputs and outputs.

I discovered that Intervals were not serialized via the same logic as EventIntervals (a dupe type we use just for serialization for some reason), and this is now addressed. As a result you'll see in some of the expected.json files, a few intervals are reordered to where they should be by the new logic. (primarily consideration of the To timestamp)

There is an unfortunate hack involved where Locators cannot be used as map keys because they contain a map themselves, go does not allow this. You'll notice a couple spots where I am maintaining a map of locatorStr -> locator, for lookup later when we need the real locators. This was done because I do not want us parsing locator strings, as this was one of the problems that led to this entire effort.

Apologies for the size but it was largely unavoidable, these parts of the code are linked, one goes and they all need to.

@dgoodwin dgoodwin changed the title node pod monitor intervals Port Node and Pod State to Structured Intervals Oct 5, 2023
@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Oct 5, 2023
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Oct 11, 2023

@dgoodwin: 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/e2e-openstack-ovn cba88ea link false /test e2e-openstack-ovn
ci/prow/e2e-aws-ovn-single-node-serial cba88ea link false /test e2e-aws-ovn-single-node-serial
ci/prow/e2e-aws-csi cba88ea link false /test e2e-aws-csi
ci/prow/e2e-aws-ovn-single-node-upgrade cba88ea link false /test e2e-aws-ovn-single-node-upgrade
ci/prow/e2e-aws-ovn-single-node cba88ea link false /test e2e-aws-ovn-single-node
ci/prow/e2e-aws-ovn-cgroupsv2 cba88ea link false /test e2e-aws-ovn-cgroupsv2
ci/prow/e2e-gcp-ovn-rt-upgrade cba88ea link false /test e2e-gcp-ovn-rt-upgrade
ci/prow/e2e-gcp-csi cba88ea link false /test e2e-gcp-csi

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.

@openshift-trt-bot
Copy link

Job Failure Risk Analysis for sha: cba88ea

Job Name Failure Risk
pull-ci-openshift-origin-master-e2e-aws-ovn-single-node-serial High
[sig-cloud-provider][Feature:OpenShiftCloudControllerManager][Late] Deploy an external cloud provider [apigroup:machineconfiguration.openshift.io] [Suite:openshift/conformance/parallel]
This test has passed 100.00% of 29 runs on jobs ['periodic-ci-openshift-release-master-nightly-4.15-e2e-aws-ovn-single-node-serial'] in the last 14 days.


case isContainer && isContainerReadyTransition:
containerToReadinessTransitions[container.ToLocator()] = append(containerToReadinessTransitions[container.ToLocator()], event)
containerToReadinessTransitions[cls] = append(containerToReadinessTransitions[cls], event)

case isKubeletReadinessCheck:
Copy link
Contributor

Choose a reason for hiding this comment

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

do we need isContainer && here like the ones above that also use cls? or maybe isKubeletReadinessCheck imples that isContainer == true?

Copy link
Contributor Author

@dgoodwin dgoodwin Oct 18, 2023

Choose a reason for hiding this comment

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

Edit, good eye, looks like it will have a container in the locator, but checking for it in addition to the isKubeletreadinessCheck is likely redundant. I'd be hesitant to change the logic that was there, probably more likely to cause problems than improve anything.

@DennisPeriquet
Copy link
Contributor

/lgtm

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Oct 18, 2023
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Oct 18, 2023

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: DennisPeriquet, dgoodwin

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-robot
Copy link

/retest-required

Remaining retests: 0 against base HEAD dcf6a4e and 2 for PR HEAD cba88ea in total

@openshift-ci openshift-ci bot merged commit ed1b856 into openshift:master Oct 18, 2023
14 of 22 checks passed
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. lgtm Indicates that a PR is ready to be merged.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants