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

e2e: do not parse resourceVersion #108638

Merged

Conversation

stevekuznetsov
Copy link
Contributor

@stevekuznetsov stevekuznetsov commented Mar 10, 2022

This test wishes to observe a watch event. In order to do this in the
past, the test chose a well-known Service object, fetched it, and did
arithmetic on the returned resourceVersion in order to start a watch
that was guaranteed to see an event. It is not valid to parse the
resourceVersion as an integer or to do arithmetic on it, so in order
to make the test conformant to an appropriate use of the API it now:

  • creates a namespace
  • fetches the current resourceVersion
  • creates an object
  • watches from the previous resourceVersion that was read

This ensures that an event is seen by the watch, but uses the publically
supported API.

ConfigMaps are used instead of Services as they do not require a
valid spec for creation and make the test terser.

Signed-off-by: Steve Kuznetsov skuznets@redhat.com

/kind bug
/kind cleanup
/sig api-machinery

NONE

/assign @liggitt @smarterclayton @deads2k @sttts

@k8s-ci-robot k8s-ci-robot added size/S Denotes a PR that changes 10-29 lines, ignoring generated files. kind/bug Categorizes issue or PR as related to a bug. kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt. do-not-merge/release-note-label-needed Indicates that a PR should not merge because it's missing one of the release note labels. sig/api-machinery Categorizes an issue or PR as relevant to SIG API Machinery. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. needs-priority Indicates a PR lacks a `priority/foo` label and requires one. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. labels Mar 10, 2022
@k8s-ci-robot k8s-ci-robot added area/test sig/testing Categorizes an issue or PR as relevant to SIG Testing. labels Mar 10, 2022
@k8s-ci-robot k8s-ci-robot added release-note-none Denotes a PR that doesn't merit a release note. and removed do-not-merge/release-note-label-needed Indicates that a PR should not merge because it's missing one of the release note labels. labels Mar 10, 2022
@fedebongio
Copy link
Contributor

/triage accepted

@k8s-ci-robot k8s-ci-robot added triage/accepted Indicates an issue or PR is ready to be actively worked on. and removed needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels Mar 10, 2022
@stevekuznetsov
Copy link
Contributor Author

@liggitt the framework will create an individual namespace per g.It(). I've changed the code to create a well-known name and use a field-selector on the watch so that we can be certain about the event we get in the watch. However, the original test was permissive to any event, so I believe that the behavior is appropriate in either case.

This test wishes to observe a watch event. In order to do this in the
past, the test chose a well-known `Service` object, fetched it, and did
arithmetic on the returned `resourceVersion` in order to start a watch
that was guaranteed to see an event. It is not valid to parse the
`resourceVersion` as an integer or to do arithmetic on it, so in order
to make the test conformant to an appropriate use of the API it now:

 - creates a namespace
 - fetches the current `resourceVersion`
 - creates an object
 - watches from the previous `resourceVersion` that was read

This ensures that an event is seen by the watch, but uses the publically
supported API.

`ConfigMap`s are used instead of `Service`s as they do not require a
valid `spec` for creation and make the test terser.

Signed-off-by: Steve Kuznetsov <skuznets@redhat.com>
@liggitt
Copy link
Member

liggitt commented Mar 10, 2022

the original test was permissive to any event

almost... it wouldn't have been happy with a delete

current code lgtm, since this is modifying a conformance test, mind triggering e2es a few times (maybe get 10 clean runs?) to demonstrate it passes reliably

@stevekuznetsov stevekuznetsov changed the title conformance: do not parse resourceVersion e2e: do not parse resourceVersion Mar 10, 2022
@stevekuznetsov
Copy link
Contributor Author

@liggitt sorry, yes - that is what I meant. No deletes with the way this works now, either. I just realized this is not a conformance test, just a normal e2e. Is there a particular job you want to see repeated? pull-kubernetes-e2e-kind ?

@liggitt
Copy link
Member

liggitt commented Mar 10, 2022

I just realized this is not a conformance test, just a normal e2e

ah, in that case

/lgtm
/approve

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Mar 10, 2022
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: liggitt, stevekuznetsov

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

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Mar 10, 2022
@smarterclayton
Copy link
Contributor

TFTR jordan

@k8s-ci-robot k8s-ci-robot merged commit 3c10cc8 into kubernetes:master Mar 10, 2022
@k8s-ci-robot k8s-ci-robot added this to the v1.24 milestone Mar 10, 2022
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. area/test cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/bug Categorizes issue or PR as related to a bug. kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt. lgtm "Looks good to me", indicates that a PR is ready to be merged. needs-priority Indicates a PR lacks a `priority/foo` label and requires one. release-note-none Denotes a PR that doesn't merit a release note. sig/api-machinery Categorizes an issue or PR as relevant to SIG API Machinery. sig/testing Categorizes an issue or PR as relevant to SIG Testing. size/S Denotes a PR that changes 10-29 lines, ignoring generated files. triage/accepted Indicates an issue or PR is ready to be actively worked on.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants