{"action":"created","issue":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/64953","repository_url":"https://api.github.com/repos/kubernetes/kubernetes","labels_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/64953/labels{/name}","comments_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/64953/comments","events_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/64953/events","html_url":"https://github.com/kubernetes/kubernetes/issues/64953","id":331031540,"node_id":"MDU6SXNzdWUzMzEwMzE1NDA=","number":64953,"title":"Mount code is too difficult to reuse from CSI plugins","user":{"login":"smarterclayton","id":1163175,"node_id":"MDQ6VXNlcjExNjMxNzU=","avatar_url":"https://avatars0.githubusercontent.com/u/1163175?v=4","gravatar_id":"","url":"https://api.github.com/users/smarterclayton","html_url":"https://github.com/smarterclayton","followers_url":"https://api.github.com/users/smarterclayton/followers","following_url":"https://api.github.com/users/smarterclayton/following{/other_user}","gists_url":"https://api.github.com/users/smarterclayton/gists{/gist_id}","starred_url":"https://api.github.com/users/smarterclayton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/smarterclayton/subscriptions","organizations_url":"https://api.github.com/users/smarterclayton/orgs","repos_url":"https://api.github.com/users/smarterclayton/repos","events_url":"https://api.github.com/users/smarterclayton/events{/privacy}","received_events_url":"https://api.github.com/users/smarterclayton/received_events","type":"User","site_admin":false},"labels":[{"id":105146071,"node_id":"MDU6TGFiZWwxMDUxNDYwNzE=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/kind/bug","name":"kind/bug","color":"e11d21","default":false},{"id":169428334,"node_id":"MDU6TGFiZWwxNjk0MjgzMzQ=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/sig/storage","name":"sig/storage","color":"d2b48c","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2018-06-11T03:03:00Z","updated_at":"2018-06-11T05:35:02Z","closed_at":null,"author_association":"CONTRIBUTOR","body":"The mount code (`pkg/util/mount`) is reasonably well tested but brings in the entire Kubernetes source tree when CSI plugins have to depend on it.  With a few exceptions, most of the mount code could be refactored to be a minimal set of utilities that can be layered and make it easier to develop CSI plugins.  I noticed that quite a few CSI plugins take a dependency on k/k just to get that one package.\r\n\r\nSuggestions:\r\n\r\n1. Refactor and split `pkg/util/mount` into a minimal dependency library and move it out of k/k (perhaps into staging and have it published out)\r\n2. Have https://github.com/kubernetes-csi/drivers stop depending on k/k and start depending on that library\r\n3. Drop dependency on `k8s.io/apimachinery/pkg/util/sets` so the library is easily usable.\r\n\r\nIn general, there is a lot of boiler plate for CSI, and pkg/util/mount is a significant portion of reuse.\r\n\r\n@kubernetes/sig-storage-bugs "},"comment":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/comments/396127052","html_url":"https://github.com/kubernetes/kubernetes/issues/64953#issuecomment-396127052","issue_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/64953","id":396127052,"node_id":"MDEyOklzc3VlQ29tbWVudDM5NjEyNzA1Mg==","user":{"login":"wgliang","id":8739301,"node_id":"MDQ6VXNlcjg3MzkzMDE=","avatar_url":"https://avatars0.githubusercontent.com/u/8739301?v=4","gravatar_id":"","url":"https://api.github.com/users/wgliang","html_url":"https://github.com/wgliang","followers_url":"https://api.github.com/users/wgliang/followers","following_url":"https://api.github.com/users/wgliang/following{/other_user}","gists_url":"https://api.github.com/users/wgliang/gists{/gist_id}","starred_url":"https://api.github.com/users/wgliang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wgliang/subscriptions","organizations_url":"https://api.github.com/users/wgliang/orgs","repos_url":"https://api.github.com/users/wgliang/repos","events_url":"https://api.github.com/users/wgliang/events{/privacy}","received_events_url":"https://api.github.com/users/wgliang/received_events","type":"User","site_admin":false},"created_at":"2018-06-11T05:35:02Z","updated_at":"2018-06-11T05:35:02Z","author_association":"MEMBER","body":"/assign"}}
{"actor":{"display_login":"wgliang"}}