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

Containerized mounts #278

Closed
jsafrane opened this Issue Apr 26, 2017 · 18 comments

Comments

Projects
@jsafrane
Member

jsafrane commented Apr 26, 2017

Feature Description

  • One-line feature description (can be used as a release note):
    Kubernetes can run mount utilities in pods instead on the host.

  • Primary contact (assignee): @jsafrane

  • Responsible SIGs: sig-storage, sig-node

  • Design proposal link (community repo): kubernetes/community#589

  • Reviewer(s) - (for LGTM) recommend having 2+ reviewers (at least one from code-area OWNERS file) agreed to review. Reviewers from multiple companies preferred:

  • Approver (likely from SIG/area to which feature belongs): @saad-ali

  • Initial target stage (alpha/beta/stable) and release (x.y):

    • Alpha release target (x.y): 1.7 1.8 1.9
    • Beta release target (x.y): 1.10?
    • Stable release target (x.y): 1.11

@jsafrane jsafrane self-assigned this Apr 26, 2017

@idvoretskyi idvoretskyi added this to the v1.7 milestone May 3, 2017

@idvoretskyi

This comment has been minimized.

Member

idvoretskyi commented May 3, 2017

@jsafrane please, don't forget about the design proposal link.

@gnufied

This comment has been minimized.

Member

gnufied commented May 3, 2017

The design proposal - kubernetes/community#589

@jsafrane

This comment has been minimized.

Member

jsafrane commented Jun 5, 2017

slipped from 1.7

@idvoretskyi idvoretskyi added this to the next-milestone milestone Jun 6, 2017

@saad-ali saad-ali modified the milestones: 1.8, next-milestone Jul 12, 2017

@jsafrane

This comment has been minimized.

Member

jsafrane commented Jul 20, 2017

There are two design proposals:

k8s-merge-robot added a commit to kubernetes/kubernetes that referenced this issue Aug 22, 2017

Merge pull request #46458 from jsafrane/mount-prep
Automatic merge from submit-queue (batch tested with PRs 46458, 50934, 50766, 50970, 47698)

Prepare VolumeHost for running mount tools in containers

This is the first part of implementation of kubernetes/enhancements#278 - running mount utilities in containers.

It updates `VolumeHost` interface:

*  `GetMounter()` now requires volume plugin name, as it is going to return different mounter to different volume plugings, because mount utilities for these plugins can be on different places.
* New `GetExec()` method that should volume plugins use to execute any utilities. This new `Exec` interface will execute them on proper place.
* `SafeFormatAndMount` is updated to the new `Exec` interface.

This is just a preparation, `GetExec` right now leads to simple `os.Exec` and mount utilities are executed on the same place as before. Also, the volume plugins will be updated in subsequent PRs (split into separate PRs, some plugins required lot of changes).

```release-note
NONE
```

@kubernetes/sig-storage-pr-reviews 
@rootfs @gnufied
@childsb

This comment has been minimized.

Member

childsb commented Aug 22, 2017

this has been discussed and the feature approved during sig-storage calls and 1-off designs.

@saad-ali

This comment has been minimized.

Member

saad-ali commented Aug 22, 2017

sig-storage strongly supports this feature. We really need this to get in for 1.8.

dims pushed a commit to dims/openstack-cloud-controller-manager that referenced this issue Sep 6, 2017

Merge pull request #46458 from jsafrane/mount-prep
Automatic merge from submit-queue (batch tested with PRs 46458, 50934, 50766, 50970, 47698)

Prepare VolumeHost for running mount tools in containers

This is the first part of implementation of kubernetes/enhancements#278 - running mount utilities in containers.

It updates `VolumeHost` interface:

*  `GetMounter()` now requires volume plugin name, as it is going to return different mounter to different volume plugings, because mount utilities for these plugins can be on different places.
* New `GetExec()` method that should volume plugins use to execute any utilities. This new `Exec` interface will execute them on proper place.
* `SafeFormatAndMount` is updated to the new `Exec` interface.

This is just a preparation, `GetExec` right now leads to simple `os.Exec` and mount utilities are executed on the same place as before. Also, the volume plugins will be updated in subsequent PRs (split into separate PRs, some plugins required lot of changes).

```release-note
NONE
```

@kubernetes/sig-storage-pr-reviews 
@rootfs @gnufied

@jsafrane jsafrane modified the milestones: 1.8, 1.9 Sep 14, 2017

@jsafrane

This comment has been minimized.

Member

jsafrane commented Sep 14, 2017

Slipped from 1.8

@zacharysarah

This comment has been minimized.

Contributor

zacharysarah commented Nov 22, 2017

@jsafrane 👋 Please indicate in the 1.9 feature tracking board
whether this feature needs documentation. If yes, please open a PR and add a link to the tracking spreadsheet. Thanks in advance!

UPDATE: Thanks for the update: no docs required. 👍

@saad-ali

This comment has been minimized.

Member

saad-ali commented Nov 28, 2017

Relevant PR that went into 1.9 is: kubernetes/kubernetes#53440

Also this feature is alpha in 1.9 NOT beta. Relabeling.

@saad-ali saad-ali removed the stage/beta label Nov 28, 2017

dims pushed a commit to dims/openstack-cloud-controller-manager that referenced this issue Jan 13, 2018

Merge pull request #46458 from jsafrane/mount-prep
Automatic merge from submit-queue (batch tested with PRs 46458, 50934, 50766, 50970, 47698)

Prepare VolumeHost for running mount tools in containers

This is the first part of implementation of kubernetes/enhancements#278 - running mount utilities in containers.

It updates `VolumeHost` interface:

*  `GetMounter()` now requires volume plugin name, as it is going to return different mounter to different volume plugings, because mount utilities for these plugins can be on different places.
* New `GetExec()` method that should volume plugins use to execute any utilities. This new `Exec` interface will execute them on proper place.
* `SafeFormatAndMount` is updated to the new `Exec` interface.

This is just a preparation, `GetExec` right now leads to simple `os.Exec` and mount utilities are executed on the same place as before. Also, the volume plugins will be updated in subsequent PRs (split into separate PRs, some plugins required lot of changes).

```release-note
NONE
```

@kubernetes/sig-storage-pr-reviews 
@rootfs @gnufied
@fejta-bot

This comment has been minimized.

fejta-bot commented Feb 27, 2018

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle stale

@childsb

This comment has been minimized.

Member

childsb commented Feb 28, 2018

/remove-lifecycle stale

@justaugustus

This comment has been minimized.

Member

justaugustus commented Apr 17, 2018

@jsafrane @saad-ali
Any plans for this in 1.11?

If so, can you please ensure the feature is up-to-date with the appropriate:

  • Description
  • Milestone
  • Assignee(s)
  • Labels:
    • stage/{alpha,beta,stable}
    • sig/*
    • kind/feature

cc @idvoretskyi

@jsafrane

This comment has been minimized.

Member

jsafrane commented Apr 19, 2018

@justaugustus @idvoretskyi, I updated the feature description. This feature will never reach beta or stable, we plan to use it only in e2e tests. Perhaps we can close this issue as all the work for the feature has been done.

[Now we need to actually use the feature in e2e tests, but that's another story]

@fabiand

This comment has been minimized.

fabiand commented Apr 19, 2018

That's interesting - What's the reason for not targeting it for beta/GA?

@justaugustus

This comment has been minimized.

Member

justaugustus commented Apr 20, 2018

@jsafrane Okay, I'm going to close this out, but if you need to reopen for any reason, feel free!
/close

@jsafrane

This comment has been minimized.

Member

jsafrane commented Apr 20, 2018

What's the reason for not targeting it for beta/GA?

It's dangerous. We want to reduce the options how volume plugins are working. We already have enough problems with containerized kubelet.

Note that a Flex driver can be deployed in containers already, it's orthogonal to this feature. And CSI basically requires to deploy mount utilities in containers.

@kfox1111

This comment has been minimized.

kfox1111 commented Apr 20, 2018

Might just want to clarify. Containerizing just the mount tools (so that stuff like the native ceph driver can work) is the thing not going forward. The ability to share mounts outside of a container, or have whole drivers (csi) is staying. So the end goal of having all the things in containers is still moving forward, just without this particular implementation?

@jsafrane

This comment has been minimized.

Member

jsafrane commented Apr 23, 2018

Containerizing just the mount tools (so that stuff like the native ceph driver can work) is the thing not going forward

Yes.

The end goal is CSI - CSI drivers may (and often must) containerize their tools and Kubernetes does not need to be changed in any way.

wgliang pushed a commit to wgliang/utils that referenced this issue Jun 11, 2018

Merge pull request #46458 from jsafrane/mount-prep
Automatic merge from submit-queue (batch tested with PRs 46458, 50934, 50766, 50970, 47698)

Prepare VolumeHost for running mount tools in containers

This is the first part of implementation of kubernetes/enhancements#278 - running mount utilities in containers.

It updates `VolumeHost` interface:

*  `GetMounter()` now requires volume plugin name, as it is going to return different mounter to different volume plugings, because mount utilities for these plugins can be on different places.
* New `GetExec()` method that should volume plugins use to execute any utilities. This new `Exec` interface will execute them on proper place.
* `SafeFormatAndMount` is updated to the new `Exec` interface.

This is just a preparation, `GetExec` right now leads to simple `os.Exec` and mount utilities are executed on the same place as before. Also, the volume plugins will be updated in subsequent PRs (split into separate PRs, some plugins required lot of changes).

```release-note
NONE
```

@kubernetes/sig-storage-pr-reviews 
@rootfs @gnufied

justaugustus pushed a commit to justaugustus/features that referenced this issue Sep 3, 2018

Merge pull request kubernetes#278 from ymqytw/add_discriminators
Proposal: Add Tag Indicating To Replace Union Fields in Patch
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment