{"action":"created","comment":{"url":"https://api.github.com/repos/openshift/openshift-docs/pulls/comments/51788137","id":51788137,"diff_hunk":"@@ -0,0 +1,160 @@\n+= Dynamically Provisioning Persistent Volumes\n+{product-author}\n+{product-version}\n+:data-uri:\n+:icons:\n+:experimental:\n+:toc: macro\n+:toc-title:\n+:prewrap!:\n+\n+toc::[]\n+\n+== Overview\n+You can provision your OpenShift cluster with storage dynamically when running\n+in a cloud environment. The Kubernetes\n+link:../../architecture/additional_concepts/storage.html[persistent volume]\n+framework allows administrators to provision a cluster with persistent storage\n+and gives users a way to request those resources without having any knowledge of\n+the underlying infrastructure.\n+\n+Many storage types are available for use as persistent volumes in OpenShift.\n+While all of them can be statically provisioned by an administrator, some types\n+of storage can be created dynamically using an API. These types of storage can\n+be provisioned in an OpenShift cluster using the new and experimental dynamic\n+storage feature.\n+\n+[IMPORTANT]\n+====\n+Dynamic provisioning is currently a Technology Preview feature, introduced in\n+OpenShift Enterprise 3.1.1. The feature is experimental and expected to change\n+in the future as it matures and feedback is received from users. New ways to\n+provision the cluster are planned and the means by which one accesses this\n+feature is going to change. Backwards compatibility is not guaranteed.\n+====\n+\n+[[dynamic-pvs-provisioner-plugins]]\n+== Available Provisioner Plug-ins\n+\n+Several OpenShift plug-ins have generic implementations for dynamic provisioning\n+that use a provider's API to create new storage resources. The following\n+provisioner plug-ins are currently available:\n+\n+[options=\"header\"]\n+|===\n+\n+|Storage Type |Provisioner Plug-in Name |Required Cloud Configuration\n+\n+|OpenStack Cinder\n+|`kubernetes.io/cinder`\n+|link:../../install_config/configuring_openstack.html[Configuring for OpenStack]\n+\n+|AWS Elastic Block Store (EBS)\n+|`kubernetes.io/aws-ebs`\n+|link:../../install_config/configuring_aws.html[Configuring for AWS]\n+\n+|GCE Persistent Disk (gcePD)\n+|`kubernetes.io/gce-pd`\n+|link:../../install_config/configuring_gce.html[Configuring for GCE]\n+|===\n+\n+[IMPORTANT]\n+====\n+For any chosen provisioner plug-ins, configuration for the relevant cloud\n+infrastructure must be set up as well, per *Required Cloud Configuration* in the\n+above table.\n+====\n+\n+Future provisioner plug-ins will include the many types of storage a single\n+provider offers. AWS, for example, has several types of EBS volumes to offer,\n+each with its own performance characteristics. They also have an NFS-like\n+storage option. More provisioner plug-ins will be implemented for the supported\n+storage types available in OpenShift.\n+\n+[[dynamic-pvs-configuring-storage-classes]]\n+== Configuring Storage Classes\n+\n+Cluster administrators can configure their clusters to use dynamic provisioning\n+for persistent volumes by defining _storage classes_ in the master configuration\n+file (the *_/etc/origin/master/master-config.yml_* file by default). A storage\n+class is a composite of the class name and the name of the provisioner plug-in,\n+separated by a slash:\n+\n+----\n+<storage_class_name>/<provisioner_plugin>\n+----\n+\n+For example, for a storage class named *foo* mapping to an EBS volume:\n+\n+====\n+----\n+foo/kubernetes.io/aws-ebs\n+----\n+====\n+\n+Storage classes are associated with various quality of service levels, and each\n+class should only be associated with one provisioner:\n+\n+.Configuring Storage Classes in the Master Configuration File\n+====\n+[source,yaml]\n+----\n+kubernetesMasterConfig:\n+  apiLevels:\n+  - v1beta3\n+  - v1\n+  apiServerArguments: null\n+  controllerArguments:\n+    \"storage-class\": <1>\n+      - \"foo/kubernetes.io/aws-ebs\"\n+      - \"bar/kubernetes.io/cinder\"\n+      - \"baz/kubernetes.io/gce-pd\"\n+----\n+<1> Add a `*\"storage-class\"*` section to\n+`*kubernetesMasterConfig.controllerArguments*` and list the desired storage\n+classes.\n+====\n+\n+Restart the master service for the changes to take effect:\n+\n+----\n+# systemctl restart atomic-openshift-master\n+----","path":"install_config/persistent_storage/dynamically_provisioning_pvs.adoc","position":122,"original_position":122,"commit_id":"ad52fe2d97f60b42e07cbee144edaee62a48c748","original_commit_id":"ad52fe2d97f60b42e07cbee144edaee62a48c748","user":{"login":"markturansky","id":8001968,"avatar_url":"https://avatars.githubusercontent.com/u/8001968?v=3","gravatar_id":"","url":"https://api.github.com/users/markturansky","html_url":"https://github.com/markturansky","followers_url":"https://api.github.com/users/markturansky/followers","following_url":"https://api.github.com/users/markturansky/following{/other_user}","gists_url":"https://api.github.com/users/markturansky/gists{/gist_id}","starred_url":"https://api.github.com/users/markturansky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/markturansky/subscriptions","organizations_url":"https://api.github.com/users/markturansky/orgs","repos_url":"https://api.github.com/users/markturansky/repos","events_url":"https://api.github.com/users/markturansky/events{/privacy}","received_events_url":"https://api.github.com/users/markturansky/received_events","type":"User","site_admin":false},"body":"All of the above can go, per my previous comment.","created_at":"2016-02-03T21:15:08Z","updated_at":"2016-02-03T21:15:08Z","html_url":"https://github.com/openshift/openshift-docs/pull/1538#discussion_r51788137","pull_request_url":"https://api.github.com/repos/openshift/openshift-docs/pulls/1538","_links":{"self":{"href":"https://api.github.com/repos/openshift/openshift-docs/pulls/comments/51788137"},"html":{"href":"https://github.com/openshift/openshift-docs/pull/1538#discussion_r51788137"},"pull_request":{"href":"https://api.github.com/repos/openshift/openshift-docs/pulls/1538"}}},"pull_request":{"url":"https://api.github.com/repos/openshift/openshift-docs/pulls/1538","id":58192095,"html_url":"https://github.com/openshift/openshift-docs/pull/1538","diff_url":"https://github.com/openshift/openshift-docs/pull/1538.diff","patch_url":"https://github.com/openshift/openshift-docs/pull/1538.patch","issue_url":"https://api.github.com/repos/openshift/openshift-docs/issues/1538","number":1538,"state":"open","locked":false,"title":"Follow-up to OSE 3.1.1 release","user":{"login":"adellape","id":3442316,"avatar_url":"https://avatars.githubusercontent.com/u/3442316?v=3","gravatar_id":"","url":"https://api.github.com/users/adellape","html_url":"https://github.com/adellape","followers_url":"https://api.github.com/users/adellape/followers","following_url":"https://api.github.com/users/adellape/following{/other_user}","gists_url":"https://api.github.com/users/adellape/gists{/gist_id}","starred_url":"https://api.github.com/users/adellape/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adellape/subscriptions","organizations_url":"https://api.github.com/users/adellape/orgs","repos_url":"https://api.github.com/users/adellape/repos","events_url":"https://api.github.com/users/adellape/events{/privacy}","received_events_url":"https://api.github.com/users/adellape/received_events","type":"User","site_admin":false},"body":"- Minor clean up of release note content for clarity/style\r\n- New Dynamic Provisioning topic (tech preview, builds on https://github.com/openshift/openshift-docs/pull/1102)","created_at":"2016-02-03T20:01:56Z","updated_at":"2016-02-03T21:15:08Z","closed_at":null,"merged_at":null,"merge_commit_sha":"81666b8f4e3f9cf6064a1807a673b5ec9cfb0529","assignee":null,"milestone":{"url":"https://api.github.com/repos/openshift/openshift-docs/milestones/7","html_url":"https://github.com/openshift/openshift-docs/milestones/Next%20Release","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://avatars.githubusercontent.com/u/8109928?v=3","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":11,"closed_issues":7,"state":"open","created_at":"2015-12-01T00:42:06Z","updated_at":"2016-02-03T20:01:56Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/openshift/openshift-docs/pulls/1538/commits","review_comments_url":"https://api.github.com/repos/openshift/openshift-docs/pulls/1538/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/1538/comments","statuses_url":"https://api.github.com/repos/openshift/openshift-docs/statuses/ad52fe2d97f60b42e07cbee144edaee62a48c748","head":{"label":"adellape:ose311_followup","ref":"ose311_followup","sha":"ad52fe2d97f60b42e07cbee144edaee62a48c748","user":{"login":"adellape","id":3442316,"avatar_url":"https://avatars.githubusercontent.com/u/3442316?v=3","gravatar_id":"","url":"https://api.github.com/users/adellape","html_url":"https://github.com/adellape","followers_url":"https://api.github.com/users/adellape/followers","following_url":"https://api.github.com/users/adellape/following{/other_user}","gists_url":"https://api.github.com/users/adellape/gists{/gist_id}","starred_url":"https://api.github.com/users/adellape/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adellape/subscriptions","organizations_url":"https://api.github.com/users/adellape/orgs","repos_url":"https://api.github.com/users/adellape/repos","events_url":"https://api.github.com/users/adellape/events{/privacy}","received_events_url":"https://api.github.com/users/adellape/received_events","type":"User","site_admin":false},"repo":{"id":29119125,"name":"openshift-docs","full_name":"adellape/openshift-docs","owner":{"login":"adellape","id":3442316,"avatar_url":"https://avatars.githubusercontent.com/u/3442316?v=3","gravatar_id":"","url":"https://api.github.com/users/adellape","html_url":"https://github.com/adellape","followers_url":"https://api.github.com/users/adellape/followers","following_url":"https://api.github.com/users/adellape/following{/other_user}","gists_url":"https://api.github.com/users/adellape/gists{/gist_id}","starred_url":"https://api.github.com/users/adellape/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adellape/subscriptions","organizations_url":"https://api.github.com/users/adellape/orgs","repos_url":"https://api.github.com/users/adellape/repos","events_url":"https://api.github.com/users/adellape/events{/privacy}","received_events_url":"https://api.github.com/users/adellape/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/adellape/openshift-docs","description":"OpenShift Documentation","fork":true,"url":"https://api.github.com/repos/adellape/openshift-docs","forks_url":"https://api.github.com/repos/adellape/openshift-docs/forks","keys_url":"https://api.github.com/repos/adellape/openshift-docs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/adellape/openshift-docs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/adellape/openshift-docs/teams","hooks_url":"https://api.github.com/repos/adellape/openshift-docs/hooks","issue_events_url":"https://api.github.com/repos/adellape/openshift-docs/issues/events{/number}","events_url":"https://api.github.com/repos/adellape/openshift-docs/events","assignees_url":"https://api.github.com/repos/adellape/openshift-docs/assignees{/user}","branches_url":"https://api.github.com/repos/adellape/openshift-docs/branches{/branch}","tags_url":"https://api.github.com/repos/adellape/openshift-docs/tags","blobs_url":"https://api.github.com/repos/adellape/openshift-docs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/adellape/openshift-docs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/adellape/openshift-docs/git/refs{/sha}","trees_url":"https://api.github.com/repos/adellape/openshift-docs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/adellape/openshift-docs/statuses/{sha}","languages_url":"https://api.github.com/repos/adellape/openshift-docs/languages","stargazers_url":"https://api.github.com/repos/adellape/openshift-docs/stargazers","contributors_url":"https://api.github.com/repos/adellape/openshift-docs/contributors","subscribers_url":"https://api.github.com/repos/adellape/openshift-docs/subscribers","subscription_url":"https://api.github.com/repos/adellape/openshift-docs/subscription","commits_url":"https://api.github.com/repos/adellape/openshift-docs/commits{/sha}","git_commits_url":"https://api.github.com/repos/adellape/openshift-docs/git/commits{/sha}","comments_url":"https://api.github.com/repos/adellape/openshift-docs/comments{/number}","issue_comment_url":"https://api.github.com/repos/adellape/openshift-docs/issues/comments{/number}","contents_url":"https://api.github.com/repos/adellape/openshift-docs/contents/{+path}","compare_url":"https://api.github.com/repos/adellape/openshift-docs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/adellape/openshift-docs/merges","archive_url":"https://api.github.com/repos/adellape/openshift-docs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/adellape/openshift-docs/downloads","issues_url":"https://api.github.com/repos/adellape/openshift-docs/issues{/number}","pulls_url":"https://api.github.com/repos/adellape/openshift-docs/pulls{/number}","milestones_url":"https://api.github.com/repos/adellape/openshift-docs/milestones{/number}","notifications_url":"https://api.github.com/repos/adellape/openshift-docs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/adellape/openshift-docs/labels{/name}","releases_url":"https://api.github.com/repos/adellape/openshift-docs/releases{/id}","deployments_url":"https://api.github.com/repos/adellape/openshift-docs/deployments","created_at":"2015-01-12T04:47:07Z","updated_at":"2016-01-11T21:42:42Z","pushed_at":"2016-02-03T19:52:45Z","git_url":"git://github.com/adellape/openshift-docs.git","ssh_url":"git@github.com:adellape/openshift-docs.git","clone_url":"https://github.com/adellape/openshift-docs.git","svn_url":"https://github.com/adellape/openshift-docs","homepage":null,"size":7317,"stargazers_count":0,"watchers_count":0,"language":"CSS","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"openshift:master","ref":"master","sha":"057aa3e7e6332739d64de1527588c0faaf80dc3f","user":{"login":"openshift","id":792337,"avatar_url":"https://avatars.githubusercontent.com/u/792337?v=3","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://avatars.githubusercontent.com/u/792337?v=3","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":"2016-01-31T22:33:01Z","pushed_at":"2016-02-03T21:08:06Z","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":10255,"stargazers_count":41,"watchers_count":41,"language":"CSS","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":176,"mirror_url":null,"open_issues_count":125,"forks":176,"open_issues":125,"watchers":41,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/openshift/openshift-docs/pulls/1538"},"html":{"href":"https://github.com/openshift/openshift-docs/pull/1538"},"issue":{"href":"https://api.github.com/repos/openshift/openshift-docs/issues/1538"},"comments":{"href":"https://api.github.com/repos/openshift/openshift-docs/issues/1538/comments"},"review_comments":{"href":"https://api.github.com/repos/openshift/openshift-docs/pulls/1538/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/1538/commits"},"statuses":{"href":"https://api.github.com/repos/openshift/openshift-docs/statuses/ad52fe2d97f60b42e07cbee144edaee62a48c748"}}}}