{"action":"created","issue":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/67562","repository_url":"https://api.github.com/repos/kubernetes/kubernetes","labels_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/67562/labels{/name}","comments_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/67562/comments","events_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/67562/events","html_url":"https://github.com/kubernetes/kubernetes/pull/67562","id":351827432,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA5MzE2MDc1","number":67562,"title":"Prevent resourceVersion updates for custom resources on no-op writes","user":{"login":"nikhita","id":16105680,"node_id":"MDQ6VXNlcjE2MTA1Njgw","avatar_url":"https://avatars1.githubusercontent.com/u/16105680?v=4","gravatar_id":"","url":"https://api.github.com/users/nikhita","html_url":"https://github.com/nikhita","followers_url":"https://api.github.com/users/nikhita/followers","following_url":"https://api.github.com/users/nikhita/following{/other_user}","gists_url":"https://api.github.com/users/nikhita/gists{/gist_id}","starred_url":"https://api.github.com/users/nikhita/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nikhita/subscriptions","organizations_url":"https://api.github.com/users/nikhita/orgs","repos_url":"https://api.github.com/users/nikhita/repos","events_url":"https://api.github.com/users/nikhita/events{/privacy}","received_events_url":"https://api.github.com/users/nikhita/received_events","type":"User","site_admin":false},"labels":[{"id":556590057,"node_id":"MDU6TGFiZWw1NTY1OTAwNTc=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/area/custom-resources","name":"area/custom-resources","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":105146071,"node_id":"MDU6TGFiZWwxMDUxNDYwNzE=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/kind/bug","name":"kind/bug","color":"e11d21","default":false},{"id":200149833,"node_id":"MDU6TGFiZWwyMDAxNDk4MzM=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/release-note","name":"release-note","color":"c2e0c6","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":253450934,"node_id":"MDU6TGFiZWwyNTM0NTA5MzQ=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/size/M","name":"size/M","color":"eebb00","default":false}],"state":"open","locked":false,"assignee":{"login":"sttts","id":730123,"node_id":"MDQ6VXNlcjczMDEyMw==","avatar_url":"https://avatars0.githubusercontent.com/u/730123?v=4","gravatar_id":"","url":"https://api.github.com/users/sttts","html_url":"https://github.com/sttts","followers_url":"https://api.github.com/users/sttts/followers","following_url":"https://api.github.com/users/sttts/following{/other_user}","gists_url":"https://api.github.com/users/sttts/gists{/gist_id}","starred_url":"https://api.github.com/users/sttts/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sttts/subscriptions","organizations_url":"https://api.github.com/users/sttts/orgs","repos_url":"https://api.github.com/users/sttts/repos","events_url":"https://api.github.com/users/sttts/events{/privacy}","received_events_url":"https://api.github.com/users/sttts/received_events","type":"User","site_admin":false},"assignees":[{"login":"sttts","id":730123,"node_id":"MDQ6VXNlcjczMDEyMw==","avatar_url":"https://avatars0.githubusercontent.com/u/730123?v=4","gravatar_id":"","url":"https://api.github.com/users/sttts","html_url":"https://github.com/sttts","followers_url":"https://api.github.com/users/sttts/followers","following_url":"https://api.github.com/users/sttts/following{/other_user}","gists_url":"https://api.github.com/users/sttts/gists{/gist_id}","starred_url":"https://api.github.com/users/sttts/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sttts/subscriptions","organizations_url":"https://api.github.com/users/sttts/orgs","repos_url":"https://api.github.com/users/sttts/repos","events_url":"https://api.github.com/users/sttts/events{/privacy}","received_events_url":"https://api.github.com/users/sttts/received_events","type":"User","site_admin":false},{"login":"liggitt","id":980082,"node_id":"MDQ6VXNlcjk4MDA4Mg==","avatar_url":"https://avatars0.githubusercontent.com/u/980082?v=4","gravatar_id":"","url":"https://api.github.com/users/liggitt","html_url":"https://github.com/liggitt","followers_url":"https://api.github.com/users/liggitt/followers","following_url":"https://api.github.com/users/liggitt/following{/other_user}","gists_url":"https://api.github.com/users/liggitt/gists{/gist_id}","starred_url":"https://api.github.com/users/liggitt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/liggitt/subscriptions","organizations_url":"https://api.github.com/users/liggitt/orgs","repos_url":"https://api.github.com/users/liggitt/repos","events_url":"https://api.github.com/users/liggitt/events{/privacy}","received_events_url":"https://api.github.com/users/liggitt/received_events","type":"User","site_admin":false}],"milestone":null,"comments":15,"created_at":"2018-08-18T15:09:39Z","updated_at":"2018-08-20T19:08:56Z","closed_at":null,"author_association":"MEMBER","pull_request":{"url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/67562","html_url":"https://github.com/kubernetes/kubernetes/pull/67562","diff_url":"https://github.com/kubernetes/kubernetes/pull/67562.diff","patch_url":"https://github.com/kubernetes/kubernetes/pull/67562.patch"},"body":"Fixes partly https://github.com/kubernetes/kubernetes/issues/67541\r\n\r\nFor ObjectMeta pruning, we round trip by marshalling and unmarshalling. If the ObjectMeta contained any strings with `\"\"` (or other fields with empty values)  _and_ the respective fields are `omitempty`, those fields will be lost in the round trip process.\r\n\r\nThis makes ObjectMeta after the no-op write different from the one before the write.\r\n\r\nResource version is incremented every time data is written to etcd. Writes to etcd short-circuit if the bytes being written are identical to the bytes already present.\r\n\r\nSo this ends up incrementing the `resourceVersion` even on no-op writes. This PR updates the unstructured ObjectMeta accessor implementations such that they produce an unstructured object that matches ObjectMeta omitempty semantics.\r\n\r\n/sig api-machinery\r\n/kind bug\r\n/area custom-resources\r\n/assign sttts liggitt \r\n\r\n**Release note**:\r\n<!--  Write your release note:\r\n1. Enter your extended release note in the below block. If the PR requires additional action from users switching to the new release, include the string \"action required\".\r\n2. If no release note is required, just write \"NONE\".\r\n-->\r\n```release-note\r\nPrevent `resourceVersion` updates for custom resources on no-op writes.\r\n```\r\n"},"comment":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/comments/414428691","html_url":"https://github.com/kubernetes/kubernetes/pull/67562#issuecomment-414428691","issue_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/67562","id":414428691,"node_id":"MDEyOklzc3VlQ29tbWVudDQxNDQyODY5MQ==","user":{"login":"nikhita","id":16105680,"node_id":"MDQ6VXNlcjE2MTA1Njgw","avatar_url":"https://avatars1.githubusercontent.com/u/16105680?v=4","gravatar_id":"","url":"https://api.github.com/users/nikhita","html_url":"https://github.com/nikhita","followers_url":"https://api.github.com/users/nikhita/followers","following_url":"https://api.github.com/users/nikhita/following{/other_user}","gists_url":"https://api.github.com/users/nikhita/gists{/gist_id}","starred_url":"https://api.github.com/users/nikhita/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nikhita/subscriptions","organizations_url":"https://api.github.com/users/nikhita/orgs","repos_url":"https://api.github.com/users/nikhita/repos","events_url":"https://api.github.com/users/nikhita/events{/privacy}","received_events_url":"https://api.github.com/users/nikhita/received_events","type":"User","site_admin":false},"created_at":"2018-08-20T19:08:56Z","updated_at":"2018-08-20T19:08:56Z","author_association":"MEMBER","body":"/retest"}}
{"actor":{"display_login":"nikhita"}}