{"action":"created","comment":{"url":"https://api.github.com/repos/coreos/rkt/pulls/comments/46678536","id":46678536,"diff_hunk":"@@ -16,36 +16,47 @@ This separation of concerns is reflected in the file-system and layout of the co\n 1. Stage 1: \"stage1.aci\", made available at \"/var/lib/rkt/pods/$uuid/stage1\" by `rkt run`.\n 2. Stage 2: \"$app.aci\", made available at \"/var/lib/rkt/pods/$uuid/stage1/rootfs/opt/stage2/$appname\" by `rkt run`, where $appname is the name of the app in the pod manifest.\n \n-The stage 1 implementation is what creates the execution environment for the contained applications.  This occurs via entrypoints from stage 0 on behalf of `rkt run` and `rkt enter`.  These entrypoints are nothing more than executable programs located via Annotations from within the stage 1 ACI manifest, and executed from within the stage 1 of a given pod at \"/var/lib/rkt/pods/$uuid/stage1/rootfs\".\n+The stage 1 implementation is what creates the execution environment for the contained applications.\n+This occurs via entrypoints from stage 0 on behalf of `rkt run` and `rkt enter`.\n+These entrypoints are nothing more than executable programs located via Annotations from within the stage 1 ACI manifest, and executed from within the stage 1 of a given pod at \"/var/lib/rkt/pods/$uuid/stage1/rootfs\".\n \n-Stage 2 is the destination application images and stage 1 is the vehicle for getting us there from stage 0.  For any given pod instance, the stage 1 may be completely different, allowing for flexibility in containment strategies employed within the same host while utilizing reusable application ACIs.\n+Stage 2 is the destination application images and stage 1 is the vehicle for getting us there from stage 0.\n+For any given pod instance, the stage 1 may be completely different, allowing for flexibility in containment strategies employed within the same host while utilizing reusable application ACIs.\n \n Entrypoints\n -----------\n \n ### `rkt run` => \"coreos.com/rkt/stage1/run\"\n \n-0. rkt prepares the pod's stage 1 and stage 2 images and Pod Manifest under \"/var/lib/rkt/pods/$uuid\", acquiring an exclusive advisory lock on the directory.\n+0. rkt prepares the pod's stage 1 and stage 2 images and Pod Manifest under \"/var/lib/rkt/pods/$uuid\", acquiring an exclusive advisory lock on the directory\n 1. chdirs to \"/var/lib/rkt/pods/$uuid\"\n 2. resolves the \"coreos.com/rkt/stage1/run\" entrypoint via Annotations found within \"/var/lib/rkt/pods/$uuid/stage1/manifest\"\n 3. executes the resolved entrypoint relative to \"/var/lib/rkt/pods/$uuid/stage1/rootfs\"\n \n It is the responsibility of this entrypoint to consume the Pod Manifest and execute the constituent apps in the appropriate environments as specified by the Pod Manifest.\n \n-The environment variable \"RKT_LOCK_FD\" contains the file descriptor number of the open directory handle for \"/var/lib/rkt/pods/$uuid\".  It is necessary that stage 1 leave this file descriptor open and in its locked state for the duration of the `rkt run`.\n+The environment variable \"RKT_LOCK_FD\" contains the file descriptor number of the open directory handle for \"/var/lib/rkt/pods/$uuid\".\n+It is necessary that stage 1 leave this file descriptor open and in its locked state for the duration of the `rkt run`.\n \n-In the bundled rkt stage 1 which includes systemd-nspawn and systemd, the entrypoint is a static Go program found at \"/init\" within the stage 1 ACI rootfs.  The majority of its execution entails generating a systemd-nspawn argument list and writing systemd unit files for the constituent apps before executing systemd-nspawn.  Systemd-nspawn then boots the stage 1 systemd with the just-written unit files for launching the contained apps.  The \"/init\" program is essentially a Pod Manifest to systemd-nspawn + systemd.service translator.\n+In the bundled rkt stage 1 which includes systemd-nspawn and systemd, the entrypoint is a static Go program found at \"/init\" within the stage 1 ACI rootfs.\n+The majority of its execution entails generating a systemd-nspawn argument list and writing systemd unit files for the constituent apps before executing systemd-nspawn.\n+Systemd-nspawn then boots the stage 1 systemd with the just-written unit files for launching the contained apps.\n+The \"/init\" program is essentially a Pod Manifest to systemd-nspawn + systemd.service translator.\n \n-An alternative stage 1 could forego systemd-nspawn and systemd altogether, or retain these and introduce something like novm or qemu-kvm for greater isolation by first starting a VM.  All that is required is an executable at the place indicated by the \"coreos.com/rkt/stage1/run\" entrypoint which knows how to apply the Pod Manifest and prepared ACI file-systems to good effect.\n+An alternative stage 1 could forego systemd-nspawn and systemd altogether, or retain these and introduce something like novm or qemu-kvm for greater isolation by first starting a VM.\n+All that is required is an executable at the place indicated by the \"coreos.com/rkt/stage1/run\" entrypoint which knows how to apply the Pod Manifest and prepared ACI file-systems to good effect.\n \n-The resolved entrypoint must inform rkt of its PID for the benefit of `rkt enter`. rkt supports two ways of doing that, stage1 implementors must pick one:\n+The resolved entrypoint must inform rkt of its PID for the benefit of `rkt enter`.\n+rkt supports two ways of doing that, stage1 implementors must pick one:\n \n 1. Writing to \"/var/lib/rkt/pods/$uuid/pid\" the PID of the process that is PID 1 in the container.\n-2. Writing to \"/var/lib/rkt/pods/$uuid/ppid\" the PID of the parent of the process that is PID 1 in the container. This assumes it has only one child.\n+2. Writing to \"/var/lib/rkt/pods/$uuid/ppid\" the PID of the parent of the process that is PID 1 in the container.\n+   This assumes it has only one child.\n \n #### Arguments","path":"Documentation/devel/stage1-implementors-guide.md","position":49,"original_position":49,"commit_id":"04d061c30680d5e9e4542ba02ece2b1982125ad8","original_commit_id":"04d061c30680d5e9e4542ba02ece2b1982125ad8","user":{"login":"krnowak","id":96081,"avatar_url":"https://avatars.githubusercontent.com/u/96081?v=3","gravatar_id":"","url":"https://api.github.com/users/krnowak","html_url":"https://github.com/krnowak","followers_url":"https://api.github.com/users/krnowak/followers","following_url":"https://api.github.com/users/krnowak/following{/other_user}","gists_url":"https://api.github.com/users/krnowak/gists{/gist_id}","starred_url":"https://api.github.com/users/krnowak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/krnowak/subscriptions","organizations_url":"https://api.github.com/users/krnowak/orgs","repos_url":"https://api.github.com/users/krnowak/repos","events_url":"https://api.github.com/users/krnowak/events{/privacy}","received_events_url":"https://api.github.com/users/krnowak/received_events","type":"User","site_admin":false},"body":"So, should the header be named \"Options and arguments\"?","created_at":"2015-12-04T12:52:25Z","updated_at":"2015-12-04T12:52:25Z","html_url":"https://github.com/coreos/rkt/pull/1824#discussion_r46678536","pull_request_url":"https://api.github.com/repos/coreos/rkt/pulls/1824","_links":{"self":{"href":"https://api.github.com/repos/coreos/rkt/pulls/comments/46678536"},"html":{"href":"https://github.com/coreos/rkt/pull/1824#discussion_r46678536"},"pull_request":{"href":"https://api.github.com/repos/coreos/rkt/pulls/1824"}}},"pull_request":{"url":"https://api.github.com/repos/coreos/rkt/pulls/1824","id":52418469,"html_url":"https://github.com/coreos/rkt/pull/1824","diff_url":"https://github.com/coreos/rkt/pull/1824.diff","patch_url":"https://github.com/coreos/rkt/pull/1824.patch","issue_url":"https://api.github.com/repos/coreos/rkt/issues/1824","number":1824,"state":"open","locked":false,"title":"Documentation: fix formatting, typos, outdated info","user":{"login":"krnowak","id":96081,"avatar_url":"https://avatars.githubusercontent.com/u/96081?v=3","gravatar_id":"","url":"https://api.github.com/users/krnowak","html_url":"https://github.com/krnowak","followers_url":"https://api.github.com/users/krnowak/followers","following_url":"https://api.github.com/users/krnowak/following{/other_user}","gists_url":"https://api.github.com/users/krnowak/gists{/gist_id}","starred_url":"https://api.github.com/users/krnowak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/krnowak/subscriptions","organizations_url":"https://api.github.com/users/krnowak/orgs","repos_url":"https://api.github.com/users/krnowak/repos","events_url":"https://api.github.com/users/krnowak/events{/privacy}","received_events_url":"https://api.github.com/users/krnowak/received_events","type":"User","site_admin":false},"body":"First commit is quite large, because of the one-sentence-per-line formatting, but it mostly is not changing any text.\r\n\r\nThe rest of the commits are fixing various mistakes.","created_at":"2015-12-02T16:25:52Z","updated_at":"2015-12-04T12:52:25Z","closed_at":null,"merged_at":null,"merge_commit_sha":"526bf5fe107cfbcefe1bf195b9aa62f36088947e","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/coreos/rkt/pulls/1824/commits","review_comments_url":"https://api.github.com/repos/coreos/rkt/pulls/1824/comments","review_comment_url":"https://api.github.com/repos/coreos/rkt/pulls/comments{/number}","comments_url":"https://api.github.com/repos/coreos/rkt/issues/1824/comments","statuses_url":"https://api.github.com/repos/coreos/rkt/statuses/04d061c30680d5e9e4542ba02ece2b1982125ad8","head":{"label":"kinvolk:krnowak/docs-fixes","ref":"krnowak/docs-fixes","sha":"04d061c30680d5e9e4542ba02ece2b1982125ad8","user":{"login":"kinvolk","id":14073052,"avatar_url":"https://avatars.githubusercontent.com/u/14073052?v=3","gravatar_id":"","url":"https://api.github.com/users/kinvolk","html_url":"https://github.com/kinvolk","followers_url":"https://api.github.com/users/kinvolk/followers","following_url":"https://api.github.com/users/kinvolk/following{/other_user}","gists_url":"https://api.github.com/users/kinvolk/gists{/gist_id}","starred_url":"https://api.github.com/users/kinvolk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kinvolk/subscriptions","organizations_url":"https://api.github.com/users/kinvolk/orgs","repos_url":"https://api.github.com/users/kinvolk/repos","events_url":"https://api.github.com/users/kinvolk/events{/privacy}","received_events_url":"https://api.github.com/users/kinvolk/received_events","type":"Organization","site_admin":false},"repo":{"id":45149715,"name":"rkt","full_name":"kinvolk/rkt","owner":{"login":"kinvolk","id":14073052,"avatar_url":"https://avatars.githubusercontent.com/u/14073052?v=3","gravatar_id":"","url":"https://api.github.com/users/kinvolk","html_url":"https://github.com/kinvolk","followers_url":"https://api.github.com/users/kinvolk/followers","following_url":"https://api.github.com/users/kinvolk/following{/other_user}","gists_url":"https://api.github.com/users/kinvolk/gists{/gist_id}","starred_url":"https://api.github.com/users/kinvolk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kinvolk/subscriptions","organizations_url":"https://api.github.com/users/kinvolk/orgs","repos_url":"https://api.github.com/users/kinvolk/repos","events_url":"https://api.github.com/users/kinvolk/events{/privacy}","received_events_url":"https://api.github.com/users/kinvolk/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/kinvolk/rkt","description":"rkt is an App Container runtime for Linux","fork":true,"url":"https://api.github.com/repos/kinvolk/rkt","forks_url":"https://api.github.com/repos/kinvolk/rkt/forks","keys_url":"https://api.github.com/repos/kinvolk/rkt/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kinvolk/rkt/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kinvolk/rkt/teams","hooks_url":"https://api.github.com/repos/kinvolk/rkt/hooks","issue_events_url":"https://api.github.com/repos/kinvolk/rkt/issues/events{/number}","events_url":"https://api.github.com/repos/kinvolk/rkt/events","assignees_url":"https://api.github.com/repos/kinvolk/rkt/assignees{/user}","branches_url":"https://api.github.com/repos/kinvolk/rkt/branches{/branch}","tags_url":"https://api.github.com/repos/kinvolk/rkt/tags","blobs_url":"https://api.github.com/repos/kinvolk/rkt/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kinvolk/rkt/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kinvolk/rkt/git/refs{/sha}","trees_url":"https://api.github.com/repos/kinvolk/rkt/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kinvolk/rkt/statuses/{sha}","languages_url":"https://api.github.com/repos/kinvolk/rkt/languages","stargazers_url":"https://api.github.com/repos/kinvolk/rkt/stargazers","contributors_url":"https://api.github.com/repos/kinvolk/rkt/contributors","subscribers_url":"https://api.github.com/repos/kinvolk/rkt/subscribers","subscription_url":"https://api.github.com/repos/kinvolk/rkt/subscription","commits_url":"https://api.github.com/repos/kinvolk/rkt/commits{/sha}","git_commits_url":"https://api.github.com/repos/kinvolk/rkt/git/commits{/sha}","comments_url":"https://api.github.com/repos/kinvolk/rkt/comments{/number}","issue_comment_url":"https://api.github.com/repos/kinvolk/rkt/issues/comments{/number}","contents_url":"https://api.github.com/repos/kinvolk/rkt/contents/{+path}","compare_url":"https://api.github.com/repos/kinvolk/rkt/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kinvolk/rkt/merges","archive_url":"https://api.github.com/repos/kinvolk/rkt/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kinvolk/rkt/downloads","issues_url":"https://api.github.com/repos/kinvolk/rkt/issues{/number}","pulls_url":"https://api.github.com/repos/kinvolk/rkt/pulls{/number}","milestones_url":"https://api.github.com/repos/kinvolk/rkt/milestones{/number}","notifications_url":"https://api.github.com/repos/kinvolk/rkt/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kinvolk/rkt/labels{/name}","releases_url":"https://api.github.com/repos/kinvolk/rkt/releases{/id}","created_at":"2015-10-29T00:17:06Z","updated_at":"2015-10-29T00:17:09Z","pushed_at":"2015-12-04T12:40:44Z","git_url":"git://github.com/kinvolk/rkt.git","ssh_url":"git@github.com:kinvolk/rkt.git","clone_url":"https://github.com/kinvolk/rkt.git","svn_url":"https://github.com/kinvolk/rkt","homepage":"","size":17817,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":false,"has_downloads":true,"has_wiki":false,"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":"coreos:master","ref":"master","sha":"c07e18614b18795d2ba6e073b02ec7e3cd99ea85","user":{"login":"coreos","id":3730757,"avatar_url":"https://avatars.githubusercontent.com/u/3730757?v=3","gravatar_id":"","url":"https://api.github.com/users/coreos","html_url":"https://github.com/coreos","followers_url":"https://api.github.com/users/coreos/followers","following_url":"https://api.github.com/users/coreos/following{/other_user}","gists_url":"https://api.github.com/users/coreos/gists{/gist_id}","starred_url":"https://api.github.com/users/coreos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coreos/subscriptions","organizations_url":"https://api.github.com/users/coreos/orgs","repos_url":"https://api.github.com/users/coreos/repos","events_url":"https://api.github.com/users/coreos/events{/privacy}","received_events_url":"https://api.github.com/users/coreos/received_events","type":"Organization","site_admin":false},"repo":{"id":26509369,"name":"rkt","full_name":"coreos/rkt","owner":{"login":"coreos","id":3730757,"avatar_url":"https://avatars.githubusercontent.com/u/3730757?v=3","gravatar_id":"","url":"https://api.github.com/users/coreos","html_url":"https://github.com/coreos","followers_url":"https://api.github.com/users/coreos/followers","following_url":"https://api.github.com/users/coreos/following{/other_user}","gists_url":"https://api.github.com/users/coreos/gists{/gist_id}","starred_url":"https://api.github.com/users/coreos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coreos/subscriptions","organizations_url":"https://api.github.com/users/coreos/orgs","repos_url":"https://api.github.com/users/coreos/repos","events_url":"https://api.github.com/users/coreos/events{/privacy}","received_events_url":"https://api.github.com/users/coreos/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/coreos/rkt","description":"rkt is an App Container runtime for Linux","fork":false,"url":"https://api.github.com/repos/coreos/rkt","forks_url":"https://api.github.com/repos/coreos/rkt/forks","keys_url":"https://api.github.com/repos/coreos/rkt/keys{/key_id}","collaborators_url":"https://api.github.com/repos/coreos/rkt/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/coreos/rkt/teams","hooks_url":"https://api.github.com/repos/coreos/rkt/hooks","issue_events_url":"https://api.github.com/repos/coreos/rkt/issues/events{/number}","events_url":"https://api.github.com/repos/coreos/rkt/events","assignees_url":"https://api.github.com/repos/coreos/rkt/assignees{/user}","branches_url":"https://api.github.com/repos/coreos/rkt/branches{/branch}","tags_url":"https://api.github.com/repos/coreos/rkt/tags","blobs_url":"https://api.github.com/repos/coreos/rkt/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/coreos/rkt/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/coreos/rkt/git/refs{/sha}","trees_url":"https://api.github.com/repos/coreos/rkt/git/trees{/sha}","statuses_url":"https://api.github.com/repos/coreos/rkt/statuses/{sha}","languages_url":"https://api.github.com/repos/coreos/rkt/languages","stargazers_url":"https://api.github.com/repos/coreos/rkt/stargazers","contributors_url":"https://api.github.com/repos/coreos/rkt/contributors","subscribers_url":"https://api.github.com/repos/coreos/rkt/subscribers","subscription_url":"https://api.github.com/repos/coreos/rkt/subscription","commits_url":"https://api.github.com/repos/coreos/rkt/commits{/sha}","git_commits_url":"https://api.github.com/repos/coreos/rkt/git/commits{/sha}","comments_url":"https://api.github.com/repos/coreos/rkt/comments{/number}","issue_comment_url":"https://api.github.com/repos/coreos/rkt/issues/comments{/number}","contents_url":"https://api.github.com/repos/coreos/rkt/contents/{+path}","compare_url":"https://api.github.com/repos/coreos/rkt/compare/{base}...{head}","merges_url":"https://api.github.com/repos/coreos/rkt/merges","archive_url":"https://api.github.com/repos/coreos/rkt/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/coreos/rkt/downloads","issues_url":"https://api.github.com/repos/coreos/rkt/issues{/number}","pulls_url":"https://api.github.com/repos/coreos/rkt/pulls{/number}","milestones_url":"https://api.github.com/repos/coreos/rkt/milestones{/number}","notifications_url":"https://api.github.com/repos/coreos/rkt/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/coreos/rkt/labels{/name}","releases_url":"https://api.github.com/repos/coreos/rkt/releases{/id}","created_at":"2014-11-11T23:13:18Z","updated_at":"2015-12-04T02:03:32Z","pushed_at":"2015-12-04T12:48:41Z","git_url":"git://github.com/coreos/rkt.git","ssh_url":"git@github.com:coreos/rkt.git","clone_url":"https://github.com/coreos/rkt.git","svn_url":"https://github.com/coreos/rkt","homepage":"","size":21458,"stargazers_count":4903,"watchers_count":4903,"language":"Go","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":417,"mirror_url":null,"open_issues_count":200,"forks":417,"open_issues":200,"watchers":4903,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/coreos/rkt/pulls/1824"},"html":{"href":"https://github.com/coreos/rkt/pull/1824"},"issue":{"href":"https://api.github.com/repos/coreos/rkt/issues/1824"},"comments":{"href":"https://api.github.com/repos/coreos/rkt/issues/1824/comments"},"review_comments":{"href":"https://api.github.com/repos/coreos/rkt/pulls/1824/comments"},"review_comment":{"href":"https://api.github.com/repos/coreos/rkt/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/coreos/rkt/pulls/1824/commits"},"statuses":{"href":"https://api.github.com/repos/coreos/rkt/statuses/04d061c30680d5e9e4542ba02ece2b1982125ad8"}}}}