Skip to content

containerd: include zfs plugin by default#2096

Merged
crosbymichael merged 1 commit intocontainerd:masterfrom
stevvooe:include-zfs-by-default
Mar 15, 2018
Merged

containerd: include zfs plugin by default#2096
crosbymichael merged 1 commit intocontainerd:masterfrom
stevvooe:include-zfs-by-default

Conversation

@stevvooe
Copy link
Copy Markdown
Member

@stevvooe stevvooe commented Feb 3, 2018

Signed-off-by: Stephen J Day [email protected]

Note that I would do this for aufs, but ran into containerd/aufs#8

@Random-Liu
Copy link
Copy Markdown
Member

A bit out of topic of this PR.

The problem is that if we don't have something like #1615. For CI in cri-containerd, we still need to play all kinds of vendor tricks to clone containerd code, and automatically update containerd code to vendor new CRI plugin. :(

It is fine, but a bit ugly. (see containerd/cri#561 and containerd/cri#523 and containerd/cri#527.)

Another option is to completely merge containerd and cri-containerd into one repo.

Comment thread vendor.conf Outdated
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Please vendor github.com/mistifyio/go-zfs as well

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

How is CI passing without this dependency being included?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@dnephin failing

Comment thread cmd/containerd/builtins_linux.go Outdated
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I think we want to support no_zfs buildtag

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Maybe a omit_default_plugins tag instead of a tag for each default?

To build with a custom list of plugins someone could add a builtins_custom.go with the exact list they want.

Copy link
Copy Markdown
Member Author

@stevvooe stevvooe Feb 5, 2018

Choose a reason for hiding this comment

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

You're welcome to submit that as a follow up.

@dnephin
Copy link
Copy Markdown
Contributor

dnephin commented Feb 4, 2018

@Random-Liu is there a cri-containerd issue open for this problem with a full description? I have a proposal, I'd like to make sure I'm commending in the right place and that I have all the context.

@stevvooe
Copy link
Copy Markdown
Member Author

stevvooe commented Feb 5, 2018

@Random-Liu I understand but we are clearly going down a rabbit hole of complexity that is untenable. It drastically affects the contribution experience. If the problem is that zfs isn't built in, we don't build a massively complex system of vendoring and export main packages, we just include zfs. Same thing with CRI.

If we incorporate everything and want to refactor the result, then we can do so at that time.

@dnephin
Copy link
Copy Markdown
Contributor

dnephin commented Feb 5, 2018

we still need to play all kinds of vendor tricks to clone containerd code, and automatically update containerd code to vendor new CRI plugin.

I mentioned in one of the issues you linked, but plugins aren't really a special case, they are just like any other dependency in vendor. dep makes updating dependencies a lot easier by specifying both a constraint version and a pinned version. This is probably the best way to solve any vendoring pain.

@Random-Liu
Copy link
Copy Markdown
Member

Random-Liu commented Feb 5, 2018

I understand but we are clearly going down a rabbit hole of complexity that is untenable. It drastically affects the contribution experience.

@stevvooe If we have #1615, we don't need to do those crazy script stuff in cri-containerd. I also don't like those scripts, that's why I'd like #1615 to land if possible. :)

@stevvooe
Copy link
Copy Markdown
Member Author

stevvooe commented Feb 5, 2018

@Random-Liu The problem with #1615 is that it creates other dependencies that we might have to support in the future. It also creates a split that might not be ideal in the future. I'd like to see a few options before we jump down that particular path.

@stevvooe stevvooe force-pushed the include-zfs-by-default branch from e3077ed to 7a0b9a3 Compare February 5, 2018 22:52
@Random-Liu
Copy link
Copy Markdown
Member

Random-Liu commented Feb 5, 2018

@stevvooe Actually, a better option is to use golang plugin mode. Let's think about whether we can make it work.

@stevvooe stevvooe force-pushed the include-zfs-by-default branch from 7a0b9a3 to a159ff2 Compare February 5, 2018 23:03
@codecov-io
Copy link
Copy Markdown

codecov-io commented Feb 5, 2018

Codecov Report

Merging #2096 into master will not change coverage.
The diff coverage is n/a.

Impacted file tree graph

@@           Coverage Diff           @@
##           master    #2096   +/-   ##
=======================================
  Coverage   41.19%   41.19%           
=======================================
  Files          66       66           
  Lines        7725     7725           
=======================================
  Hits         3182     3182           
  Misses       4041     4041           
  Partials      502      502
Flag Coverage Δ
#windows 41.19% <ø> (ø) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update b307df2...f4113a9. Read the comment docs.

@stevvooe
Copy link
Copy Markdown
Member Author

@containerd/containerd-maintainers Are we a go or no go on this one? I get that a plugin system would be nice but it seems like there is some demand for zfs support.

@mlaventure
Copy link
Copy Markdown
Contributor

How big is the demand? It's it big enough how suppose we can go ahead, but I'd prefer it being in a cmd/containerd/builtins_zfs_linux.go so it can be easily disabled at compile time.

@stevvooe
Copy link
Copy Markdown
Member Author

I'd prefer it being in a cmd/containerd/builtins_zfs_linux.go so it can be easily disabled at compile time.

I think we can take those PRs as they come, but I'd like for 1.1 to have zfs and aufs support, as these are the biggest reasons to request plugins support.

@stevvooe stevvooe force-pushed the include-zfs-by-default branch from a159ff2 to f4113a9 Compare March 14, 2018 17:29
@dmcgowan
Copy link
Copy Markdown
Member

LGTM

I would like to see a follow up though to separate this by a build tag

@crosbymichael
Copy link
Copy Markdown
Member

LGTM

@crosbymichael crosbymichael merged commit ee84187 into containerd:master Mar 15, 2018
@stevvooe stevvooe deleted the include-zfs-by-default branch March 23, 2018 18:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants