{"action":"created","issue":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/65100","repository_url":"https://api.github.com/repos/kubernetes/kubernetes","labels_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/65100/labels{/name}","comments_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/65100/comments","events_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/65100/events","html_url":"https://github.com/kubernetes/kubernetes/pull/65100","id":332407729,"node_id":"MDExOlB1bGxSZXF1ZXN0MTk0ODk3MTIy","number":65100,"title":"Minimizing need to delete provisioned volume","user":{"login":"sbezverk","id":16273360,"node_id":"MDQ6VXNlcjE2MjczMzYw","avatar_url":"https://avatars3.githubusercontent.com/u/16273360?v=4","gravatar_id":"","url":"https://api.github.com/users/sbezverk","html_url":"https://github.com/sbezverk","followers_url":"https://api.github.com/users/sbezverk/followers","following_url":"https://api.github.com/users/sbezverk/following{/other_user}","gists_url":"https://api.github.com/users/sbezverk/gists{/gist_id}","starred_url":"https://api.github.com/users/sbezverk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sbezverk/subscriptions","organizations_url":"https://api.github.com/users/sbezverk/orgs","repos_url":"https://api.github.com/users/sbezverk/repos","events_url":"https://api.github.com/users/sbezverk/events{/privacy}","received_events_url":"https://api.github.com/users/sbezverk/received_events","type":"User","site_admin":false},"labels":[{"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":349530249,"node_id":"MDU6TGFiZWwzNDk1MzAyNDk=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/release-note-none","name":"release-note-none","color":"c2e0c6","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":253450978,"node_id":"MDU6TGFiZWwyNTM0NTA5Nzg=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/size/L","name":"size/L","color":"ee9900","default":false}],"state":"open","locked":false,"assignee":{"login":"saad-ali","id":10052848,"node_id":"MDQ6VXNlcjEwMDUyODQ4","avatar_url":"https://avatars1.githubusercontent.com/u/10052848?v=4","gravatar_id":"","url":"https://api.github.com/users/saad-ali","html_url":"https://github.com/saad-ali","followers_url":"https://api.github.com/users/saad-ali/followers","following_url":"https://api.github.com/users/saad-ali/following{/other_user}","gists_url":"https://api.github.com/users/saad-ali/gists{/gist_id}","starred_url":"https://api.github.com/users/saad-ali/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/saad-ali/subscriptions","organizations_url":"https://api.github.com/users/saad-ali/orgs","repos_url":"https://api.github.com/users/saad-ali/repos","events_url":"https://api.github.com/users/saad-ali/events{/privacy}","received_events_url":"https://api.github.com/users/saad-ali/received_events","type":"User","site_admin":false},"assignees":[{"login":"saad-ali","id":10052848,"node_id":"MDQ6VXNlcjEwMDUyODQ4","avatar_url":"https://avatars1.githubusercontent.com/u/10052848?v=4","gravatar_id":"","url":"https://api.github.com/users/saad-ali","html_url":"https://github.com/saad-ali","followers_url":"https://api.github.com/users/saad-ali/followers","following_url":"https://api.github.com/users/saad-ali/following{/other_user}","gists_url":"https://api.github.com/users/saad-ali/gists{/gist_id}","starred_url":"https://api.github.com/users/saad-ali/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/saad-ali/subscriptions","organizations_url":"https://api.github.com/users/saad-ali/orgs","repos_url":"https://api.github.com/users/saad-ali/repos","events_url":"https://api.github.com/users/saad-ali/events{/privacy}","received_events_url":"https://api.github.com/users/saad-ali/received_events","type":"User","site_admin":false}],"milestone":null,"comments":17,"created_at":"2018-06-14T13:39:46Z","updated_at":"2018-06-20T10:56:50Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/65100","html_url":"https://github.com/kubernetes/kubernetes/pull/65100","diff_url":"https://github.com/kubernetes/kubernetes/pull/65100.diff","patch_url":"https://github.com/kubernetes/kubernetes/pull/65100.patch"},"body":"Current behaviour of PV controller, if by some reason PV object cannot be saved by API server is to delete just provisioned volume. It is not desired behaviour because provision/de-provision operations could be long for some storage backends. This PR changes this behaviour and proposes to store successfully provisioned volume information as a annotation in PVC object.  On PV object save failure, the controller will re-attempt to bind PVC to PV, but it will not need to provision a volume since it has already been done. It needs just to retrieve PV definition from PVC's annotation. On any error, PV controller will switch to old logic.\r\n\r\nSigned-off-by: Serguei Bezverkhi <sbezverk@cisco.com>\r\n\r\n\r\n```release-note\r\nNONE\r\n```\r\n"},"comment":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/comments/398709244","html_url":"https://github.com/kubernetes/kubernetes/pull/65100#issuecomment-398709244","issue_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/65100","id":398709244,"node_id":"MDEyOklzc3VlQ29tbWVudDM5ODcwOTI0NA==","user":{"login":"jsafrane","id":1745006,"node_id":"MDQ6VXNlcjE3NDUwMDY=","avatar_url":"https://avatars2.githubusercontent.com/u/1745006?v=4","gravatar_id":"","url":"https://api.github.com/users/jsafrane","html_url":"https://github.com/jsafrane","followers_url":"https://api.github.com/users/jsafrane/followers","following_url":"https://api.github.com/users/jsafrane/following{/other_user}","gists_url":"https://api.github.com/users/jsafrane/gists{/gist_id}","starred_url":"https://api.github.com/users/jsafrane/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jsafrane/subscriptions","organizations_url":"https://api.github.com/users/jsafrane/orgs","repos_url":"https://api.github.com/users/jsafrane/repos","events_url":"https://api.github.com/users/jsafrane/events{/privacy}","received_events_url":"https://api.github.com/users/jsafrane/received_events","type":"User","site_admin":false},"created_at":"2018-06-20T10:56:50Z","updated_at":"2018-06-20T10:56:50Z","author_association":"MEMBER","body":"> Then we're back to persisting local state prior to calling CreateVolume. The PV object seems the most coherent object to do that on.\r\n\r\nAnd we're back at API breakage. Until now, PVs were only fully provisioned volumes, ready for binding and scheduling. With PVs for not fully provisioned volumes we need to change at least PV controller (not to bind PVC until provisioning is complete), scheduler (to wait for the PV to be fully provisioned and get topology labels in case someone force-binds PVC) and kubelet (to do the same when pod is scheduled directly, e.g. by DaemonSet). There is unknown number of external components that may need this change too, and IMO this counts as API breakage."}}
{"actor":{"display_login":"jsafrane"}}