{"action":"created","comment":{"url":"https://api.github.com/repos/appc/spec/pulls/comments/24876614","id":24876614,"diff_hunk":"@@ -633,8 +654,8 @@ JSON Schema for the Container Runtime Manifest (container manifest), conforming\n     * **annotations** (list of objects, optional) arbitrary metadata appended to the app. The annotation objects must have a *name* key that has a value that is restricted to the [AC Name](#ac-name-type) formatting and *value* key that is an arbitrary string). Annotation names must be unique within the list. These will be merged with annotations provided by the image manifest when queried via the metadata service; values in this list take precedence over those in the image manifest.\n * **volumes** (list of objects, optional) list of volumes which should be mounted into each application's filesystem\n     * **name** (string, required) used to map the volume to an app's mountPoint at runtime. (restricted to the AC Name formatting)\n-    * **kind** (string, required) either \"empty\" or \"host\". \"empty\" fulfills a mount point by ensuring the path exists (writes go to container). \"host\" fulfills a mount point with a bind mount from a **source**.\n-    * **source** (string, required if **kind** is \"host\") absolute path on host to be bind mounted into the container under a mount point.\n+    * **kind** (string, required) either \"empty\" or \"host\". \"empty\" fulfills a mount point by ensuring the path exists (writes go to pod). \"host\" fulfills a mount point with a bind mount from a **source**.","path":"SPEC.md","position":422,"original_position":422,"commit_id":"71d95c1471f732448b08d752c654a066f4936e20","original_commit_id":"71d95c1471f732448b08d752c654a066f4936e20","user":{"login":"eyakubovich","id":3586053,"avatar_url":"https://avatars.githubusercontent.com/u/3586053?v=3","gravatar_id":"","url":"https://api.github.com/users/eyakubovich","html_url":"https://github.com/eyakubovich","followers_url":"https://api.github.com/users/eyakubovich/followers","following_url":"https://api.github.com/users/eyakubovich/following{/other_user}","gists_url":"https://api.github.com/users/eyakubovich/gists{/gist_id}","starred_url":"https://api.github.com/users/eyakubovich/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eyakubovich/subscriptions","organizations_url":"https://api.github.com/users/eyakubovich/orgs","repos_url":"https://api.github.com/users/eyakubovich/repos","events_url":"https://api.github.com/users/eyakubovich/events{/privacy}","received_events_url":"https://api.github.com/users/eyakubovich/received_events","type":"User","site_admin":false},"body":"This seems restrictive. What if I want to satisfy a volume via something remote via nfs, smb, etc? Do I have to first mount it onto the host and then bind-mount it into the container?","created_at":"2015-02-18T03:16:15Z","updated_at":"2015-02-18T03:16:15Z","html_url":"https://github.com/appc/spec/pull/207#discussion_r24876614","pull_request_url":"https://api.github.com/repos/appc/spec/pulls/207","_links":{"self":{"href":"https://api.github.com/repos/appc/spec/pulls/comments/24876614"},"html":{"href":"https://github.com/appc/spec/pull/207#discussion_r24876614"},"pull_request":{"href":"https://api.github.com/repos/appc/spec/pulls/207"}}},"pull_request":{"url":"https://api.github.com/repos/appc/spec/pulls/207","id":29495532,"html_url":"https://github.com/appc/spec/pull/207","diff_url":"https://github.com/appc/spec/pull/207.diff","patch_url":"https://github.com/appc/spec/pull/207.patch","issue_url":"https://api.github.com/repos/appc/spec/issues/207","number":207,"state":"open","locked":false,"title":"spec: introduce Pods, remove CRMs","user":{"login":"jonboulle","id":2601015,"avatar_url":"https://avatars.githubusercontent.com/u/2601015?v=3","gravatar_id":"","url":"https://api.github.com/users/jonboulle","html_url":"https://github.com/jonboulle","followers_url":"https://api.github.com/users/jonboulle/followers","following_url":"https://api.github.com/users/jonboulle/following{/other_user}","gists_url":"https://api.github.com/users/jonboulle/gists{/gist_id}","starred_url":"https://api.github.com/users/jonboulle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jonboulle/subscriptions","organizations_url":"https://api.github.com/users/jonboulle/orgs","repos_url":"https://api.github.com/users/jonboulle/repos","events_url":"https://api.github.com/users/jonboulle/events{/privacy}","received_events_url":"https://api.github.com/users/jonboulle/received_events","type":"User","site_admin":false},"body":"Following on from #150, this is the next iteration at an attempt to introduce\nthe concept of pods.\n\nFollowing the most recent discussion on the topic, this patch attempts to\nsimplify things greatly by removing the ContainerRuntimeManifest entirely and\nsettling instead on a single PodManifest.\n\nTo achieve this, we give the PodManifest a dual purpose: it is both a\n_deployable template_ (which can be used to stamp out instances of pods) which\nbefore execution must be resolved into a final/reified version. The allowed\nreified versions are a _subset_ of the template versions; for example, app\nreferences in the reified version of a Pod Manifest MUST be deterministic and\ncontain image IDs (i.e. they cannot rely on labels and dependency matching).\n\nAn important distinction from the previous CRM model is that a reified \nPodManifest no longer _necessarily_ includes runtime information specific to\nthe executor (i.e., the UUID). It is hence possible that a fully reified pod\ncould be passed around as a deployable unit to different executors.\n\nThis patch also goes to some length to eliminate the (frustratingly ambiguous)\nword \"container\" from the spec, except for in qualified contexts (e.g. \"App\nContainer Image\").","created_at":"2015-02-18T01:51:59Z","updated_at":"2015-02-18T03:16:15Z","closed_at":null,"merged_at":null,"merge_commit_sha":"0df2a28b375464a02049c2c479fee2e94ddc2596","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/appc/spec/pulls/207/commits","review_comments_url":"https://api.github.com/repos/appc/spec/pulls/207/comments","review_comment_url":"https://api.github.com/repos/appc/spec/pulls/comments/{number}","comments_url":"https://api.github.com/repos/appc/spec/issues/207/comments","statuses_url":"https://api.github.com/repos/appc/spec/statuses/71d95c1471f732448b08d752c654a066f4936e20","head":{"label":"jonboulle:pods_redux","ref":"pods_redux","sha":"71d95c1471f732448b08d752c654a066f4936e20","user":{"login":"jonboulle","id":2601015,"avatar_url":"https://avatars.githubusercontent.com/u/2601015?v=3","gravatar_id":"","url":"https://api.github.com/users/jonboulle","html_url":"https://github.com/jonboulle","followers_url":"https://api.github.com/users/jonboulle/followers","following_url":"https://api.github.com/users/jonboulle/following{/other_user}","gists_url":"https://api.github.com/users/jonboulle/gists{/gist_id}","starred_url":"https://api.github.com/users/jonboulle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jonboulle/subscriptions","organizations_url":"https://api.github.com/users/jonboulle/orgs","repos_url":"https://api.github.com/users/jonboulle/repos","events_url":"https://api.github.com/users/jonboulle/events{/privacy}","received_events_url":"https://api.github.com/users/jonboulle/received_events","type":"User","site_admin":false},"repo":{"id":27783943,"name":"spec","full_name":"jonboulle/spec","owner":{"login":"jonboulle","id":2601015,"avatar_url":"https://avatars.githubusercontent.com/u/2601015?v=3","gravatar_id":"","url":"https://api.github.com/users/jonboulle","html_url":"https://github.com/jonboulle","followers_url":"https://api.github.com/users/jonboulle/followers","following_url":"https://api.github.com/users/jonboulle/following{/other_user}","gists_url":"https://api.github.com/users/jonboulle/gists{/gist_id}","starred_url":"https://api.github.com/users/jonboulle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jonboulle/subscriptions","organizations_url":"https://api.github.com/users/jonboulle/orgs","repos_url":"https://api.github.com/users/jonboulle/repos","events_url":"https://api.github.com/users/jonboulle/events{/privacy}","received_events_url":"https://api.github.com/users/jonboulle/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/jonboulle/spec","description":"App Container Specification and Tooling","fork":true,"url":"https://api.github.com/repos/jonboulle/spec","forks_url":"https://api.github.com/repos/jonboulle/spec/forks","keys_url":"https://api.github.com/repos/jonboulle/spec/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jonboulle/spec/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jonboulle/spec/teams","hooks_url":"https://api.github.com/repos/jonboulle/spec/hooks","issue_events_url":"https://api.github.com/repos/jonboulle/spec/issues/events{/number}","events_url":"https://api.github.com/repos/jonboulle/spec/events","assignees_url":"https://api.github.com/repos/jonboulle/spec/assignees{/user}","branches_url":"https://api.github.com/repos/jonboulle/spec/branches{/branch}","tags_url":"https://api.github.com/repos/jonboulle/spec/tags","blobs_url":"https://api.github.com/repos/jonboulle/spec/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jonboulle/spec/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jonboulle/spec/git/refs{/sha}","trees_url":"https://api.github.com/repos/jonboulle/spec/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jonboulle/spec/statuses/{sha}","languages_url":"https://api.github.com/repos/jonboulle/spec/languages","stargazers_url":"https://api.github.com/repos/jonboulle/spec/stargazers","contributors_url":"https://api.github.com/repos/jonboulle/spec/contributors","subscribers_url":"https://api.github.com/repos/jonboulle/spec/subscribers","subscription_url":"https://api.github.com/repos/jonboulle/spec/subscription","commits_url":"https://api.github.com/repos/jonboulle/spec/commits{/sha}","git_commits_url":"https://api.github.com/repos/jonboulle/spec/git/commits{/sha}","comments_url":"https://api.github.com/repos/jonboulle/spec/comments{/number}","issue_comment_url":"https://api.github.com/repos/jonboulle/spec/issues/comments/{number}","contents_url":"https://api.github.com/repos/jonboulle/spec/contents/{+path}","compare_url":"https://api.github.com/repos/jonboulle/spec/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jonboulle/spec/merges","archive_url":"https://api.github.com/repos/jonboulle/spec/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jonboulle/spec/downloads","issues_url":"https://api.github.com/repos/jonboulle/spec/issues{/number}","pulls_url":"https://api.github.com/repos/jonboulle/spec/pulls{/number}","milestones_url":"https://api.github.com/repos/jonboulle/spec/milestones{/number}","notifications_url":"https://api.github.com/repos/jonboulle/spec/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jonboulle/spec/labels{/name}","releases_url":"https://api.github.com/repos/jonboulle/spec/releases{/id}","created_at":"2014-12-09T19:48:51Z","updated_at":"2015-02-06T20:49:10Z","pushed_at":"2015-02-18T01:51:48Z","git_url":"git://github.com/jonboulle/spec.git","ssh_url":"git@github.com:jonboulle/spec.git","clone_url":"https://github.com/jonboulle/spec.git","svn_url":"https://github.com/jonboulle/spec","homepage":null,"size":982,"stargazers_count":0,"watchers_count":0,"language":"Go","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":"appc:master","ref":"master","sha":"fa6d3af86db496053a2d3c907c676fd9ee1118a8","user":{"login":"appc","id":10080092,"avatar_url":"https://avatars.githubusercontent.com/u/10080092?v=3","gravatar_id":"","url":"https://api.github.com/users/appc","html_url":"https://github.com/appc","followers_url":"https://api.github.com/users/appc/followers","following_url":"https://api.github.com/users/appc/following{/other_user}","gists_url":"https://api.github.com/users/appc/gists{/gist_id}","starred_url":"https://api.github.com/users/appc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/appc/subscriptions","organizations_url":"https://api.github.com/users/appc/orgs","repos_url":"https://api.github.com/users/appc/repos","events_url":"https://api.github.com/users/appc/events{/privacy}","received_events_url":"https://api.github.com/users/appc/received_events","type":"Organization","site_admin":false},"repo":{"id":27782596,"name":"spec","full_name":"appc/spec","owner":{"login":"appc","id":10080092,"avatar_url":"https://avatars.githubusercontent.com/u/10080092?v=3","gravatar_id":"","url":"https://api.github.com/users/appc","html_url":"https://github.com/appc","followers_url":"https://api.github.com/users/appc/followers","following_url":"https://api.github.com/users/appc/following{/other_user}","gists_url":"https://api.github.com/users/appc/gists{/gist_id}","starred_url":"https://api.github.com/users/appc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/appc/subscriptions","organizations_url":"https://api.github.com/users/appc/orgs","repos_url":"https://api.github.com/users/appc/repos","events_url":"https://api.github.com/users/appc/events{/privacy}","received_events_url":"https://api.github.com/users/appc/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/appc/spec","description":"App Container Specification and Tooling","fork":false,"url":"https://api.github.com/repos/appc/spec","forks_url":"https://api.github.com/repos/appc/spec/forks","keys_url":"https://api.github.com/repos/appc/spec/keys{/key_id}","collaborators_url":"https://api.github.com/repos/appc/spec/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/appc/spec/teams","hooks_url":"https://api.github.com/repos/appc/spec/hooks","issue_events_url":"https://api.github.com/repos/appc/spec/issues/events{/number}","events_url":"https://api.github.com/repos/appc/spec/events","assignees_url":"https://api.github.com/repos/appc/spec/assignees{/user}","branches_url":"https://api.github.com/repos/appc/spec/branches{/branch}","tags_url":"https://api.github.com/repos/appc/spec/tags","blobs_url":"https://api.github.com/repos/appc/spec/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/appc/spec/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/appc/spec/git/refs{/sha}","trees_url":"https://api.github.com/repos/appc/spec/git/trees{/sha}","statuses_url":"https://api.github.com/repos/appc/spec/statuses/{sha}","languages_url":"https://api.github.com/repos/appc/spec/languages","stargazers_url":"https://api.github.com/repos/appc/spec/stargazers","contributors_url":"https://api.github.com/repos/appc/spec/contributors","subscribers_url":"https://api.github.com/repos/appc/spec/subscribers","subscription_url":"https://api.github.com/repos/appc/spec/subscription","commits_url":"https://api.github.com/repos/appc/spec/commits{/sha}","git_commits_url":"https://api.github.com/repos/appc/spec/git/commits{/sha}","comments_url":"https://api.github.com/repos/appc/spec/comments{/number}","issue_comment_url":"https://api.github.com/repos/appc/spec/issues/comments/{number}","contents_url":"https://api.github.com/repos/appc/spec/contents/{+path}","compare_url":"https://api.github.com/repos/appc/spec/compare/{base}...{head}","merges_url":"https://api.github.com/repos/appc/spec/merges","archive_url":"https://api.github.com/repos/appc/spec/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/appc/spec/downloads","issues_url":"https://api.github.com/repos/appc/spec/issues{/number}","pulls_url":"https://api.github.com/repos/appc/spec/pulls{/number}","milestones_url":"https://api.github.com/repos/appc/spec/milestones{/number}","notifications_url":"https://api.github.com/repos/appc/spec/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/appc/spec/labels{/name}","releases_url":"https://api.github.com/repos/appc/spec/releases{/id}","created_at":"2014-12-09T19:17:54Z","updated_at":"2015-02-18T02:21:07Z","pushed_at":"2015-02-17T17:17:58Z","git_url":"git://github.com/appc/spec.git","ssh_url":"git@github.com:appc/spec.git","clone_url":"https://github.com/appc/spec.git","svn_url":"https://github.com/appc/spec","homepage":null,"size":2760,"stargazers_count":374,"watchers_count":374,"language":"Go","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":42,"mirror_url":null,"open_issues_count":63,"forks":42,"open_issues":63,"watchers":374,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/appc/spec/pulls/207"},"html":{"href":"https://github.com/appc/spec/pull/207"},"issue":{"href":"https://api.github.com/repos/appc/spec/issues/207"},"comments":{"href":"https://api.github.com/repos/appc/spec/issues/207/comments"},"review_comments":{"href":"https://api.github.com/repos/appc/spec/pulls/207/comments"},"review_comment":{"href":"https://api.github.com/repos/appc/spec/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/appc/spec/pulls/207/commits"},"statuses":{"href":"https://api.github.com/repos/appc/spec/statuses/71d95c1471f732448b08d752c654a066f4936e20"}}}}