)]}'
{"doc/source/developer/specs/zuul-runner.rst":[{"author":{"_account_id":16068,"name":"Tobias Henkel","email":"tobias.henkel@bmw.de","username":"tobias.henkel"},"change_message_id":"62940657283c5052eccf17763bd84d428893af80","unresolved":false,"context_lines":[{"line_number":31,"context_line":"~~~~~~~~~~~~~~"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"The Zuul Runner shall requires the user to provide test resources."},{"line_number":34,"context_line":"The simplest usage would be to let the user provide an Ansible inventory."},{"line_number":35,"context_line":"The user could also provides a nodepool.yaml and the zuul-runner cli"},{"line_number":36,"context_line":"using an inlined Nodepool object as proposed in:"},{"line_number":37,"context_line":"https://review.opendev.org/#/c/639632/"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_d41a6c7b","line":34,"updated":"2019-10-09 12:00:07.000000000","message":"How would this process look like? Would the runner supply a template inventory or would it take a simple one from the user and enrich it with the zuul variables?","commit_id":"d27a22b333791a08be492a87a2ec78d4af062d61"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"d851b436ac0e02bd2b6816e1655c046c74e42880","unresolved":false,"context_lines":[{"line_number":31,"context_line":"~~~~~~~~~~~~~~"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"The Zuul Runner shall requires the user to provide test resources."},{"line_number":34,"context_line":"The simplest usage would be to let the user provide an Ansible inventory."},{"line_number":35,"context_line":"The user could also provides a nodepool.yaml and the zuul-runner cli"},{"line_number":36,"context_line":"using an inlined Nodepool object as proposed in:"},{"line_number":37,"context_line":"https://review.opendev.org/#/c/639632/"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_0faa71d2","line":34,"in_reply_to":"3fa7e38b_d41a6c7b","updated":"2020-01-09 16:06:36.000000000","message":"I guess the runner would enrich the inventory as it already do with the nodepool nodeset.","commit_id":"d27a22b333791a08be492a87a2ec78d4af062d61"},{"author":{"_account_id":16068,"name":"Tobias Henkel","email":"tobias.henkel@bmw.de","username":"tobias.henkel"},"change_message_id":"62940657283c5052eccf17763bd84d428893af80","unresolved":false,"context_lines":[{"line_number":34,"context_line":"The simplest usage would be to let the user provide an Ansible inventory."},{"line_number":35,"context_line":"The user could also provides a nodepool.yaml and the zuul-runner cli"},{"line_number":36,"context_line":"using an inlined Nodepool object as proposed in:"},{"line_number":37,"context_line":"https://review.opendev.org/#/c/639632/"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Required Projects"},{"line_number":40,"context_line":"~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_f41f6869","line":37,"updated":"2019-10-09 12:00:07.000000000","message":"Running a standalone launcher is probably not possible for the majority of the normal users dueto lack of access to cloud resources.","commit_id":"d27a22b333791a08be492a87a2ec78d4af062d61"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"d851b436ac0e02bd2b6816e1655c046c74e42880","unresolved":false,"context_lines":[{"line_number":34,"context_line":"The simplest usage would be to let the user provide an Ansible inventory."},{"line_number":35,"context_line":"The user could also provides a nodepool.yaml and the zuul-runner cli"},{"line_number":36,"context_line":"using an inlined Nodepool object as proposed in:"},{"line_number":37,"context_line":"https://review.opendev.org/#/c/639632/"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Required Projects"},{"line_number":40,"context_line":"~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_8f7f4168","line":37,"in_reply_to":"3fa7e38b_e3523767","updated":"2020-01-09 16:06:36.000000000","message":"Ok next PS removes that part.","commit_id":"d27a22b333791a08be492a87a2ec78d4af062d61"},{"author":{"_account_id":1955,"name":"Alan Pevec","email":"alan.pevec@redhat.com","username":"apevec"},"change_message_id":"034b4237727df9d0003a32702123c175f7b5aa9e","unresolved":false,"context_lines":[{"line_number":34,"context_line":"The simplest usage would be to let the user provide an Ansible inventory."},{"line_number":35,"context_line":"The user could also provides a nodepool.yaml and the zuul-runner cli"},{"line_number":36,"context_line":"using an inlined Nodepool object as proposed in:"},{"line_number":37,"context_line":"https://review.opendev.org/#/c/639632/"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Required Projects"},{"line_number":40,"context_line":"~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_e3523767","line":37,"in_reply_to":"3fa7e38b_f41f6869","updated":"2019-10-28 16:55:26.000000000","message":"That should not be a blocker, access to cloud resources is something we can safely assume developer have, one way or the other, it could even be for free: https://aws.amazon.com/blogs/opensource/aws-promotional-credits-open-source-projects/","commit_id":"d27a22b333791a08be492a87a2ec78d4af062d61"},{"author":{"_account_id":30637,"name":"Jan Kubovy","email":"jan.kubovy@bmw.de","username":"kubovy"},"change_message_id":"c4a28001f2f8dec0c9fe20a3a0592ce7b912ba3b","unresolved":false,"context_lines":[{"line_number":38,"context_line":"Required Projects"},{"line_number":39,"context_line":"~~~~~~~~~~~~~~~~~"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"The Zuul Runner shall queries an existing Zuul API to get the list"},{"line_number":42,"context_line":"of projects required to run a job. This is implemented as part of"},{"line_number":43,"context_line":"the `topic:freeze_job` changes to expose the executor gearman parameters."},{"line_number":44,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_bb111bb1","line":41,"range":{"start_line":41,"start_character":22,"end_line":41,"end_character":29},"updated":"2020-01-16 08:33:54.000000000","message":"query","commit_id":"8d5f6068ff6b67f761a5c945f6d95d80dbfd1848"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"e3225257cc3d30b5d24c27c0f005457b8e8ecedf","unresolved":false,"context_lines":[{"line_number":38,"context_line":"Required Projects"},{"line_number":39,"context_line":"~~~~~~~~~~~~~~~~~"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"The Zuul Runner shall queries an existing Zuul API to get the list"},{"line_number":42,"context_line":"of projects required to run a job. This is implemented as part of"},{"line_number":43,"context_line":"the `topic:freeze_job` changes to expose the executor gearman parameters."},{"line_number":44,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"1fa4df85_9a7b468a","line":41,"range":{"start_line":41,"start_character":22,"end_line":41,"end_character":29},"in_reply_to":"3fa7e38b_bb111bb1","updated":"2020-05-04 15:04:26.000000000","message":"Done","commit_id":"8d5f6068ff6b67f761a5c945f6d95d80dbfd1848"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"4cf069ccafd105f577fe8446151fa6e396f7dd4c","unresolved":false,"context_lines":[{"line_number":54,"context_line":"Secrets"},{"line_number":55,"context_line":"~~~~~~~"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"The Zuul Runner shall requires the user to provide his own copies of"},{"line_number":58,"context_line":"any secrets required by the job."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_278669b9","line":57,"updated":"2020-02-20 20:56:27.000000000","message":"You can change this to a gender-neutral form (and shorten it too!) with \"...shall require the user to provide copies of...\".","commit_id":"8d5f6068ff6b67f761a5c945f6d95d80dbfd1848"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"e3225257cc3d30b5d24c27c0f005457b8e8ecedf","unresolved":false,"context_lines":[{"line_number":54,"context_line":"Secrets"},{"line_number":55,"context_line":"~~~~~~~"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"The Zuul Runner shall requires the user to provide his own copies of"},{"line_number":58,"context_line":"any secrets required by the job."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"1fa4df85_3a6ed2c8","line":57,"in_reply_to":"3fa7e38b_278669b9","updated":"2020-05-04 15:04:26.000000000","message":"Done","commit_id":"8d5f6068ff6b67f761a5c945f6d95d80dbfd1848"},{"author":{"_account_id":9061,"name":"David Moreau Simard","email":"moi@dmsimard.com","username":"dmsimard"},"change_message_id":"8caea02749b73fd47030a4390786a0fea56e9e57","unresolved":false,"context_lines":[{"line_number":66,"context_line":"https://review.opendev.org/#/q/topic:freeze_job+(status:open+OR+status:merged)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Zuul Runner CLI"},{"line_number":70,"context_line":"---------------"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Here is the proposed usage for the CLI:"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_5598fd74","line":69,"range":{"start_line":69,"start_character":0,"end_line":69,"end_character":15},"updated":"2020-01-15 18:06:06.000000000","message":"Although not mutually exclusive, I see two use different use cases with different scopes that could perhaps benefit from being described in the spec:\n\n1) Running a local build of a job that has already ran (i.e, it failed and I want to run it locally to see what happens under the hood)\n\n2) Being able to run any job from any Zuul instance, tenant, project or pipeline regardless if it has run or not\n\nAn example for #1 would be to point zuul-runner at a build URL where it would automatically discover the zuul API server, job, manifest, inventory and variables (from zuul-info logs) and then re-run the job against a user-specified inventory. \nSomething like:\n\n    zuul-runner rerun http://zuul.openstack.org/build/d8dcc3aa89a34c919f5e8e1979d8c3bc --inventory /foo/bar\n\n#2 requires a very flexible approach which is currently described in the spec but I think the main use case would be #1.","commit_id":"8d5f6068ff6b67f761a5c945f6d95d80dbfd1848"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"4cf069ccafd105f577fe8446151fa6e396f7dd4c","unresolved":false,"context_lines":[{"line_number":66,"context_line":"https://review.opendev.org/#/q/topic:freeze_job+(status:open+OR+status:merged)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Zuul Runner CLI"},{"line_number":70,"context_line":"---------------"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Here is the proposed usage for the CLI:"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_c7b6758d","line":69,"updated":"2020-02-20 20:56:27.000000000","message":"I think it\u0027s worth describing both use cases in the spec.","commit_id":"8d5f6068ff6b67f761a5c945f6d95d80dbfd1848"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"e3225257cc3d30b5d24c27c0f005457b8e8ecedf","unresolved":false,"context_lines":[{"line_number":66,"context_line":"https://review.opendev.org/#/q/topic:freeze_job+(status:open+OR+status:merged)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Zuul Runner CLI"},{"line_number":70,"context_line":"---------------"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Here is the proposed usage for the CLI:"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1fa4df85_baee42ea","line":69,"in_reply_to":"3fa7e38b_c7b6758d","updated":"2020-05-04 15:04:26.000000000","message":"Next PS adds both use cases to the spec first section.","commit_id":"8d5f6068ff6b67f761a5c945f6d95d80dbfd1848"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"916709461dfa4195bbcdc5e30535b062c9bf150a","unresolved":false,"context_lines":[{"line_number":99,"context_line":"                           the zuul project\u0027s branch name"},{"line_number":100,"context_line":"     -g GIT_DIR, --git-dir GIT_DIR"},{"line_number":101,"context_line":"                           the git merger dir"},{"line_number":102,"context_line":"     -D DEPENDS_ON, --depends-on DEPENDS_ON"},{"line_number":103,"context_line":"                           reproduce job with speculative depends-on"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"   commands:"},{"line_number":106,"context_line":"     valid commands"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_f4bce4db","line":103,"range":{"start_line":102,"start_character":4,"end_line":103,"end_character":68},"updated":"2020-01-09 13:05:06.000000000","message":"does it support multiple depends-on?","commit_id":"8d5f6068ff6b67f761a5c945f6d95d80dbfd1848"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"d851b436ac0e02bd2b6816e1655c046c74e42880","unresolved":false,"context_lines":[{"line_number":99,"context_line":"                           the zuul project\u0027s branch name"},{"line_number":100,"context_line":"     -g GIT_DIR, --git-dir GIT_DIR"},{"line_number":101,"context_line":"                           the git merger dir"},{"line_number":102,"context_line":"     -D DEPENDS_ON, --depends-on DEPENDS_ON"},{"line_number":103,"context_line":"                           reproduce job with speculative depends-on"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"   commands:"},{"line_number":106,"context_line":"     valid commands"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_15497ab6","line":103,"range":{"start_line":102,"start_character":4,"end_line":103,"end_character":68},"in_reply_to":"3fa7e38b_f4bce4db","updated":"2020-01-09 16:06:36.000000000","message":"Yes, it\u0027s implemented here: https://review.opendev.org/#/c/632064/18/zuul/cmd/runner.py","commit_id":"8d5f6068ff6b67f761a5c945f6d95d80dbfd1848"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"4cf069ccafd105f577fe8446151fa6e396f7dd4c","unresolved":false,"context_lines":[{"line_number":118,"context_line":""},{"line_number":119,"context_line":"   $ pip install --user zuul"},{"line_number":120,"context_line":"   $ zuul-runner --api https://zuul.openstack.org --project openstack/nova \\"},{"line_number":121,"context_line":"       --job tempest-full-py3 execute --nodes ssh:rhel8:instance-ip:tdecacqu:/home/tdecacqu"},{"line_number":122,"context_line":"   [...]"},{"line_number":123,"context_line":"   2019-05-07 06:08:01,040 DEBUG zuul.Runner - Ansible output: b\u0027PLAY RECAP *********************************************************************\u0027"},{"line_number":124,"context_line":"   2019-05-07 06:08:01,040 DEBUG zuul.Runner - Ansible output: b\u0027instance-ip                : ok\u003d9    changed\u003d5    unreachable\u003d0    failed\u003d0\u0027"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_e7b9317b","line":121,"updated":"2020-02-20 20:56:27.000000000","message":"The nodes argument doesn\u0027t appear above -- are you replacing that with a user-supplied inventory file?  If so, that\u0027s missing too.","commit_id":"8d5f6068ff6b67f761a5c945f6d95d80dbfd1848"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"e3225257cc3d30b5d24c27c0f005457b8e8ecedf","unresolved":false,"context_lines":[{"line_number":118,"context_line":""},{"line_number":119,"context_line":"   $ pip install --user zuul"},{"line_number":120,"context_line":"   $ zuul-runner --api https://zuul.openstack.org --project openstack/nova \\"},{"line_number":121,"context_line":"       --job tempest-full-py3 execute --nodes ssh:rhel8:instance-ip:tdecacqu:/home/tdecacqu"},{"line_number":122,"context_line":"   [...]"},{"line_number":123,"context_line":"   2019-05-07 06:08:01,040 DEBUG zuul.Runner - Ansible output: b\u0027PLAY RECAP *********************************************************************\u0027"},{"line_number":124,"context_line":"   2019-05-07 06:08:01,040 DEBUG zuul.Runner - Ansible output: b\u0027instance-ip                : ok\u003d9    changed\u003d5    unreachable\u003d0    failed\u003d0\u0027"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1fa4df85_bab6423d","line":121,"in_reply_to":"3fa7e38b_e7b9317b","updated":"2020-05-04 15:04:26.000000000","message":"That\u0027s no longer available.","commit_id":"8d5f6068ff6b67f761a5c945f6d95d80dbfd1848"}],"doc/source/reference/developer/specs/index.rst":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"fd769818179584cfafce74911bb2412a78b67745","unresolved":false,"context_lines":[{"line_number":13,"context_line":"   significantly before final implementation, or may never be fully"},{"line_number":14,"context_line":"   completed."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":".. toctree::"},{"line_number":17,"context_line":"   :maxdepth: 1"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"   tenant-scoped-admin-web-API"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_fcda1377","line":16,"updated":"2020-05-04 13:15:27.000000000","message":"docs: toctree contains reference to nonexisting document \u0027reference/developer/specs/zuul-runner\u0027","commit_id":"4560fc0fb16c4cb47be51da2d39c5d91cbf608e7"},{"author":{"_account_id":8367,"name":"Arx Cruz","email":"arxcruz@redhat.com","username":"arxcruz"},"change_message_id":"8ed5f0aac385d79ce2d42de670b121a0a4f78e69","unresolved":false,"context_lines":[{"line_number":20,"context_line":"   kubernetes-operator"},{"line_number":21,"context_line":"   circular-dependencies"},{"line_number":22,"context_line":"   scale-out-scheduler"},{"line_number":23,"context_line":"   zuul-runner"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_87045c80","line":23,"updated":"2020-05-04 14:13:52.000000000","message":"Not sure if it\u0027s possible, but this should be ../../../developer/specs/zuul-runner or just remove it from here...","commit_id":"4560fc0fb16c4cb47be51da2d39c5d91cbf608e7"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"e3225257cc3d30b5d24c27c0f005457b8e8ecedf","unresolved":false,"context_lines":[{"line_number":20,"context_line":"   kubernetes-operator"},{"line_number":21,"context_line":"   circular-dependencies"},{"line_number":22,"context_line":"   scale-out-scheduler"},{"line_number":23,"context_line":"   zuul-runner"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_22f9f64c","line":23,"in_reply_to":"1f493fa4_87045c80","updated":"2020-05-04 15:04:26.000000000","message":"Oops, it seems like a rebase issue.","commit_id":"4560fc0fb16c4cb47be51da2d39c5d91cbf608e7"}],"doc/source/reference/developer/specs/zuul-runner.rst":[{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"a2b379671ce334a0808d0aca01cc0792a5d4c850","unresolved":false,"context_lines":[{"line_number":14,"context_line":"to run a job locally using direct ansible-playbook commands execution."},{"line_number":15,"context_line":"The scope includes two use cases:"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"* Running a local build of a job that has already ran."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"* Being able to run any job from any Zuul instance, tenant, project"},{"line_number":20,"context_line":"  or pipeline regardless if it has run or not."}],"source_content_type":"text/x-rst","patch_set":6,"id":"ff570b3c_c8d5c2bb","line":17,"updated":"2020-05-11 16:05:25.000000000","message":"Can you describe how this process would look?  I don\u0027t see any description below of how a user would invoke zuul-runner to run a job that has already run.  I\u0027m curious if you could point it at a zuul inventory file and have it automatically work?  How would it reproduce the previous merge state?","commit_id":"ec04ccb13471e31e49637635d5d72f12098ff663"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"cc2a568bb45af07d0ef47af7c239646e275cd113","unresolved":false,"context_lines":[{"line_number":14,"context_line":"to run a job locally using direct ansible-playbook commands execution."},{"line_number":15,"context_line":"The scope includes two use cases:"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"* Running a local build of a job that has already ran."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"* Being able to run any job from any Zuul instance, tenant, project"},{"line_number":20,"context_line":"  or pipeline regardless if it has run or not."}],"source_content_type":"text/x-rst","patch_set":6,"id":"bf51134e_a925025f","line":17,"updated":"2020-07-17 16:14:29.000000000","message":"I think for the use case of \"recreate a build that failed in the gate\" it\u0027s important to have the exact merge state of the projects.  Zuul has that from the mergers (the mergers tell the executors exactly what to do), so we can expose that.","commit_id":"ec04ccb13471e31e49637635d5d72f12098ff663"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"5d48370cfb3ffe034fa94fbc9a42b45c4b3df07f","unresolved":false,"context_lines":[{"line_number":14,"context_line":"to run a job locally using direct ansible-playbook commands execution."},{"line_number":15,"context_line":"The scope includes two use cases:"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"* Running a local build of a job that has already ran."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"* Being able to run any job from any Zuul instance, tenant, project"},{"line_number":20,"context_line":"  or pipeline regardless if it has run or not."}],"source_content_type":"text/x-rst","patch_set":6,"id":"ff570b3c_3ec63869","line":17,"in_reply_to":"ff570b3c_c8d5c2bb","updated":"2020-05-11 17:18:55.000000000","message":"Next PS mention that this can be done using an inventory file indeed, or using the `--change-url` command line argument too.\n\nTo reproduce the exact merge state, we would need to make that information available, otherwise I think it\u0027s ok to use the same strategy and use the current state of required project.","commit_id":"ec04ccb13471e31e49637635d5d72f12098ff663"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"a2b379671ce334a0808d0aca01cc0792a5d4c850","unresolved":false,"context_lines":[{"line_number":17,"context_line":"* Running a local build of a job that has already ran."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"* Being able to run any job from any Zuul instance, tenant, project"},{"line_number":20,"context_line":"  or pipeline regardless if it has run or not."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Zuul Job Execution Context"},{"line_number":23,"context_line":"--------------------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ff570b3c_28da7ee8","line":20,"updated":"2020-05-11 16:05:25.000000000","message":"This seems to be fairly well described below.","commit_id":"ec04ccb13471e31e49637635d5d72f12098ff663"},{"author":{"_account_id":27336,"name":"XiaojueGuan","email":"xiaojueguan@gmail.com","username":"XiaojueGuan"},"change_message_id":"56759027d052e1d52692e1d3ed72930a2f93197b","unresolved":false,"context_lines":[{"line_number":25,"context_line":"One of the key parts of making the Zuul Runner command line utility"},{"line_number":26,"context_line":"is to reproduce as close as possible the zuul service environment."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"A Zuul jobs requires:"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"- Test resources"},{"line_number":31,"context_line":"- Copies of the required projects"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ff570b3c_651c9f6a","line":28,"range":{"start_line":28,"start_character":0,"end_line":28,"end_character":21},"updated":"2020-05-11 15:07:00.000000000","message":"a jobs?","commit_id":"ec04ccb13471e31e49637635d5d72f12098ff663"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"5d48370cfb3ffe034fa94fbc9a42b45c4b3df07f","unresolved":false,"context_lines":[{"line_number":25,"context_line":"One of the key parts of making the Zuul Runner command line utility"},{"line_number":26,"context_line":"is to reproduce as close as possible the zuul service environment."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"A Zuul jobs requires:"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"- Test resources"},{"line_number":31,"context_line":"- Copies of the required projects"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ff570b3c_7ea550b5","line":28,"range":{"start_line":28,"start_character":0,"end_line":28,"end_character":21},"in_reply_to":"ff570b3c_651c9f6a","updated":"2020-05-11 17:18:55.000000000","message":"Done","commit_id":"ec04ccb13471e31e49637635d5d72f12098ff663"},{"author":{"_account_id":16068,"name":"Tobias Henkel","email":"tobias.henkel@bmw.de","username":"tobias.henkel"},"change_message_id":"da782cdefe7fdc22e55f47fb126a05c499d781ea","unresolved":false,"context_lines":[{"line_number":36,"context_line":"Test Resources"},{"line_number":37,"context_line":"~~~~~~~~~~~~~~"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"The Zuul Runner shall requires the user to provide test resources"},{"line_number":40,"context_line":"as an Ansible inventory, similarly to what Nodepool provides to the"},{"line_number":41,"context_line":"Zuul Executor. The Runner would enrich the inventory with the zuul"},{"line_number":42,"context_line":"vars."}],"source_content_type":"text/x-rst","patch_set":6,"id":"ff570b3c_c5b64bda","line":39,"range":{"start_line":39,"start_character":22,"end_line":39,"end_character":30},"updated":"2020-05-11 15:29:20.000000000","message":"shall require","commit_id":"ec04ccb13471e31e49637635d5d72f12098ff663"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"5d48370cfb3ffe034fa94fbc9a42b45c4b3df07f","unresolved":false,"context_lines":[{"line_number":36,"context_line":"Test Resources"},{"line_number":37,"context_line":"~~~~~~~~~~~~~~"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"The Zuul Runner shall requires the user to provide test resources"},{"line_number":40,"context_line":"as an Ansible inventory, similarly to what Nodepool provides to the"},{"line_number":41,"context_line":"Zuul Executor. The Runner would enrich the inventory with the zuul"},{"line_number":42,"context_line":"vars."}],"source_content_type":"text/x-rst","patch_set":6,"id":"ff570b3c_1e941444","line":39,"range":{"start_line":39,"start_character":22,"end_line":39,"end_character":30},"in_reply_to":"ff570b3c_c5b64bda","updated":"2020-05-11 17:18:55.000000000","message":"Done","commit_id":"ec04ccb13471e31e49637635d5d72f12098ff663"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"a2b379671ce334a0808d0aca01cc0792a5d4c850","unresolved":false,"context_lines":[{"line_number":39,"context_line":"The Zuul Runner shall requires the user to provide test resources"},{"line_number":40,"context_line":"as an Ansible inventory, similarly to what Nodepool provides to the"},{"line_number":41,"context_line":"Zuul Executor. The Runner would enrich the inventory with the zuul"},{"line_number":42,"context_line":"vars."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Required Projects"},{"line_number":45,"context_line":"~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ff570b3c_08d7bac1","line":42,"updated":"2020-05-11 16:05:25.000000000","message":"I don\u0027t see anything about this below.  How does the user go about doing this?","commit_id":"ec04ccb13471e31e49637635d5d72f12098ff663"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"5d48370cfb3ffe034fa94fbc9a42b45c4b3df07f","unresolved":false,"context_lines":[{"line_number":39,"context_line":"The Zuul Runner shall requires the user to provide test resources"},{"line_number":40,"context_line":"as an Ansible inventory, similarly to what Nodepool provides to the"},{"line_number":41,"context_line":"Zuul Executor. The Runner would enrich the inventory with the zuul"},{"line_number":42,"context_line":"vars."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Required Projects"},{"line_number":45,"context_line":"~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ff570b3c_1ea2549b","line":42,"in_reply_to":"ff570b3c_08d7bac1","updated":"2020-05-11 17:18:55.000000000","message":"Next PS includes an example.","commit_id":"ec04ccb13471e31e49637635d5d72f12098ff663"},{"author":{"_account_id":16068,"name":"Tobias Henkel","email":"tobias.henkel@bmw.de","username":"tobias.henkel"},"change_message_id":"f81fad98930531ad3e1f65c86be327a1ce11fbf3","unresolved":false,"context_lines":[{"line_number":60,"context_line":"Secrets"},{"line_number":61,"context_line":"~~~~~~~"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"The Zuul Runner shall require the user to provide copies of"},{"line_number":64,"context_line":"any secrets required by the job."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ff570b3c_123d2bbb","line":64,"range":{"start_line":63,"start_character":0,"end_line":64,"end_character":32},"updated":"2020-05-11 14:34:38.000000000","message":"How does this work together with base jobs (e.g. log upload). Those secrets are generally not available to any user. I guess there is some filtering required to limit the playbooks that are being run? Or do we need some sort of job attribute that allows certain playbooks to be executed locally?","commit_id":"ec04ccb13471e31e49637635d5d72f12098ff663"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"a2b379671ce334a0808d0aca01cc0792a5d4c850","unresolved":false,"context_lines":[{"line_number":61,"context_line":"~~~~~~~"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"The Zuul Runner shall require the user to provide copies of"},{"line_number":64,"context_line":"any secrets required by the job."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ff570b3c_68e476ad","line":64,"updated":"2020-05-11 16:05:25.000000000","message":"I think post actions are going to be important for people to test (fetching logs from test nodes, etc).  Maybe we could add 2 options, both disabled by default:\n\n--post: run all post playbooks except the base job post playbook\n--base-post: run the base job post playbook\n\nBut having an option to supply secrets may still be important.  For example, that could be very useful testing a docker upload job.  But maybe they can just be supplied as extra job variables.  How that looks may depend on what the input inventory looks like.","commit_id":"ec04ccb13471e31e49637635d5d72f12098ff663"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"cc2a568bb45af07d0ef47af7c239646e275cd113","unresolved":false,"context_lines":[{"line_number":61,"context_line":"~~~~~~~"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"The Zuul Runner shall require the user to provide copies of"},{"line_number":64,"context_line":"any secrets required by the job."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":6,"id":"bf51134e_892abe29","line":64,"updated":"2020-07-17 16:14:29.000000000","message":"I think the matcher idea could work, but uniquely identifying a post playbook may be tricky.  Most of ours are named \"post.yaml\".  They would probably need to be fully qualified with the name of the repo and the path.\n\nStill, I think specifying that you want to run everything except the log collection is a common enough use case that it should be easy, and adding \"--post\" 9 times for the 9 playbooks that you do want to run just to avoid running the 10th doesn\u0027t sound easy.  So if we do that, we may want to also have an inverse option, so a user could just say \"--no-post opendev.org/base-jobs/playbooks/base/logs.yaml\".\n\nFurther, it seems that if we\u0027re specifying the full path, we probably don\u0027t need to distinguish between pre and post?  Maybe we can just say \"--no-playbook\"?  It\u0027s unlikely that the same playbook would be used in both pre and post.  At least, no more likely than the same playbook showing up twice in pre or post.\n\nFinally, maybe we could have an option to list the playbooks with numeric indexes.  So you could say \"zuul-runner --list-playbooks\" and it would print out:\n\n0: opendev.org/base-jobs/playbooks/pre.yaml\n...\n10: opendev.org/base-jobs/playbooks/post.yaml\n\nWe could then say \"--no-playbook 10\" or \"--no-playbook -1\", or \"--playbook 1..9\".","commit_id":"ec04ccb13471e31e49637635d5d72f12098ff663"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"e8e4f5544b710aad16f946c4c97698aadaffebf5","unresolved":false,"context_lines":[{"line_number":60,"context_line":"Secrets"},{"line_number":61,"context_line":"~~~~~~~"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"The Zuul Runner shall require the user to provide copies of"},{"line_number":64,"context_line":"any secrets required by the job."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ff570b3c_c5880b21","line":64,"range":{"start_line":63,"start_character":0,"end_line":64,"end_character":32},"in_reply_to":"ff570b3c_123d2bbb","updated":"2020-05-11 15:25:21.000000000","message":"I think we said that zuul-runner would not run post action. Alternatively we can detect such `site` secret and provide drop-in replacement that uses localhost, one of the initial implementation did that, but that is a bit tricky and skipping post-run seems easier.","commit_id":"ec04ccb13471e31e49637635d5d72f12098ff663"},{"author":{"_account_id":16068,"name":"Tobias Henkel","email":"tobias.henkel@bmw.de","username":"tobias.henkel"},"change_message_id":"0af35485c6072bf98d55e9d24156fdc6d7bab722","unresolved":false,"context_lines":[{"line_number":61,"context_line":"~~~~~~~"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"The Zuul Runner shall require the user to provide copies of"},{"line_number":64,"context_line":"any secrets required by the job."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":6,"id":"bf51134e_2252afdf","line":64,"in_reply_to":"ff570b3c_5eda0c17","updated":"2020-07-17 12:07:36.000000000","message":"I think just --post won\u0027t work in our environment because we have a stack of base jobs using post playbooks. I like the idea about the \u0027--post \u003cmatcher\u003e\u0027. In think this should be an option that can be repeated to make it possible to select the post playbooks that are interesting to the user (same with --pre \u003cmatcher\u003e\u0027.","commit_id":"ec04ccb13471e31e49637635d5d72f12098ff663"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"5d48370cfb3ffe034fa94fbc9a42b45c4b3df07f","unresolved":false,"context_lines":[{"line_number":61,"context_line":"~~~~~~~"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"The Zuul Runner shall require the user to provide copies of"},{"line_number":64,"context_line":"any secrets required by the job."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ff570b3c_5eda0c17","line":64,"in_reply_to":"ff570b3c_68e476ad","updated":"2020-05-11 17:18:55.000000000","message":"Or that could be implemented using a single `--post matcher` where matcher is a regular expression that select the playbook by name. Perhaps that can be done as a follow-up?","commit_id":"ec04ccb13471e31e49637635d5d72f12098ff663"},{"author":{"_account_id":16068,"name":"Tobias Henkel","email":"tobias.henkel@bmw.de","username":"tobias.henkel"},"change_message_id":"da782cdefe7fdc22e55f47fb126a05c499d781ea","unresolved":false,"context_lines":[{"line_number":60,"context_line":"Secrets"},{"line_number":61,"context_line":"~~~~~~~"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"The Zuul Runner shall require the user to provide copies of"},{"line_number":64,"context_line":"any secrets required by the job."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ff570b3c_45d7dbee","line":64,"range":{"start_line":63,"start_character":0,"end_line":64,"end_character":32},"in_reply_to":"ff570b3c_c5880b21","updated":"2020-05-11 15:29:20.000000000","message":"Having zuul-runner not executing post playbooks would solve this issue mostly I guess. But I think we should mention that in the spec as well.","commit_id":"ec04ccb13471e31e49637635d5d72f12098ff663"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"a2b379671ce334a0808d0aca01cc0792a5d4c850","unresolved":false,"context_lines":[{"line_number":106,"context_line":"     -g GIT_DIR, --git-dir GIT_DIR"},{"line_number":107,"context_line":"                           the git merger dir"},{"line_number":108,"context_line":"     -D DEPENDS_ON, --depends-on DEPENDS_ON"},{"line_number":109,"context_line":"                           reproduce job with speculative depends-on"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"   commands:"},{"line_number":112,"context_line":"     valid commands"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ff570b3c_48e1b29a","line":109,"updated":"2020-05-11 16:05:25.000000000","message":"It seems weird to have a \u0027depends-on\u0027 option with no change.  Perhaps the option should just be called \"--change-url\", and it could be a multiple-value option that points to change urls.","commit_id":"ec04ccb13471e31e49637635d5d72f12098ff663"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"5d48370cfb3ffe034fa94fbc9a42b45c4b3df07f","unresolved":false,"context_lines":[{"line_number":106,"context_line":"     -g GIT_DIR, --git-dir GIT_DIR"},{"line_number":107,"context_line":"                           the git merger dir"},{"line_number":108,"context_line":"     -D DEPENDS_ON, --depends-on DEPENDS_ON"},{"line_number":109,"context_line":"                           reproduce job with speculative depends-on"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"   commands:"},{"line_number":112,"context_line":"     valid commands"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ff570b3c_3ed758f0","line":109,"in_reply_to":"ff570b3c_48e1b29a","updated":"2020-05-11 17:18:55.000000000","message":"Done","commit_id":"ec04ccb13471e31e49637635d5d72f12098ff663"},{"author":{"_account_id":7069,"name":"Joshua Hesketh","email":"josh@nitrotech.org","username":"jhesketh"},"change_message_id":"c1d9f294334af204cb304f9c4ced01866410402f","unresolved":true,"context_lines":[{"line_number":11,"context_line":"service to run a job locally."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"To that end, the Zuul Project should create a command line utility"},{"line_number":14,"context_line":"to run a job locally using direct ansible-playbook commands execution."},{"line_number":15,"context_line":"The scope includes two use cases:"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"* Running a local build of a job that has already ran, for example to"}],"source_content_type":"text/x-rst","patch_set":8,"id":"2933e61c_1b2d4d02","line":14,"updated":"2020-12-10 02:03:34.000000000","message":"It\u0027s probably obvious, but the zuul-executor should do little more than collect the job and run the zuul runner (at least in terms of code path, I wouldn\u0027t suggest the implementation necessarily call out to a zuul-runner binary).","commit_id":"8317025b850d7b54f79fed9839e9d0fcf8aaf5a6"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"7df09eb3390fff745fcf192c806c05a18fab1f09","unresolved":true,"context_lines":[{"line_number":11,"context_line":"service to run a job locally."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"To that end, the Zuul Project should create a command line utility"},{"line_number":14,"context_line":"to run a job locally using direct ansible-playbook commands execution."},{"line_number":15,"context_line":"The scope includes two use cases:"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"* Running a local build of a job that has already ran, for example to"}],"source_content_type":"text/x-rst","patch_set":8,"id":"543bf576_26438faa","line":14,"in_reply_to":"2933e61c_1b2d4d02","updated":"2020-12-14 23:03:20.000000000","message":"That\u0027s correct, the zuul-runner shall re-use most of the zuul-executor code without interfering with the service","commit_id":"8317025b850d7b54f79fed9839e9d0fcf8aaf5a6"},{"author":{"_account_id":7069,"name":"Joshua Hesketh","email":"josh@nitrotech.org","username":"jhesketh"},"change_message_id":"c1d9f294334af204cb304f9c4ced01866410402f","unresolved":true,"context_lines":[{"line_number":20,"context_line":"  line argument."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"* Being able to run any job from any Zuul instance, tenant, project"},{"line_number":23,"context_line":"  or pipeline regardless if it has run or not."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Zuul Job Execution Context"},{"line_number":26,"context_line":"--------------------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"40f53eae_f74eced7","line":23,"updated":"2020-12-10 02:03:34.000000000","message":"One of the big use cases I was originally designing this for was to try out new job definitions locally.\n\nBeing able to take an uncommitted set of changes to zuul.d/, point zuul-runner at an API endpoint, and have everything calculated and ran as if it were merged.\n\nPerhaps that\u0027s not the scope of this spec though and could be future work.","commit_id":"8317025b850d7b54f79fed9839e9d0fcf8aaf5a6"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"7df09eb3390fff745fcf192c806c05a18fab1f09","unresolved":true,"context_lines":[{"line_number":20,"context_line":"  line argument."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"* Being able to run any job from any Zuul instance, tenant, project"},{"line_number":23,"context_line":"  or pipeline regardless if it has run or not."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Zuul Job Execution Context"},{"line_number":26,"context_line":"--------------------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"e57a836f_da2ad8ab","line":23,"in_reply_to":"40f53eae_f74eced7","updated":"2020-12-14 23:03:20.000000000","message":"Loading local zuul.d is indeed out of scope, the current implementation gets job details of an existing layout from the api. Though local ansible playbook modification are supported.","commit_id":"8317025b850d7b54f79fed9839e9d0fcf8aaf5a6"},{"author":{"_account_id":7069,"name":"Joshua Hesketh","email":"josh@nitrotech.org","username":"jhesketh"},"change_message_id":"c1d9f294334af204cb304f9c4ced01866410402f","unresolved":true,"context_lines":[{"line_number":57,"context_line":"       worker:"},{"line_number":58,"context_line":"         ansible_host: ip-node-2"},{"line_number":59,"context_line":"         ansible_user: user-node-2"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Required Projects"}],"source_content_type":"text/x-rst","patch_set":8,"id":"04ebd5a0_8f46335d","line":60,"updated":"2020-12-10 02:03:34.000000000","message":"Perfect for the scope of this work, but I also envisioned it\u0027d be awesome if a user could launch nodes in a cloud using images from nodepool or something just by supplying their own credentials (or libvirtd etc). This would likely be a big task though and certainly something outside of this spec.","commit_id":"8317025b850d7b54f79fed9839e9d0fcf8aaf5a6"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"7df09eb3390fff745fcf192c806c05a18fab1f09","unresolved":true,"context_lines":[{"line_number":57,"context_line":"       worker:"},{"line_number":58,"context_line":"         ansible_host: ip-node-2"},{"line_number":59,"context_line":"         ansible_user: user-node-2"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Required Projects"}],"source_content_type":"text/x-rst","patch_set":8,"id":"2377a81b_910aade5","line":60,"in_reply_to":"04ebd5a0_8f46335d","updated":"2020-12-14 23:03:20.000000000","message":"I tried running nodepool driver locally with https://review.opendev.org/c/zuul/nodepool/+/639632 for zuul-runner, but that more works needs to be specified for zuul-runner integration.","commit_id":"8317025b850d7b54f79fed9839e9d0fcf8aaf5a6"},{"author":{"_account_id":7069,"name":"Joshua Hesketh","email":"josh@nitrotech.org","username":"jhesketh"},"change_message_id":"c1d9f294334af204cb304f9c4ced01866410402f","unresolved":true,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"* \"--no-playbook 10\""},{"line_number":98,"context_line":"* \"--no-playbook -1\""},{"line_number":99,"context_line":"* \"--playbook 1..9\""},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Alternatively, a matcher may be implemented to express:"},{"line_number":102,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"85389eae_9975ecf4","line":99,"updated":"2020-12-10 02:03:34.000000000","message":"I think it could also be helpful to provide `--skip-pre-playbooks` and `--skip-post-playbooks` as I suspect they\u0027ll be most common.\n\nAdditionally a dry-run or keeping --list-playbooks to print out what will happen with the filters would be helpful.","commit_id":"8317025b850d7b54f79fed9839e9d0fcf8aaf5a6"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"3ddf984375ad98d206023a11886c46250d83c14f","unresolved":false,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Alternatively, a matcher may be implemented to express:"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"* \"--skip \u0027opendev.org/base-jobs/playbooks/post.yaml\u0027\""},{"line_number":104,"context_line":""},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"Secrets"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9f560f44_536c7307","line":103,"updated":"2020-09-03 21:00:27.000000000","message":"Nit: if we do this, it probably should be \"skip-playbook\" or something similar so we don\u0027t back ourselves into a corner if there\u0027s something else we want to skip later.","commit_id":"8317025b850d7b54f79fed9839e9d0fcf8aaf5a6"},{"author":{"_account_id":7069,"name":"Joshua Hesketh","email":"josh@nitrotech.org","username":"jhesketh"},"change_message_id":"c1d9f294334af204cb304f9c4ced01866410402f","unresolved":true,"context_lines":[{"line_number":107,"context_line":"~~~~~~~"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"The Zuul Runner shall require the user to provide copies of"},{"line_number":110,"context_line":"any secrets required by the job."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Implementation"},{"line_number":113,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dfecafb4_859dae0d","line":110,"updated":"2020-12-10 02:03:34.000000000","message":"(nit) how? As CLI params, a values.yaml etc?","commit_id":"8317025b850d7b54f79fed9839e9d0fcf8aaf5a6"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"7df09eb3390fff745fcf192c806c05a18fab1f09","unresolved":true,"context_lines":[{"line_number":107,"context_line":"~~~~~~~"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"The Zuul Runner shall require the user to provide copies of"},{"line_number":110,"context_line":"any secrets required by the job."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Implementation"},{"line_number":113,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"4b1c72df_d13788ef","line":110,"in_reply_to":"dfecafb4_859dae0d","updated":"2020-12-14 23:03:20.000000000","message":"I guess through a configuration file.","commit_id":"8317025b850d7b54f79fed9839e9d0fcf8aaf5a6"},{"author":{"_account_id":7069,"name":"Joshua Hesketh","email":"josh@nitrotech.org","username":"jhesketh"},"change_message_id":"c1d9f294334af204cb304f9c4ced01866410402f","unresolved":true,"context_lines":[{"line_number":120,"context_line":"Zuul Runner CLI"},{"line_number":121,"context_line":"---------------"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"Here is the proposed usage for the CLI:"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":".. code-block:: console"},{"line_number":126,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"6fce8002_6ac3510f","line":123,"updated":"2020-12-10 02:03:34.000000000","message":"(nit) might be worth mentioning that this isn\u0027t complete. For example, it\u0027s missing the --list-playbooks and filters etc. I suspect the interface will change as the implementation grows so I wouldn\u0027t be too concerned about getting it right in the spec.","commit_id":"8317025b850d7b54f79fed9839e9d0fcf8aaf5a6"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"7df09eb3390fff745fcf192c806c05a18fab1f09","unresolved":true,"context_lines":[{"line_number":120,"context_line":"Zuul Runner CLI"},{"line_number":121,"context_line":"---------------"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"Here is the proposed usage for the CLI:"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":".. code-block:: console"},{"line_number":126,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"427725a4_76e2b1b7","line":123,"in_reply_to":"6fce8002_6ac3510f","updated":"2020-12-14 23:03:20.000000000","message":"At some point we can remove the spec and replace it with the actual documentation.","commit_id":"8317025b850d7b54f79fed9839e9d0fcf8aaf5a6"}]}
