{"action":"created","issue":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/66680","repository_url":"https://api.github.com/repos/kubernetes/kubernetes","labels_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/66680/labels{/name}","comments_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/66680/comments","events_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/66680/events","html_url":"https://github.com/kubernetes/kubernetes/issues/66680","id":344882536,"node_id":"MDU6SXNzdWUzNDQ4ODI1MzY=","number":66680,"title":"[Umbrella Issue] Core admission controller clientset/informer refactor internal->external","user":{"login":"yue9944882","id":12049380,"node_id":"MDQ6VXNlcjEyMDQ5Mzgw","avatar_url":"https://avatars1.githubusercontent.com/u/12049380?v=4","gravatar_id":"","url":"https://api.github.com/users/yue9944882","html_url":"https://github.com/yue9944882","followers_url":"https://api.github.com/users/yue9944882/followers","following_url":"https://api.github.com/users/yue9944882/following{/other_user}","gists_url":"https://api.github.com/users/yue9944882/gists{/gist_id}","starred_url":"https://api.github.com/users/yue9944882/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yue9944882/subscriptions","organizations_url":"https://api.github.com/users/yue9944882/orgs","repos_url":"https://api.github.com/users/yue9944882/repos","events_url":"https://api.github.com/users/yue9944882/events{/privacy}","received_events_url":"https://api.github.com/users/yue9944882/received_events","type":"User","site_admin":false},"labels":[{"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}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":5,"created_at":"2018-07-26T15:01:24Z","updated_at":"2018-08-09T03:30:27Z","closed_at":null,"author_association":"MEMBER","body":"Leave the discussion open here :) \r\n\r\nWe want to use external clientset / informers inside admission controllers instead of the internals. With the help of this, the admission check would be done by using external types as auxiliary types for \r\n admitting internal types in the admission check. Basically the refactor of this part would be following the \"defacto\" that:\r\n\r\n- if we are consuming some object => use external types\r\n- if we are serving/handling some object => use internal types\r\n\r\nSo far we are already on the way of do the same refactoring for `kubectl`. Though we are not gonna apply the refactor to the admission controllers except for `Initialization`,`NamespaceLifeCycle`,`*Webhook`, etc. which are already refactored. The change for core admission controllers might still be necessary in the future. \r\n\r\nLiterally, I'm a fan of the idea that refactoring throughout \"internal->external\" so that the lumping codes in this repo could be decoupled into more extensible parts. 😃\r\n\r\n/cc @deads2k @sttts @soltysh \r\n/cc @adohe @dixudx\r\n\r\n\r\n- [x] `NodeRestriction` (node) externalization #67116 \r\n- [ ] `DenyEscalatingExec` (exec) externalization\r\n- [ ] `OwnerReferencesPermissionEnforcement` (gc) externalization\r\n- [ ] `LimitRanger` externalization\r\n- [ ] `NamespaceAutoProvision/NamespaceExists` externalization\r\n- [ ] `PodNodeSelector` externalization\r\n- [ ] `PodPreset` externalization\r\n- [ ] `PodTolerationRestriction` externalization\r\n- [ ] `Priority` externalization\r\n- [ ] `ResourceQuota` externalization\r\n- [ ] `PodSecurityPolicy` externalization\r\n- [ ] `ServiceAccount` externalization\r\n- [ ] `DefaultStorageClass/StorageObjectInUseProtection` externalization"},"comment":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/comments/411625356","html_url":"https://github.com/kubernetes/kubernetes/issues/66680#issuecomment-411625356","issue_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/66680","id":411625356,"node_id":"MDEyOklzc3VlQ29tbWVudDQxMTYyNTM1Ng==","user":{"login":"yue9944882","id":12049380,"node_id":"MDQ6VXNlcjEyMDQ5Mzgw","avatar_url":"https://avatars1.githubusercontent.com/u/12049380?v=4","gravatar_id":"","url":"https://api.github.com/users/yue9944882","html_url":"https://github.com/yue9944882","followers_url":"https://api.github.com/users/yue9944882/followers","following_url":"https://api.github.com/users/yue9944882/following{/other_user}","gists_url":"https://api.github.com/users/yue9944882/gists{/gist_id}","starred_url":"https://api.github.com/users/yue9944882/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yue9944882/subscriptions","organizations_url":"https://api.github.com/users/yue9944882/orgs","repos_url":"https://api.github.com/users/yue9944882/repos","events_url":"https://api.github.com/users/yue9944882/events{/privacy}","received_events_url":"https://api.github.com/users/yue9944882/received_events","type":"User","site_admin":false},"created_at":"2018-08-09T03:30:27Z","updated_at":"2018-08-09T03:30:27Z","author_association":"MEMBER","body":"/assign yue9944882 dixudx adohe"}}
{"actor":{"display_login":"yue9944882"}}