{"action":"created","comment":{"url":"https://api.github.com/repos/Juniper/contrail-windows-docs/pulls/comments/206549050","pull_request_review_id":141959195,"id":206549050,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwNjU0OTA1MA==","diff_hunk":"@@ -0,0 +1,60 @@\n+# Contrail-ansible-deployer for Windows design document\r\n+This is a document describing initial support of deploying Windows compute nodes with contrail-ansible-deployer.\r\n+\r\n+## Ansible for Windows\r\n+  * A lot of ansible modules don't work on Windows. Possible workarounds:\r\n+    * Use modules with `win_` prefix if they exist, however a lot of modules don't have Windows equivalent\r\n+    * Mimic function of not working module with other ways possible (e.g. using `win_shell`)\r\n+\r\n+## OS-specific roles:\r\n+  * There are particular roles which have to be done differently for Windows\r\n+  * Thus, these roles are divided into `*_Linux` and `*_Win32NT` for usage in c-a-d for Linux and c-a-d for Windows respectively\r\n+\r\n+## Supported orchestrators:\r\n+  * `Openstack` - keystone is required by Windows Docker driver for authorization\r\n+\r\n+## Playbooks:\r\n+  * `provision_instances.yml` - not supported at this moment\r\n+  * `configure_instances.yml`\r\n+  * `install_openstack.yml`\r\n+  * `install_contrail.yml`\r\n+\r\n+## Configure_instances:\r\n+  * Some differences between Windows and non-Windows c-a-d workflows exist for this playbook:\r\n+    * Windows compute nodes need Windows-specific dependencies and particular features turned on/off. `Install_software_Win32.yml` is responsible for that\r\n+    * In the future, vRouter kernel module will be digitally signed, but for now, it uses self-signed certificates.\r\n+    To do that, Windows Test-Signing Mode must be enabled and it can only be done after reboot\r\n+\r\n+## Install_openstack:\r\n+  * There aren't any changes to this playbook\r\n+  * Whole openstack is installed for now, but in the future there should have to specify only the role in `config/instances.yaml` which is responsible for installing keystone\r\n+\r\n+## Install_contrail:\r\n+  * For debugging, specific dlls must be present in main Windows system directory (`C:/Windows/System32`)\r\n+  * Because on Windows only Contrail compute nodes are supported, there are 2 supported roles:\r\n+    * `vrouter` - installs vRouter kernel module, vRouter agent and utils (`create_vrouter_Win32NT.yml`)\r\n+      * Pulls artifacts from `contrail-windows-vrouter` image. Artifacts' directory structure:\r\n+        * `C:/Artifacts/`\r\n+          * `agent/`\r\n+            * `contrail-vrouter-agent.msi` - installs vRouter agent and creates `ContrailAgent` service\r\n+          * `vrouter/`\r\n+            * `utils.msi` - installer for vRouter utils\r\n+            * `vRouter.msi` - installs vRouter kernel module and creates `vRouter` service\r\n+            * `vRouter.cer` - certificate for vRouter kernel module\r\n+          * `vtest/*` - vtest utility (needed in Windows CI)\r\n+    * `win_docker_driver` - installs Windows Docker driver (`create_win_docker_driver.yml`)\r\n+      * Pulls artifact from `contrail-windows-docker-driver` image. Artifact's directory structure:\r\n+        * `C:/Artifacts/`\r\n+          * `docker_driver/docker-driver.msi` - installs Docker driver and creates `DockerDriver` service\r\n+      * From high-level perspective Docker driver is very similiar to OpenStack Nova Agent, however they differ significantly at low-level, because:\r\n+        * The driver needs to have communication with Windows-specific modules\r\n+        * Docker driver communicates directly with Contrail config node\r\n+    * The artifacts have to be built on Windows. Built artifacts are pulled from docker registry specified in `WINDOWS_CONTAINER_REGISTRY` in `config/instances.yaml`\r\n+  * On Windows contrail-ansible-deployer starts components as Windows services,\r\n+    in contrast to Linux where they reside in separate containers, because:\r\n+    * No possibility to run Linux containers on Windows Server 2016\r","path":"doc/contrail_deployment/CAD_for_windows_design.md","position":55,"original_position":55,"commit_id":"46f10d8242c8f93b905e5fb81d8ba0bf37e6c00a","original_commit_id":"46f10d8242c8f93b905e5fb81d8ba0bf37e6c00a","user":{"login":"jacek-izykowski","id":23213306,"node_id":"MDQ6VXNlcjIzMjEzMzA2","avatar_url":"https://avatars2.githubusercontent.com/u/23213306?v=4","gravatar_id":"","url":"https://api.github.com/users/jacek-izykowski","html_url":"https://github.com/jacek-izykowski","followers_url":"https://api.github.com/users/jacek-izykowski/followers","following_url":"https://api.github.com/users/jacek-izykowski/following{/other_user}","gists_url":"https://api.github.com/users/jacek-izykowski/gists{/gist_id}","starred_url":"https://api.github.com/users/jacek-izykowski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacek-izykowski/subscriptions","organizations_url":"https://api.github.com/users/jacek-izykowski/orgs","repos_url":"https://api.github.com/users/jacek-izykowski/repos","events_url":"https://api.github.com/users/jacek-izykowski/events{/privacy}","received_events_url":"https://api.github.com/users/jacek-izykowski/received_events","type":"User","site_admin":false},"body":"`No possibility` -> `It's not possible`","created_at":"2018-07-31T14:24:52Z","updated_at":"2018-07-31T14:26:33Z","html_url":"https://github.com/Juniper/contrail-windows-docs/pull/28#discussion_r206549050","pull_request_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/pulls/28","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/Juniper/contrail-windows-docs/pulls/comments/206549050"},"html":{"href":"https://github.com/Juniper/contrail-windows-docs/pull/28#discussion_r206549050"},"pull_request":{"href":"https://api.github.com/repos/Juniper/contrail-windows-docs/pulls/28"}}},"pull_request":{"url":"https://api.github.com/repos/Juniper/contrail-windows-docs/pulls/28","id":204429286,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA0NDI5Mjg2","html_url":"https://github.com/Juniper/contrail-windows-docs/pull/28","diff_url":"https://github.com/Juniper/contrail-windows-docs/pull/28.diff","patch_url":"https://github.com/Juniper/contrail-windows-docs/pull/28.patch","issue_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/issues/28","number":28,"state":"open","locked":false,"title":"Document describing contrail ansible deployer for windows design","user":{"login":"aethyrxeo","id":3502849,"node_id":"MDQ6VXNlcjM1MDI4NDk=","avatar_url":"https://avatars3.githubusercontent.com/u/3502849?v=4","gravatar_id":"","url":"https://api.github.com/users/aethyrxeo","html_url":"https://github.com/aethyrxeo","followers_url":"https://api.github.com/users/aethyrxeo/followers","following_url":"https://api.github.com/users/aethyrxeo/following{/other_user}","gists_url":"https://api.github.com/users/aethyrxeo/gists{/gist_id}","starred_url":"https://api.github.com/users/aethyrxeo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aethyrxeo/subscriptions","organizations_url":"https://api.github.com/users/aethyrxeo/orgs","repos_url":"https://api.github.com/users/aethyrxeo/repos","events_url":"https://api.github.com/users/aethyrxeo/events{/privacy}","received_events_url":"https://api.github.com/users/aethyrxeo/received_events","type":"User","site_admin":false},"body":"Initial version.","created_at":"2018-07-27T13:18:20Z","updated_at":"2018-07-31T14:26:33Z","closed_at":null,"merged_at":null,"merge_commit_sha":"035f02830c58bca98454e7728d27eef5abbe0c91","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/pulls/28/commits","review_comments_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/pulls/28/comments","review_comment_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/issues/28/comments","statuses_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/statuses/46f10d8242c8f93b905e5fb81d8ba0bf37e6c00a","head":{"label":"Juniper:cad-flow-for-windows","ref":"cad-flow-for-windows","sha":"46f10d8242c8f93b905e5fb81d8ba0bf37e6c00a","user":{"login":"Juniper","id":3935164,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM5MzUxNjQ=","avatar_url":"https://avatars0.githubusercontent.com/u/3935164?v=4","gravatar_id":"","url":"https://api.github.com/users/Juniper","html_url":"https://github.com/Juniper","followers_url":"https://api.github.com/users/Juniper/followers","following_url":"https://api.github.com/users/Juniper/following{/other_user}","gists_url":"https://api.github.com/users/Juniper/gists{/gist_id}","starred_url":"https://api.github.com/users/Juniper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Juniper/subscriptions","organizations_url":"https://api.github.com/users/Juniper/orgs","repos_url":"https://api.github.com/users/Juniper/repos","events_url":"https://api.github.com/users/Juniper/events{/privacy}","received_events_url":"https://api.github.com/users/Juniper/received_events","type":"Organization","site_admin":false},"repo":{"id":122489854,"node_id":"MDEwOlJlcG9zaXRvcnkxMjI0ODk4NTQ=","name":"contrail-windows-docs","full_name":"Juniper/contrail-windows-docs","owner":{"login":"Juniper","id":3935164,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM5MzUxNjQ=","avatar_url":"https://avatars0.githubusercontent.com/u/3935164?v=4","gravatar_id":"","url":"https://api.github.com/users/Juniper","html_url":"https://github.com/Juniper","followers_url":"https://api.github.com/users/Juniper/followers","following_url":"https://api.github.com/users/Juniper/following{/other_user}","gists_url":"https://api.github.com/users/Juniper/gists{/gist_id}","starred_url":"https://api.github.com/users/Juniper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Juniper/subscriptions","organizations_url":"https://api.github.com/users/Juniper/orgs","repos_url":"https://api.github.com/users/Juniper/repos","events_url":"https://api.github.com/users/Juniper/events{/privacy}","received_events_url":"https://api.github.com/users/Juniper/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Juniper/contrail-windows-docs","description":null,"fork":false,"url":"https://api.github.com/repos/Juniper/contrail-windows-docs","forks_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/forks","keys_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/teams","hooks_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/hooks","issue_events_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/issues/events{/number}","events_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/events","assignees_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/assignees{/user}","branches_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/branches{/branch}","tags_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/tags","blobs_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/git/refs{/sha}","trees_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/statuses/{sha}","languages_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/languages","stargazers_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/stargazers","contributors_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/contributors","subscribers_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/subscribers","subscription_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/subscription","commits_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/commits{/sha}","git_commits_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/git/commits{/sha}","comments_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/comments{/number}","issue_comment_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/issues/comments{/number}","contents_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/contents/{+path}","compare_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/merges","archive_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/downloads","issues_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/issues{/number}","pulls_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/pulls{/number}","milestones_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/milestones{/number}","notifications_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/labels{/name}","releases_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/releases{/id}","deployments_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/deployments","created_at":"2018-02-22T14:31:10Z","updated_at":"2018-07-27T08:33:54Z","pushed_at":"2018-07-31T11:20:16Z","git_url":"git://github.com/Juniper/contrail-windows-docs.git","ssh_url":"git@github.com:Juniper/contrail-windows-docs.git","clone_url":"https://github.com/Juniper/contrail-windows-docs.git","svn_url":"https://github.com/Juniper/contrail-windows-docs","homepage":null,"size":1432,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":6,"license":null,"forks":0,"open_issues":6,"watchers":0,"default_branch":"master"}},"base":{"label":"Juniper:master","ref":"master","sha":"640decd6d426fe324830d1b1a1608531c6bf64cf","user":{"login":"Juniper","id":3935164,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM5MzUxNjQ=","avatar_url":"https://avatars0.githubusercontent.com/u/3935164?v=4","gravatar_id":"","url":"https://api.github.com/users/Juniper","html_url":"https://github.com/Juniper","followers_url":"https://api.github.com/users/Juniper/followers","following_url":"https://api.github.com/users/Juniper/following{/other_user}","gists_url":"https://api.github.com/users/Juniper/gists{/gist_id}","starred_url":"https://api.github.com/users/Juniper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Juniper/subscriptions","organizations_url":"https://api.github.com/users/Juniper/orgs","repos_url":"https://api.github.com/users/Juniper/repos","events_url":"https://api.github.com/users/Juniper/events{/privacy}","received_events_url":"https://api.github.com/users/Juniper/received_events","type":"Organization","site_admin":false},"repo":{"id":122489854,"node_id":"MDEwOlJlcG9zaXRvcnkxMjI0ODk4NTQ=","name":"contrail-windows-docs","full_name":"Juniper/contrail-windows-docs","owner":{"login":"Juniper","id":3935164,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM5MzUxNjQ=","avatar_url":"https://avatars0.githubusercontent.com/u/3935164?v=4","gravatar_id":"","url":"https://api.github.com/users/Juniper","html_url":"https://github.com/Juniper","followers_url":"https://api.github.com/users/Juniper/followers","following_url":"https://api.github.com/users/Juniper/following{/other_user}","gists_url":"https://api.github.com/users/Juniper/gists{/gist_id}","starred_url":"https://api.github.com/users/Juniper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Juniper/subscriptions","organizations_url":"https://api.github.com/users/Juniper/orgs","repos_url":"https://api.github.com/users/Juniper/repos","events_url":"https://api.github.com/users/Juniper/events{/privacy}","received_events_url":"https://api.github.com/users/Juniper/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Juniper/contrail-windows-docs","description":null,"fork":false,"url":"https://api.github.com/repos/Juniper/contrail-windows-docs","forks_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/forks","keys_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/teams","hooks_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/hooks","issue_events_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/issues/events{/number}","events_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/events","assignees_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/assignees{/user}","branches_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/branches{/branch}","tags_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/tags","blobs_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/git/refs{/sha}","trees_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/statuses/{sha}","languages_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/languages","stargazers_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/stargazers","contributors_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/contributors","subscribers_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/subscribers","subscription_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/subscription","commits_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/commits{/sha}","git_commits_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/git/commits{/sha}","comments_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/comments{/number}","issue_comment_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/issues/comments{/number}","contents_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/contents/{+path}","compare_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/merges","archive_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/downloads","issues_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/issues{/number}","pulls_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/pulls{/number}","milestones_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/milestones{/number}","notifications_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/labels{/name}","releases_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/releases{/id}","deployments_url":"https://api.github.com/repos/Juniper/contrail-windows-docs/deployments","created_at":"2018-02-22T14:31:10Z","updated_at":"2018-07-27T08:33:54Z","pushed_at":"2018-07-31T11:20:16Z","git_url":"git://github.com/Juniper/contrail-windows-docs.git","ssh_url":"git@github.com:Juniper/contrail-windows-docs.git","clone_url":"https://github.com/Juniper/contrail-windows-docs.git","svn_url":"https://github.com/Juniper/contrail-windows-docs","homepage":null,"size":1432,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":6,"license":null,"forks":0,"open_issues":6,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Juniper/contrail-windows-docs/pulls/28"},"html":{"href":"https://github.com/Juniper/contrail-windows-docs/pull/28"},"issue":{"href":"https://api.github.com/repos/Juniper/contrail-windows-docs/issues/28"},"comments":{"href":"https://api.github.com/repos/Juniper/contrail-windows-docs/issues/28/comments"},"review_comments":{"href":"https://api.github.com/repos/Juniper/contrail-windows-docs/pulls/28/comments"},"review_comment":{"href":"https://api.github.com/repos/Juniper/contrail-windows-docs/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Juniper/contrail-windows-docs/pulls/28/commits"},"statuses":{"href":"https://api.github.com/repos/Juniper/contrail-windows-docs/statuses/46f10d8242c8f93b905e5fb81d8ba0bf37e6c00a"}},"author_association":"NONE"}}
{"actor":{"display_login":"jacek-izykowski"}}