{"action":"created","issue":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/66928","repository_url":"https://api.github.com/repos/kubernetes/kubernetes","labels_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/66928/labels{/name}","comments_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/66928/comments","events_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/66928/events","html_url":"https://github.com/kubernetes/kubernetes/pull/66928","id":347135145,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA1ODMwNzY5","number":66928,"title":"Ephemeral storage monitoring via filesystem quotas","user":{"login":"RobertKrawitz","id":31751681,"node_id":"MDQ6VXNlcjMxNzUxNjgx","avatar_url":"https://avatars3.githubusercontent.com/u/31751681?v=4","gravatar_id":"","url":"https://api.github.com/users/RobertKrawitz","html_url":"https://github.com/RobertKrawitz","followers_url":"https://api.github.com/users/RobertKrawitz/followers","following_url":"https://api.github.com/users/RobertKrawitz/following{/other_user}","gists_url":"https://api.github.com/users/RobertKrawitz/gists{/gist_id}","starred_url":"https://api.github.com/users/RobertKrawitz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RobertKrawitz/subscriptions","organizations_url":"https://api.github.com/users/RobertKrawitz/orgs","repos_url":"https://api.github.com/users/RobertKrawitz/repos","events_url":"https://api.github.com/users/RobertKrawitz/events{/privacy}","received_events_url":"https://api.github.com/users/RobertKrawitz/received_events","type":"User","site_admin":false},"labels":[{"id":136601536,"node_id":"MDU6TGFiZWwxMzY2MDE1MzY=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/area/apiserver","name":"area/apiserver","color":"0052cc","default":false},{"id":451459590,"node_id":"MDU6TGFiZWw0NTE0NTk1OTA=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/area/kubeadm","name":"area/kubeadm","color":"0052cc","default":false},{"id":138247961,"node_id":"MDU6TGFiZWwxMzgyNDc5NjE=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/area/kubectl","name":"area/kubectl","color":"0052cc","default":false},{"id":116719829,"node_id":"MDU6TGFiZWwxMTY3MTk4Mjk=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/area/kubelet","name":"area/kubelet","color":"0052cc","default":false},{"id":477397086,"node_id":"MDU6TGFiZWw0NzczOTcwODY=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/cncf-cla:%20yes","name":"cncf-cla: yes","color":"bfe5bf","default":false},{"id":680152113,"node_id":"MDU6TGFiZWw2ODAxNTIxMTM=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/do-not-merge/release-note-label-needed","name":"do-not-merge/release-note-label-needed","color":"e11d21","default":false},{"id":261005360,"node_id":"MDU6TGFiZWwyNjEwMDUzNjA=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/kind/api-change","name":"kind/api-change","color":"e11d21","default":false},{"id":173493835,"node_id":"MDU6TGFiZWwxNzM0OTM4MzU=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/sig/api-machinery","name":"sig/api-machinery","color":"d2b48c","default":false},{"id":404091735,"node_id":"MDU6TGFiZWw0MDQwOTE3MzU=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/sig/apps","name":"sig/apps","color":"d2b48c","default":false},{"id":450823910,"node_id":"MDU6TGFiZWw0NTA4MjM5MTA=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/sig/cli","name":"sig/cli","color":"d2b48c","default":false},{"id":958178286,"node_id":"MDU6TGFiZWw5NTgxNzgyODY=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/sig/cloud-provider","name":"sig/cloud-provider","color":"d2b48c","default":false},{"id":173494222,"node_id":"MDU6TGFiZWwxNzM0OTQyMjI=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/sig/cluster-lifecycle","name":"sig/cluster-lifecycle","color":"d2b48c","default":false},{"id":173493665,"node_id":"MDU6TGFiZWwxNzM0OTM2NjU=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/sig/node","name":"sig/node","color":"d2b48c","default":false},{"id":614023989,"node_id":"MDU6TGFiZWw2MTQwMjM5ODk=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/sig/release","name":"sig/release","color":"d2b48c","default":false},{"id":125550211,"node_id":"MDU6TGFiZWwxMjU1NTAyMTE=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/sig/scheduling","name":"sig/scheduling","color":"d2b48c","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},{"id":253451093,"node_id":"MDU6TGFiZWwyNTM0NTEwOTM=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/size/XXL","name":"size/XXL","color":"ee0000","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":19,"created_at":"2018-08-02T19:00:40Z","updated_at":"2018-12-10T19:00:38Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/66928","html_url":"https://github.com/kubernetes/kubernetes/pull/66928","diff_url":"https://github.com/kubernetes/kubernetes/pull/66928.diff","patch_url":"https://github.com/kubernetes/kubernetes/pull/66928.patch"},"body":"This is a work in progress for using quotas to manage ephemeral storage.  This is purely experimental at this point and is not production ready.\r\n\r\nTodo (that I know of so far!): \r\n\r\n1. Need to write tests\r\n2. Only handles emptydir volumes at this point (logdir and writable layer have additional issues, including interaction with container runtime and that that interaction is different depending upon _which_ container runtime is in use).  _This may be done separately_\r\n3. This is presently limited to XFS _and ext4fs_.\r\n4. This applies a separate quota to each emptydir volume, potentially allowing N * quota use before the eviction manager catches up.\r\n5. Need to improve detection of available project IDs and come up with a method for specifying them.  _Partially addressed, by inspecting /etc/projects and /etc/projid._"},"comment":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/comments/445931368","html_url":"https://github.com/kubernetes/kubernetes/pull/66928#issuecomment-445931368","issue_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/66928","id":445931368,"node_id":"MDEyOklzc3VlQ29tbWVudDQ0NTkzMTM2OA==","user":{"login":"dashpole","id":3262098,"node_id":"MDQ6VXNlcjMyNjIwOTg=","avatar_url":"https://avatars1.githubusercontent.com/u/3262098?v=4","gravatar_id":"","url":"https://api.github.com/users/dashpole","html_url":"https://github.com/dashpole","followers_url":"https://api.github.com/users/dashpole/followers","following_url":"https://api.github.com/users/dashpole/following{/other_user}","gists_url":"https://api.github.com/users/dashpole/gists{/gist_id}","starred_url":"https://api.github.com/users/dashpole/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dashpole/subscriptions","organizations_url":"https://api.github.com/users/dashpole/orgs","repos_url":"https://api.github.com/users/dashpole/repos","events_url":"https://api.github.com/users/dashpole/events{/privacy}","received_events_url":"https://api.github.com/users/dashpole/received_events","type":"User","site_admin":false},"created_at":"2018-12-10T19:00:38Z","updated_at":"2018-12-10T19:00:38Z","author_association":"CONTRIBUTOR","body":"Ideally, the images should already be set up such that they can be used with the quota of their type.  For example, the COS image used for testing this will have a compatible ext4 filesystem mounted where the kubelet runs before the test starts.\r\n\r\nThe test should just validate that the conditions are correct (e.g. xfs_quota is installed, filesystem is correctly configured, and kernel supports quotas for that filesystem), and skip if that isn't the case."}}
{"actor":{"display_login":"dashpole"}}