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

Blog: Creating an e2e test for conformance #22

Merged
merged 4 commits into from
May 13, 2021

Conversation

heyste
Copy link
Member

@heyste heyste commented May 11, 2021

Covers the journey of an untested endpoint to an e2e test.

@hh
Copy link
Member

hh commented May 11, 2021

👍

Copy link
Collaborator

@zachmandeville zachmandeville left a comment

Choose a reason for hiding this comment

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

Great post! I liked following Daemonset through the whole process. There were just a few awkwkard phrasings or typos that I've marked in the comments.


![img](/images/2021/apisnoop-progress.png)

The process starts by using [APIsnoop](https://github.com/cncf/apisnoop) (which uses a postgres database containing audit logs from e2e test runs) to identify a set of untested endpoints that are part of the stable API endpoints. During this process various groups or patterns of endpoints are discovered. One such group of endpoints are “DaemonSetStatus”. The journey starts with exploring these endpoints, creates an e2e test that exercises each endpoint before it’s merged into the K8s repo.
Copy link
Collaborator

Choose a reason for hiding this comment

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

the last sentence feels unclear to me, and "journey" is perhaps redundant to the opening "process". Maybe something like:
"Next we will explore these endpoints, create an e2e test that exercises each of them, then merge this test into the k8s repo."

Type of DaemonSet condition.
```

3. Lastly, using both [APIsnoop in cluster](https://github.com/cncf/apisnoop/tree/main/kind) while reviewing the current [e2e test suite](https://github.com/kubernetes/kubernetes/tree/master/test/e2e) for existing conformance tests that test a similair set of endpoints. In this case we used [a Service Status test](https://github.com/kubernetes/kubernetes/blob/7b2776b89fb1be28d4e9203bdeec079be903c103/test/e2e/network/service.go#L2300-L2392) as a template for the new Daemonset test.
Copy link
Collaborator

Choose a reason for hiding this comment

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

similair -> similar


## Validating the e2e test

Using `go test` we can run just a single test for quick feedback
Copy link
Collaborator

Choose a reason for hiding this comment

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

remove "just" to make the sentence flow a bit easier.


# Final Thoughts

The current workflow and tooling provides a high level of confidence when working through each e2e test. Following agreed coding patterns, styles and processes helps to minimise possible issues and test flakes. There’s always an opportunities to get support through GitHub tickets, [various Kubernetes slack channels](https://kubernetes.slack.com/messages/k8s-conformance) and conformance meetings.
Copy link
Collaborator

Choose a reason for hiding this comment

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

"there's always an opportunities": change to something like "there's always opportunities"


The current workflow and tooling provides a high level of confidence when working through each e2e test. Following agreed coding patterns, styles and processes helps to minimise possible issues and test flakes. There’s always an opportunities to get support through GitHub tickets, [various Kubernetes slack channels](https://kubernetes.slack.com/messages/k8s-conformance) and conformance meetings.

Every e2e test that’s merged and then promoted to conformance requires the input from a wide range of people. Thanks to the support from community reviewers, SIGs and the direction provided by SIG-Architecture this work is possible and very rewarding.
Copy link
Collaborator

Choose a reason for hiding this comment

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

We can punch up the last sentence a bit, maybe:

"It is thanks to the support from community reviewers, SIGS, and the direction of SIG-Architecture that this work is not just possible, but rewarding."

@zachmandeville zachmandeville merged commit 156c152 into main May 13, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants