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

Wish list: make Sieve more general and ergonomic #93

Open
3 of 8 tasks
marshtompsxd opened this issue Aug 30, 2022 · 3 comments
Open
3 of 8 tasks

Wish list: make Sieve more general and ergonomic #93

marshtompsxd opened this issue Aug 30, 2022 · 3 comments
Assignees

Comments

@marshtompsxd
Copy link
Member

marshtompsxd commented Aug 30, 2022

Ergonomics

There is a manual porting process to onboard a project to use Sieve. We hope to automate this step by integrating Sieve with existing frameworks like operator-sdk so that users can build controllers that are Sieve-friendly from the very beginning.

Generality

Sieve currently places the instrumentation in controller-runtime to intercept the interactions between the controller and the Kubernetes API. That said, we also need to support controllers that are not built on top of controller-runtime but directly rely on client-go.

Miscellaneous

  • Run Sieve server (i.e., test coordinator and trace collector) as a pod in the Kind cluster
@marshtompsxd marshtompsxd changed the title To make Sieve more general and ergonomic Wish list To make Sieve more general and ergonomic Aug 30, 2022
@marshtompsxd marshtompsxd changed the title Wish list To make Sieve more general and ergonomic Wish list: To make Sieve more general and ergonomic Aug 30, 2022
@marshtompsxd marshtompsxd self-assigned this Aug 30, 2022
@lalithsuresh lalithsuresh changed the title Wish list: To make Sieve more general and ergonomic Wish list: make Sieve more general and ergonomic Aug 30, 2022
@isubasinghe
Copy link

Hello @marshtompsxd I remember you from verus, I worked on that with Andrea. I wanted to instrument argo-workflows which uses client-go directly but wasn't really able to find any bugs. I know for certain that the controller has plenty of bugs. If I push my changes, do you think you'd have time to take a look and inform me of where I am making a mistake? Thanks.

@marshtompsxd
Copy link
Member Author

Hi @isubasinghe. Thank you for reaching out. Testing argo-workflows using Sieve sounds very cool. Please feel free to open a PR with the changes you made to instrument the controller and I will help review it.

I know for certain that the controller has plenty of bugs.

What types of bugs are you looking for in this controller? Do you have some concrete examples (e.g., historical bugs)? I want to make sure Sieve is the right tool to help you find bugs.

@isubasinghe
Copy link

Thanks a lot @marshtompsxd, I will push my changes when I get a chance in that case.

I've found multiple bugs of various kinds, varying from race conditions to unhandled bits of logic resulting in workflows being stuck in Runnning even though the pods have terminated. One off the top of my head is that we failed to mark a node as Error/Failed when a pod was terminated due to a missing CRD update.

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

No branches or pull requests

2 participants