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

epic: implement Garden API for containerd #4783

Open
deniseyu opened this issue Nov 18, 2019 · 3 comments
Open

epic: implement Garden API for containerd #4783

deniseyu opened this issue Nov 18, 2019 · 3 comments

Comments

@deniseyu
Copy link
Contributor

@deniseyu deniseyu commented Nov 18, 2019

As an incremental step towards using containerd natively for Concourse workers,
we're going to implent a Garden backend that's backed by containerd.

On the worker side, the backend will be shipped alongside gdn, with the switch
between one and the other possible through the use of a feature flag:
--garden-use-containerd.


  • Container
    • Handle(): #4913
    • Stop(): #5114
    • Info(): #5114
    • Run(): #5114
    • Attach(): #5114
    • Property-related: #5114
    • Lookup: #5114
    • SetGraceTime():
    • no-ops
      • CurrentLimits() (Bandwidth, CPU, Disk)?
      • Limit*() (Bandwidth, CPU, Disk)?
      • StreamIn()
      • StreamOut()
      • Metrics()


References:

@deniseyu deniseyu created this issue from a note in containerd workers (To do) Nov 18, 2019
@cirocosta cirocosta mentioned this issue Nov 18, 2019
7 of 11 tasks complete
@deniseyu deniseyu moved this from To do to In progress in containerd workers Nov 19, 2019
@deniseyu deniseyu changed the title Epic: Implement Garden interface methods using containerd client functions Epic: Implement Garden client interface methods using containerd client functions Dec 10, 2019
@deniseyu

This comment has been minimized.

Copy link
Contributor Author

@deniseyu deniseyu commented Dec 12, 2019

We are going to defer the bulk reporting functionality because those all depend on a Container to be implemented and able to report its own stats first. For later reference, here is Guardian's implementation of these bulk methods: https://github.com/cloudfoundry/guardian/blob/6b021168907b2f2ae25cf54acae8b454b430332f/gardener/container.go

Same goes for GraceTime()!

@deniseyu

This comment has been minimized.

Copy link
Contributor Author

@deniseyu deniseyu commented Dec 12, 2019

Chatted with @xtreme-sameer-vohra about whether we should do any cleanup when Stop()ing -- it seems like in the current world, we don't do anything when terminating the client connection to the Garden server. We're guessing now (will verify later) that this is because this normally happens as part of the land-worker or retire-worker flow, and later on in the lifecycle of that worker, all machine resources will be destroyed by the daemon spinning down and/or the worker VM (or k8s deployment) going away. Doing resource cleanup as part of the backend's Stop() implementation would be surprising. So we'll just leave it as is, and revisit this when we're ready to implement garbage collection later.

@kcmannem kcmannem moved this from In progress to Review in progress in containerd workers Dec 17, 2019
@cirocosta cirocosta moved this from Review in progress to In progress in containerd workers Dec 23, 2019
@cirocosta cirocosta changed the title Epic: Implement Garden client interface methods using containerd client functions epic: implement Garden API for containerd Dec 23, 2019
@cirocosta

This comment has been minimized.

Copy link
Member

@cirocosta cirocosta commented Dec 23, 2019

Hey,

I just updated the issue to make the title and body more consistent with the intent of capturing all of the work on implementing the containerd backend for the garden api.

Please let me know if I missed anything.

thx!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
containerd workers
  
End goals
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
6 participants
You can’t perform that action at this time.