{"action":"created","issue":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/22774","repository_url":"https://api.github.com/repos/kubernetes/kubernetes","labels_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/22774/labels{/name}","comments_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/22774/comments","events_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/22774/events","html_url":"https://github.com/kubernetes/kubernetes/pull/22774","id":139822308,"number":22774,"title":"API definition of DisruptionBudget","user":{"login":"mqliang","id":12423751,"avatar_url":"https://avatars.githubusercontent.com/u/12423751?v=3","gravatar_id":"","url":"https://api.github.com/users/mqliang","html_url":"https://github.com/mqliang","followers_url":"https://api.github.com/users/mqliang/followers","following_url":"https://api.github.com/users/mqliang/following{/other_user}","gists_url":"https://api.github.com/users/mqliang/gists{/gist_id}","starred_url":"https://api.github.com/users/mqliang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mqliang/subscriptions","organizations_url":"https://api.github.com/users/mqliang/orgs","repos_url":"https://api.github.com/users/mqliang/repos","events_url":"https://api.github.com/users/mqliang/events{/privacy}","received_events_url":"https://api.github.com/users/mqliang/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/cla:%20yes","name":"cla: yes","color":"bfe5bf"},{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/kind/api-change","name":"kind/api-change","color":"c7def8"},{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/release-note-label-needed","name":"release-note-label-needed","color":"db5a64"},{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/size/M","name":"size/M","color":"eebb00"}],"state":"open","locked":false,"assignee":{"login":"mml","id":3115,"avatar_url":"https://avatars.githubusercontent.com/u/3115?v=3","gravatar_id":"","url":"https://api.github.com/users/mml","html_url":"https://github.com/mml","followers_url":"https://api.github.com/users/mml/followers","following_url":"https://api.github.com/users/mml/following{/other_user}","gists_url":"https://api.github.com/users/mml/gists{/gist_id}","starred_url":"https://api.github.com/users/mml/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mml/subscriptions","organizations_url":"https://api.github.com/users/mml/orgs","repos_url":"https://api.github.com/users/mml/repos","events_url":"https://api.github.com/users/mml/events{/privacy}","received_events_url":"https://api.github.com/users/mml/received_events","type":"User","site_admin":false},"milestone":null,"comments":33,"created_at":"2016-03-10T08:38:41Z","updated_at":"2016-04-14T22:32:52Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/22774","html_url":"https://github.com/kubernetes/kubernetes/pull/22774","diff_url":"https://github.com/kubernetes/kubernetes/pull/22774.diff","patch_url":"https://github.com/kubernetes/kubernetes/pull/22774.patch"},"body":"Add API definition of DisruptionBudget so that it would not block the implementation of rescheduler/preemption/drain feature.\r\n\r\nJust send for reviewing. If this definition looks good, I will update the auto generation files. \r\n\r\n@HaiyangDING @jiangyaoguo @davidopp @mml \r\n"},"comment":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/comments/210188069","html_url":"https://github.com/kubernetes/kubernetes/pull/22774#issuecomment-210188069","issue_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/22774","id":210188069,"user":{"login":"mml","id":3115,"avatar_url":"https://avatars.githubusercontent.com/u/3115?v=3","gravatar_id":"","url":"https://api.github.com/users/mml","html_url":"https://github.com/mml","followers_url":"https://api.github.com/users/mml/followers","following_url":"https://api.github.com/users/mml/following{/other_user}","gists_url":"https://api.github.com/users/mml/gists{/gist_id}","starred_url":"https://api.github.com/users/mml/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mml/subscriptions","organizations_url":"https://api.github.com/users/mml/orgs","repos_url":"https://api.github.com/users/mml/repos","events_url":"https://api.github.com/users/mml/events{/privacy}","received_events_url":"https://api.github.com/users/mml/received_events","type":"User","site_admin":false},"created_at":"2016-04-14T22:32:52Z","updated_at":"2016-04-14T22:32:52Z","body":"> One problem with performing this mapping on a per-pod basis is how to GC unneeded DisruptionBudget objects.\r\n\r\nThe same loop that evaluates the formula could presumably also identify unneeded DBs.  It's already comparing the desired set of DBs with the actual set.  With a little hysteresis added, it can the delete the unneeded ones.  This amounts to another GC mechanism, but it's tightly integrated with the system generating the objects in the first place."}}