{"action":"created","issue":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/20551","repository_url":"https://api.github.com/repos/kubernetes/kubernetes","labels_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/20551/labels{/name}","comments_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/20551/comments","events_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/20551/events","html_url":"https://github.com/kubernetes/kubernetes/pull/20551","id":130948101,"number":20551,"title":"WIP: move job to batch/v1","user":{"login":"erictune","id":8105590,"avatar_url":"https://avatars.githubusercontent.com/u/8105590?v=3","gravatar_id":"","url":"https://api.github.com/users/erictune","html_url":"https://github.com/erictune","followers_url":"https://api.github.com/users/erictune/followers","following_url":"https://api.github.com/users/erictune/following{/other_user}","gists_url":"https://api.github.com/users/erictune/gists{/gist_id}","starred_url":"https://api.github.com/users/erictune/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/erictune/subscriptions","organizations_url":"https://api.github.com/users/erictune/orgs","repos_url":"https://api.github.com/users/erictune/repos","events_url":"https://api.github.com/users/erictune/events{/privacy}","received_events_url":"https://api.github.com/users/erictune/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/kind/new-api","name":"kind/new-api","color":"c7def8"},{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/needs-rebase","name":"needs-rebase","color":"BDBDBD"},{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/size/XXL","name":"size/XXL","color":"ee0000"}],"state":"open","locked":false,"assignee":{"login":"lavalamp","id":647318,"avatar_url":"https://avatars.githubusercontent.com/u/647318?v=3","gravatar_id":"","url":"https://api.github.com/users/lavalamp","html_url":"https://github.com/lavalamp","followers_url":"https://api.github.com/users/lavalamp/followers","following_url":"https://api.github.com/users/lavalamp/following{/other_user}","gists_url":"https://api.github.com/users/lavalamp/gists{/gist_id}","starred_url":"https://api.github.com/users/lavalamp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lavalamp/subscriptions","organizations_url":"https://api.github.com/users/lavalamp/orgs","repos_url":"https://api.github.com/users/lavalamp/repos","events_url":"https://api.github.com/users/lavalamp/events{/privacy}","received_events_url":"https://api.github.com/users/lavalamp/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/kubernetes/kubernetes/milestones/15","html_url":"https://github.com/kubernetes/kubernetes/milestones/v1.2","labels_url":"https://api.github.com/repos/kubernetes/kubernetes/milestones/15/labels","id":1278499,"number":15,"title":"v1.2","description":"https://github.com/kubernetes/kubernetes/wiki/Release-1.2","creator":{"login":"bgrant0607","id":7725777,"avatar_url":"https://avatars.githubusercontent.com/u/7725777?v=3","gravatar_id":"","url":"https://api.github.com/users/bgrant0607","html_url":"https://github.com/bgrant0607","followers_url":"https://api.github.com/users/bgrant0607/followers","following_url":"https://api.github.com/users/bgrant0607/following{/other_user}","gists_url":"https://api.github.com/users/bgrant0607/gists{/gist_id}","starred_url":"https://api.github.com/users/bgrant0607/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bgrant0607/subscriptions","organizations_url":"https://api.github.com/users/bgrant0607/orgs","repos_url":"https://api.github.com/users/bgrant0607/repos","events_url":"https://api.github.com/users/bgrant0607/events{/privacy}","received_events_url":"https://api.github.com/users/bgrant0607/received_events","type":"User","site_admin":false},"open_issues":145,"closed_issues":78,"state":"open","created_at":"2015-08-29T03:54:16Z","updated_at":"2016-02-04T19:04:19Z","due_on":"2016-01-22T08:00:00Z","closed_at":null},"comments":20,"created_at":"2016-02-03T08:15:30Z","updated_at":"2016-02-04T19:18:20Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/20551","html_url":"https://github.com/kubernetes/kubernetes/pull/20551","diff_url":"https://github.com/kubernetes/kubernetes/pull/20551.diff","patch_url":"https://github.com/kubernetes/kubernetes/pull/20551.patch"},"body":"I am trying to move job to batch/v1.\r\n\r\nMy goals are:\r\n\r\n1. keep supporting resource path like `/apis/extensions/v1beta1/.../jobs`\r\n2. new resource path like `/apis/batch/v1/.../jobs`\r\n3. both `/apis/extensions/v1/.../jobs/foo` and `/apis/batch/v1/.../jobs/foo` map to same etcd storage path, allowing easy upgrade and a single controller for both resources.\r\n4. There will be different validation and defaulting for the new path.\r\n5. Eventually, the old path will be deprecated.\r\n\r\nBecause of goal 3, there will only be 1 internal type for Job.\r\nIt can't live in two places.  So, I am trying to keep it in `pkg/apis/extensions` for now.\r\n\r\nMy overall plan is:\r\n\r\n1. define new serialized representation in `pkg/apis/batch/v1` and install it.  Not exposed by default yet.\r\n2. make changes to `pkg/apis/batch/v1` type and defaulting and validation.\r\n3. expose it by default.  Generate clients.\r\n4. Change controller and kubectl to use new path.\r\n\r\nI am working on step 1 right now, and getting stuck.\r\n\r\nI am stuck.\r\nI have defined the new serializable type in a new directory for the new group.\r\nI now need to generate deep copies and conversions.  I need to install the new serializeable type.\r\nI am not sure if I should have  new `pkg/apis/batch/install/install.go` for it, or edit `pkg/apis/extensions/install/install.go` to include a second API group and additional serializable version.\r\nAdvice wanted.\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/comments/180009838","html_url":"https://github.com/kubernetes/kubernetes/pull/20551#issuecomment-180009838","issue_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/20551","id":180009838,"user":{"login":"caesarxuchao","id":2823529,"avatar_url":"https://avatars.githubusercontent.com/u/2823529?v=3","gravatar_id":"","url":"https://api.github.com/users/caesarxuchao","html_url":"https://github.com/caesarxuchao","followers_url":"https://api.github.com/users/caesarxuchao/followers","following_url":"https://api.github.com/users/caesarxuchao/following{/other_user}","gists_url":"https://api.github.com/users/caesarxuchao/gists{/gist_id}","starred_url":"https://api.github.com/users/caesarxuchao/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/caesarxuchao/subscriptions","organizations_url":"https://api.github.com/users/caesarxuchao/orgs","repos_url":"https://api.github.com/users/caesarxuchao/repos","events_url":"https://api.github.com/users/caesarxuchao/events{/privacy}","received_events_url":"https://api.github.com/users/caesarxuchao/received_events","type":"User","site_admin":false},"created_at":"2016-02-04T19:18:20Z","updated_at":"2016-02-04T19:18:20Z","body":"The test failure is because you miss the fuzzer:\r\nhttps://github.com/kubernetes/kubernetes/blob/master/pkg/api/testing/fuzzer.go#L159"}}