{"action":"created","comment":{"url":"https://api.github.com/repos/openshift/openshift-docs/pulls/comments/175091900","pull_request_review_id":104568049,"id":175091900,"diff_hunk":"@@ -0,0 +1,79 @@\n+[[expanding_persistent_volumes]]\n+= Expanding Persistent Volumes\n+{product-author}\n+{product-version}\n+:data-uri:\n+:icons:\n+:experimental:\n+:toc: macro\n+:toc-title:\n+\n+toc::[]\n+\n+[[overview]]\n+== Overview\n+\n+You can increase the size of the persistent volumes (PVs) that your pods are using. To do this, you can update the persistent volume claim (PVC) to request a new size. The  controller then applies the change to the PV, which is bound to the PVC.\n+\n+For volume types that require both file system expansion and a volume plugin-based modification, growing PVs is a two-step process. For volume types that only require a volume plugin-based API call, growing PVs is a one-step process.\n+\n+A new controller called `volume_expand_controller` listens for PVC size expansion requests and takes action as needed. The new controller does the following:\n+\n+*  Watches for PVC update requests and adds the PVC to the controller's work queue if an increase in volume size was requested. Once the PVC is added to the controller's work queue, `- pvc.Status.Conditions` is updated to `ResizeStarted: True`.\n+* For unbound or pending PVCs,` - resize ` triggers no action in `volume_expand_controller`.\n+* If `pv.Spec.Capacity already` is greater or equal than the requested size, then no action is performed by the controller.\n+* A separate goroutine reads the work queue and performs a corresponding volume resize operation. If there is a resize operation in progress for the same volume, then the resize request is pending and retries once the previous resize request is complete.\n+* Controller resizing is level-based rather than edge-based. If there is more than one pending resize request for the same PVC, then new resize requests for the same PVC replace older pending requests.\n+* Resize is performed via the volume plugin interface, which is executed inside a goroutine spawned by `operation_exectutor`.\n+* A new plugin interface called `volume.Expander` is added to the volume plugin interface. The expander interface defines if the volume requires a file system resize.\n+* The controller calls to expand the PVC.\n+* Once the volume expansion is successful, the volume is marked as expanded and the new size is reflected or updated in `pv.spec.capacity`. Any errors are reported as events on the PVC object.\n+* If the resize operation fails, then `pvc.Status.Conditions` is updated with `ResizeFailed: True`. The corresponding error is also added to the condition field.\n+* Depending on the volume type:\n+** If the volume is of a type that does not require a file system resize, then `pvc.status.capacity` is immediately updated to reflect the new size. This would conclude the volume expand operation, and  `pvc.Status.Conditions` is updated to `Ready: True`.\n+** If the volume is of a type that requires a file system resize, then a file system resize is performed on kubelet. \n+* If the volume plugin is of type that cannot do resizing of attached volumes (such as Cinder), then `ExpandVolumeDevice` can return an error by checking for volume status with its own API (such as by making an Openstack Cinder API call in this case). The controller continues trying to resize the volume until it is successful.","path":"dev_guide/expanding_persistent_volumes.adoc","position":35,"original_position":35,"commit_id":"f2abae9c828ef691fbe2aaddcec1b684d9d83008","original_commit_id":"f2abae9c828ef691fbe2aaddcec1b684d9d83008","user":{"login":"ahardin-rh","id":16197393,"avatar_url":"https://avatars1.githubusercontent.com/u/16197393?v=4","gravatar_id":"","url":"https://api.github.com/users/ahardin-rh","html_url":"https://github.com/ahardin-rh","followers_url":"https://api.github.com/users/ahardin-rh/followers","following_url":"https://api.github.com/users/ahardin-rh/following{/other_user}","gists_url":"https://api.github.com/users/ahardin-rh/gists{/gist_id}","starred_url":"https://api.github.com/users/ahardin-rh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ahardin-rh/subscriptions","organizations_url":"https://api.github.com/users/ahardin-rh/orgs","repos_url":"https://api.github.com/users/ahardin-rh/repos","events_url":"https://api.github.com/users/ahardin-rh/events{/privacy}","received_events_url":"https://api.github.com/users/ahardin-rh/received_events","type":"User","site_admin":false},"body":"plug-in","created_at":"2018-03-16T13:41:09Z","updated_at":"2018-03-16T13:41:09Z","html_url":"https://github.com/openshift/openshift-docs/pull/8124#discussion_r175091900","pull_request_url":"https://api.github.com/repos/openshift/openshift-docs/pulls/8124","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/openshift/openshift-docs/pulls/comments/175091900"},"html":{"href":"https://github.com/openshift/openshift-docs/pull/8124#discussion_r175091900"},"pull_request":{"href":"https://api.github.com/repos/openshift/openshift-docs/pulls/8124"}}},"pull_request":{"url":"https://api.github.com/repos/openshift/openshift-docs/pulls/8124","id":175003142,"html_url":"https://github.com/openshift/openshift-docs/pull/8124","diff_url":"https://github.com/openshift/openshift-docs/pull/8124.diff","patch_url":"https://github.com/openshift/openshift-docs/pull/8124.patch","issue_url":"https://api.github.com/repos/openshift/openshift-docs/issues/8124","number":8124,"state":"open","locked":false,"title":"Add new topic for expanding PV size","user":{"login":"tmorriso-rh","id":30870881,"avatar_url":"https://avatars3.githubusercontent.com/u/30870881?v=4","gravatar_id":"","url":"https://api.github.com/users/tmorriso-rh","html_url":"https://github.com/tmorriso-rh","followers_url":"https://api.github.com/users/tmorriso-rh/followers","following_url":"https://api.github.com/users/tmorriso-rh/following{/other_user}","gists_url":"https://api.github.com/users/tmorriso-rh/gists{/gist_id}","starred_url":"https://api.github.com/users/tmorriso-rh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tmorriso-rh/subscriptions","organizations_url":"https://api.github.com/users/tmorriso-rh/orgs","repos_url":"https://api.github.com/users/tmorriso-rh/repos","events_url":"https://api.github.com/users/tmorriso-rh/events{/privacy}","received_events_url":"https://api.github.com/users/tmorriso-rh/received_events","type":"User","site_admin":false},"body":"@gnufied @qinpingli PTAL and update as needed. This content was pulled from https://github.com/kubernetes/community/pull/657 and https://kubernetes.io/docs/concepts/storage/persistent-volumes/#expanding-persistent-volumes-claims.\r\n\r\nTrello card: https://trello.com/c/e0Awnt9f/771-document-resize-perform-cloudprovider-resize-in-controller","created_at":"2018-03-14T15:59:01Z","updated_at":"2018-03-16T13:41:09Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ee6c6fb9ae3e9034c942f5c17ebb799dba3f0a4a","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":743752057,"url":"https://api.github.com/repos/openshift/openshift-docs/labels/Peer%20Review%20Needed","name":"Peer Review Needed","color":"0052cc","default":false},{"id":684637730,"url":"https://api.github.com/repos/openshift/openshift-docs/labels/branch/enterprise-3.9","name":"branch/enterprise-3.9","color":"fef2c0","default":false},{"id":751705746,"url":"https://api.github.com/repos/openshift/openshift-docs/labels/size/M","name":"size/M","color":"eebb00","default":false}],"milestone":{"url":"https://api.github.com/repos/openshift/openshift-docs/milestones/7","html_url":"https://github.com/openshift/openshift-docs/milestone/7","labels_url":"https://api.github.com/repos/openshift/openshift-docs/milestones/7/labels","id":1436371,"number":7,"title":"Next Release","description":"Content that can be cherrypicked to the noted branches (e.g., the branch/enterprise-3.1 or branch/enterprise-3.0 labels), which triggers new builds of the respective docs on the Customer Portal and docs.openshift.com. Aims for a weekly release cadence.","creator":{"login":"tpoitras","id":8109928,"avatar_url":"https://avatars2.githubusercontent.com/u/8109928?v=4","gravatar_id":"","url":"https://api.github.com/users/tpoitras","html_url":"https://github.com/tpoitras","followers_url":"https://api.github.com/users/tpoitras/followers","following_url":"https://api.github.com/users/tpoitras/following{/other_user}","gists_url":"https://api.github.com/users/tpoitras/gists{/gist_id}","starred_url":"https://api.github.com/users/tpoitras/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tpoitras/subscriptions","organizations_url":"https://api.github.com/users/tpoitras/orgs","repos_url":"https://api.github.com/users/tpoitras/repos","events_url":"https://api.github.com/users/tpoitras/events{/privacy}","received_events_url":"https://api.github.com/users/tpoitras/received_events","type":"User","site_admin":false},"open_issues":16,"closed_issues":43,"state":"open","created_at":"2015-12-01T00:42:06Z","updated_at":"2018-03-14T16:07:48Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/openshift/openshift-docs/pulls/8124/commits","review_comments_url":"https://api.github.com/repos/openshift/openshift-docs/pulls/8124/comments","review_comment_url":"https://api.github.com/repos/openshift/openshift-docs/pulls/comments{/number}","comments_url":"https://api.github.com/repos/openshift/openshift-docs/issues/8124/comments","statuses_url":"https://api.github.com/repos/openshift/openshift-docs/statuses/f2abae9c828ef691fbe2aaddcec1b684d9d83008","head":{"label":"tmorriso-rh:pv_resize","ref":"pv_resize","sha":"f2abae9c828ef691fbe2aaddcec1b684d9d83008","user":{"login":"tmorriso-rh","id":30870881,"avatar_url":"https://avatars3.githubusercontent.com/u/30870881?v=4","gravatar_id":"","url":"https://api.github.com/users/tmorriso-rh","html_url":"https://github.com/tmorriso-rh","followers_url":"https://api.github.com/users/tmorriso-rh/followers","following_url":"https://api.github.com/users/tmorriso-rh/following{/other_user}","gists_url":"https://api.github.com/users/tmorriso-rh/gists{/gist_id}","starred_url":"https://api.github.com/users/tmorriso-rh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tmorriso-rh/subscriptions","organizations_url":"https://api.github.com/users/tmorriso-rh/orgs","repos_url":"https://api.github.com/users/tmorriso-rh/repos","events_url":"https://api.github.com/users/tmorriso-rh/events{/privacy}","received_events_url":"https://api.github.com/users/tmorriso-rh/received_events","type":"User","site_admin":false},"repo":{"id":99941544,"name":"openshift-docs","full_name":"tmorriso-rh/openshift-docs","owner":{"login":"tmorriso-rh","id":30870881,"avatar_url":"https://avatars3.githubusercontent.com/u/30870881?v=4","gravatar_id":"","url":"https://api.github.com/users/tmorriso-rh","html_url":"https://github.com/tmorriso-rh","followers_url":"https://api.github.com/users/tmorriso-rh/followers","following_url":"https://api.github.com/users/tmorriso-rh/following{/other_user}","gists_url":"https://api.github.com/users/tmorriso-rh/gists{/gist_id}","starred_url":"https://api.github.com/users/tmorriso-rh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tmorriso-rh/subscriptions","organizations_url":"https://api.github.com/users/tmorriso-rh/orgs","repos_url":"https://api.github.com/users/tmorriso-rh/repos","events_url":"https://api.github.com/users/tmorriso-rh/events{/privacy}","received_events_url":"https://api.github.com/users/tmorriso-rh/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/tmorriso-rh/openshift-docs","description":"OpenShift Documentation","fork":true,"url":"https://api.github.com/repos/tmorriso-rh/openshift-docs","forks_url":"https://api.github.com/repos/tmorriso-rh/openshift-docs/forks","keys_url":"https://api.github.com/repos/tmorriso-rh/openshift-docs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tmorriso-rh/openshift-docs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tmorriso-rh/openshift-docs/teams","hooks_url":"https://api.github.com/repos/tmorriso-rh/openshift-docs/hooks","issue_events_url":"https://api.github.com/repos/tmorriso-rh/openshift-docs/issues/events{/number}","events_url":"https://api.github.com/repos/tmorriso-rh/openshift-docs/events","assignees_url":"https://api.github.com/repos/tmorriso-rh/openshift-docs/assignees{/user}","branches_url":"https://api.github.com/repos/tmorriso-rh/openshift-docs/branches{/branch}","tags_url":"https://api.github.com/repos/tmorriso-rh/openshift-docs/tags","blobs_url":"https://api.github.com/repos/tmorriso-rh/openshift-docs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tmorriso-rh/openshift-docs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tmorriso-rh/openshift-docs/git/refs{/sha}","trees_url":"https://api.github.com/repos/tmorriso-rh/openshift-docs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tmorriso-rh/openshift-docs/statuses/{sha}","languages_url":"https://api.github.com/repos/tmorriso-rh/openshift-docs/languages","stargazers_url":"https://api.github.com/repos/tmorriso-rh/openshift-docs/stargazers","contributors_url":"https://api.github.com/repos/tmorriso-rh/openshift-docs/contributors","subscribers_url":"https://api.github.com/repos/tmorriso-rh/openshift-docs/subscribers","subscription_url":"https://api.github.com/repos/tmorriso-rh/openshift-docs/subscription","commits_url":"https://api.github.com/repos/tmorriso-rh/openshift-docs/commits{/sha}","git_commits_url":"https://api.github.com/repos/tmorriso-rh/openshift-docs/git/commits{/sha}","comments_url":"https://api.github.com/repos/tmorriso-rh/openshift-docs/comments{/number}","issue_comment_url":"https://api.github.com/repos/tmorriso-rh/openshift-docs/issues/comments{/number}","contents_url":"https://api.github.com/repos/tmorriso-rh/openshift-docs/contents/{+path}","compare_url":"https://api.github.com/repos/tmorriso-rh/openshift-docs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tmorriso-rh/openshift-docs/merges","archive_url":"https://api.github.com/repos/tmorriso-rh/openshift-docs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tmorriso-rh/openshift-docs/downloads","issues_url":"https://api.github.com/repos/tmorriso-rh/openshift-docs/issues{/number}","pulls_url":"https://api.github.com/repos/tmorriso-rh/openshift-docs/pulls{/number}","milestones_url":"https://api.github.com/repos/tmorriso-rh/openshift-docs/milestones{/number}","notifications_url":"https://api.github.com/repos/tmorriso-rh/openshift-docs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tmorriso-rh/openshift-docs/labels{/name}","releases_url":"https://api.github.com/repos/tmorriso-rh/openshift-docs/releases{/id}","deployments_url":"https://api.github.com/repos/tmorriso-rh/openshift-docs/deployments","created_at":"2017-08-10T16:05:49Z","updated_at":"2018-03-14T15:45:54Z","pushed_at":"2018-03-14T15:57:19Z","git_url":"git://github.com/tmorriso-rh/openshift-docs.git","ssh_url":"git@github.com:tmorriso-rh/openshift-docs.git","clone_url":"https://github.com/tmorriso-rh/openshift-docs.git","svn_url":"https://github.com/tmorriso-rh/openshift-docs","homepage":"https://docs.openshift.org/latest/welcome/index.html","size":67073,"stargazers_count":0,"watchers_count":0,"language":"HTML","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"other","name":"Other","spdx_id":null,"url":null},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"openshift:master","ref":"master","sha":"2a50cee5cbfcc26d66819e36595fa67c97994bcb","user":{"login":"openshift","id":792337,"avatar_url":"https://avatars3.githubusercontent.com/u/792337?v=4","gravatar_id":"","url":"https://api.github.com/users/openshift","html_url":"https://github.com/openshift","followers_url":"https://api.github.com/users/openshift/followers","following_url":"https://api.github.com/users/openshift/following{/other_user}","gists_url":"https://api.github.com/users/openshift/gists{/gist_id}","starred_url":"https://api.github.com/users/openshift/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/openshift/subscriptions","organizations_url":"https://api.github.com/users/openshift/orgs","repos_url":"https://api.github.com/users/openshift/repos","events_url":"https://api.github.com/users/openshift/events{/privacy}","received_events_url":"https://api.github.com/users/openshift/received_events","type":"Organization","site_admin":false},"repo":{"id":21740844,"name":"openshift-docs","full_name":"openshift/openshift-docs","owner":{"login":"openshift","id":792337,"avatar_url":"https://avatars3.githubusercontent.com/u/792337?v=4","gravatar_id":"","url":"https://api.github.com/users/openshift","html_url":"https://github.com/openshift","followers_url":"https://api.github.com/users/openshift/followers","following_url":"https://api.github.com/users/openshift/following{/other_user}","gists_url":"https://api.github.com/users/openshift/gists{/gist_id}","starred_url":"https://api.github.com/users/openshift/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/openshift/subscriptions","organizations_url":"https://api.github.com/users/openshift/orgs","repos_url":"https://api.github.com/users/openshift/repos","events_url":"https://api.github.com/users/openshift/events{/privacy}","received_events_url":"https://api.github.com/users/openshift/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/openshift/openshift-docs","description":"OpenShift Documentation","fork":false,"url":"https://api.github.com/repos/openshift/openshift-docs","forks_url":"https://api.github.com/repos/openshift/openshift-docs/forks","keys_url":"https://api.github.com/repos/openshift/openshift-docs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/openshift/openshift-docs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/openshift/openshift-docs/teams","hooks_url":"https://api.github.com/repos/openshift/openshift-docs/hooks","issue_events_url":"https://api.github.com/repos/openshift/openshift-docs/issues/events{/number}","events_url":"https://api.github.com/repos/openshift/openshift-docs/events","assignees_url":"https://api.github.com/repos/openshift/openshift-docs/assignees{/user}","branches_url":"https://api.github.com/repos/openshift/openshift-docs/branches{/branch}","tags_url":"https://api.github.com/repos/openshift/openshift-docs/tags","blobs_url":"https://api.github.com/repos/openshift/openshift-docs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/openshift/openshift-docs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/openshift/openshift-docs/git/refs{/sha}","trees_url":"https://api.github.com/repos/openshift/openshift-docs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/openshift/openshift-docs/statuses/{sha}","languages_url":"https://api.github.com/repos/openshift/openshift-docs/languages","stargazers_url":"https://api.github.com/repos/openshift/openshift-docs/stargazers","contributors_url":"https://api.github.com/repos/openshift/openshift-docs/contributors","subscribers_url":"https://api.github.com/repos/openshift/openshift-docs/subscribers","subscription_url":"https://api.github.com/repos/openshift/openshift-docs/subscription","commits_url":"https://api.github.com/repos/openshift/openshift-docs/commits{/sha}","git_commits_url":"https://api.github.com/repos/openshift/openshift-docs/git/commits{/sha}","comments_url":"https://api.github.com/repos/openshift/openshift-docs/comments{/number}","issue_comment_url":"https://api.github.com/repos/openshift/openshift-docs/issues/comments{/number}","contents_url":"https://api.github.com/repos/openshift/openshift-docs/contents/{+path}","compare_url":"https://api.github.com/repos/openshift/openshift-docs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/openshift/openshift-docs/merges","archive_url":"https://api.github.com/repos/openshift/openshift-docs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/openshift/openshift-docs/downloads","issues_url":"https://api.github.com/repos/openshift/openshift-docs/issues{/number}","pulls_url":"https://api.github.com/repos/openshift/openshift-docs/pulls{/number}","milestones_url":"https://api.github.com/repos/openshift/openshift-docs/milestones{/number}","notifications_url":"https://api.github.com/repos/openshift/openshift-docs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/openshift/openshift-docs/labels{/name}","releases_url":"https://api.github.com/repos/openshift/openshift-docs/releases{/id}","deployments_url":"https://api.github.com/repos/openshift/openshift-docs/deployments","created_at":"2014-07-11T15:14:42Z","updated_at":"2018-03-16T13:21:09Z","pushed_at":"2018-03-16T13:26:56Z","git_url":"git://github.com/openshift/openshift-docs.git","ssh_url":"git@github.com:openshift/openshift-docs.git","clone_url":"https://github.com/openshift/openshift-docs.git","svn_url":"https://github.com/openshift/openshift-docs","homepage":"https://docs.openshift.org/latest/welcome/index.html","size":66352,"stargazers_count":149,"watchers_count":149,"language":"HTML","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":494,"mirror_url":null,"archived":false,"open_issues_count":268,"license":{"key":"other","name":"Other","spdx_id":null,"url":null},"forks":494,"open_issues":268,"watchers":149,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/openshift/openshift-docs/pulls/8124"},"html":{"href":"https://github.com/openshift/openshift-docs/pull/8124"},"issue":{"href":"https://api.github.com/repos/openshift/openshift-docs/issues/8124"},"comments":{"href":"https://api.github.com/repos/openshift/openshift-docs/issues/8124/comments"},"review_comments":{"href":"https://api.github.com/repos/openshift/openshift-docs/pulls/8124/comments"},"review_comment":{"href":"https://api.github.com/repos/openshift/openshift-docs/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/openshift/openshift-docs/pulls/8124/commits"},"statuses":{"href":"https://api.github.com/repos/openshift/openshift-docs/statuses/f2abae9c828ef691fbe2aaddcec1b684d9d83008"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"ahardin-rh"}}