)]}'
{"specs/pike/nginx-uwsgi.rst":[{"author":{"_account_id":538,"name":"Major Hayden","email":"major@mhtx.net","username":"rackerhacker"},"change_message_id":"7aecdc780f4909cddcff344d0e158326b81b0fbc","unresolved":false,"context_lines":[{"line_number":28,"context_line":"  API services."},{"line_number":29,"context_line":"* Performance - there are performance benefits to utilizing a web server such as"},{"line_number":30,"context_line":"  NGinx."},{"line_number":31,"context_line":"* Service restarts - we should be able to utilize uWSGI \u0026 NGinx to reload"},{"line_number":32,"context_line":"  services in a more efficient manner."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_43c27f87","line":31,"updated":"2017-04-24 13:07:00.000000000","message":"Nit: Should probably make \"nginx\" all lowercase (like product name) or all uppercase \"NGINX\" (like trademark).","commit_id":"48832799e8f8468254af73190b39a275d9428d23"},{"author":{"_account_id":2799,"name":"Andy McCrae","email":"andy.mccrae@googlemail.com","username":"andrew-mccrae"},"change_message_id":"e345d698b495837d0926e53e7d0d3e728fa8f520","unresolved":false,"context_lines":[{"line_number":28,"context_line":"  API services."},{"line_number":29,"context_line":"* Performance - there are performance benefits to utilizing a web server such as"},{"line_number":30,"context_line":"  NGinx."},{"line_number":31,"context_line":"* Service restarts - we should be able to utilize uWSGI \u0026 NGinx to reload"},{"line_number":32,"context_line":"  services in a more efficient manner."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_2e06b81e","line":31,"in_reply_to":"5ff73747_43c27f87","updated":"2017-04-27 15:26:17.000000000","message":"I can fix that up. I\u0027ll do that in the next draft!","commit_id":"48832799e8f8468254af73190b39a275d9428d23"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"5e9cfa01118a0d7800c25e86a698caeff0f6601b","unresolved":false,"context_lines":[{"line_number":54,"context_line":"  be a child of ``nginx_all``, allowing us to configure NGinx per service"},{"line_number":55,"context_line":"  if required. For example, Swift may need a dedicated NGinx server for the"},{"line_number":56,"context_line":"  proxy service."},{"line_number":57,"context_line":"  Add NGinx as a role requirement for each role, and call the specifics tasks"},{"line_number":58,"context_line":"  from the role (as in the WIP patch listed at the bottom of the spec). This"},{"line_number":59,"context_line":"  would allow us to manage where NGinx is running and not enforce a specific"},{"line_number":60,"context_line":"  architecture. NB NGinx would then \"not\" be a dependency and would have to"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_34115453","line":57,"range":{"start_line":57,"start_character":2,"end_line":57,"end_character":47},"updated":"2017-04-28 08:00:28.000000000","message":"Could deserve a rephrase with what\u0027s below.","commit_id":"48832799e8f8468254af73190b39a275d9428d23"},{"author":{"_account_id":15993,"name":"Amy Marrich","display_name":"Amy Marrich (spotz)","email":"amy@demarco.com","username":"amarrich"},"change_message_id":"d023e0e2fdac5eea77d3b4b78a432ef6113f2a06","unresolved":false,"context_lines":[{"line_number":54,"context_line":"  be a child of ``nginx_all``, allowing us to configure NGinx per service"},{"line_number":55,"context_line":"  if required. For example, Swift may need a dedicated NGinx server for the"},{"line_number":56,"context_line":"  proxy service."},{"line_number":57,"context_line":"  Add NGinx as a role requirement for each role, and call the specifics tasks"},{"line_number":58,"context_line":"  from the role (as in the WIP patch listed at the bottom of the spec). This"},{"line_number":59,"context_line":"  would allow us to manage where NGinx is running and not enforce a specific"},{"line_number":60,"context_line":"  architecture. NB NGinx would then \"not\" be a dependency and would have to"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f044301_cc32d45e","line":57,"updated":"2017-05-10 13:19:37.000000000","message":"call the specific tasks","commit_id":"48832799e8f8468254af73190b39a275d9428d23"},{"author":{"_account_id":538,"name":"Major Hayden","email":"major@mhtx.net","username":"rackerhacker"},"change_message_id":"7aecdc780f4909cddcff344d0e158326b81b0fbc","unresolved":false,"context_lines":[{"line_number":58,"context_line":"  from the role (as in the WIP patch listed at the bottom of the spec). This"},{"line_number":59,"context_line":"  would allow us to manage where NGinx is running and not enforce a specific"},{"line_number":60,"context_line":"  architecture. NB NGinx would then \"not\" be a dependency and would have to"},{"line_number":61,"context_line":"  be added to the installation playbooks per service."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Alternatives"},{"line_number":64,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_23bf73fc","line":61,"updated":"2017-04-24 13:07:00.000000000","message":"I\u0027m confused here. Are we talking about running nginx in each container where a service needs it? Or are we talking about making containers with only nginx in them that proxy into uwsgi in other containers?","commit_id":"48832799e8f8468254af73190b39a275d9428d23"},{"author":{"_account_id":2799,"name":"Andy McCrae","email":"andy.mccrae@googlemail.com","username":"andrew-mccrae"},"change_message_id":"e345d698b495837d0926e53e7d0d3e728fa8f520","unresolved":false,"context_lines":[{"line_number":58,"context_line":"  from the role (as in the WIP patch listed at the bottom of the spec). This"},{"line_number":59,"context_line":"  would allow us to manage where NGinx is running and not enforce a specific"},{"line_number":60,"context_line":"  architecture. NB NGinx would then \"not\" be a dependency and would have to"},{"line_number":61,"context_line":"  be added to the installation playbooks per service."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Alternatives"},{"line_number":64,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_6e5e0013","line":61,"in_reply_to":"5ff73747_23bf73fc","updated":"2017-04-27 15:26:17.000000000","message":"Well - either really. Its about adding flexibility to decide where your nginx runs - By default I\u0027m going to suggest specific containers with nginx in them - e.g. 1 on each infra host, with each service utilizing the same 3 nginx hosts.\n\nHowever you could just as easily point the nginx_nova_placement role (for example) to deploy on the same container as nova_placement service.\n\nThe key (to me) is that the deployer can control where the service is deployed, similar to how other services are deployed, and could therefore scale out nginx separately, and if needed - specifically per service.","commit_id":"48832799e8f8468254af73190b39a275d9428d23"},{"author":{"_account_id":17799,"name":"Logan V","email":"logan2211@gmail.com","username":"Logan2211"},"change_message_id":"a9e78de3740fa2db8c79ea49bdc482ca579d27f1","unresolved":false,"context_lines":[{"line_number":58,"context_line":"  from the role (as in the WIP patch listed at the bottom of the spec). This"},{"line_number":59,"context_line":"  would allow us to manage where NGinx is running and not enforce a specific"},{"line_number":60,"context_line":"  architecture. NB NGinx would then \"not\" be a dependency and would have to"},{"line_number":61,"context_line":"  be added to the installation playbooks per service."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Alternatives"},{"line_number":64,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"df140735_c9cd2132","line":61,"in_reply_to":"5ff73747_46cf4829","updated":"2017-06-01 18:01:40.000000000","message":"I\u0027m mostly a layman on this topic. I understand the general reasoning behind the eventlet -\u003e uWSGI change, but rather than looking at whether \"uwsgi standalone\" is necessary and/or useful, I\u0027m accepting that uWSGI standalone is the starting point change as this spec lays it out, but I don\u0027t understand quite yet what uWSGI+nginx adds for us that makes it worth all the additional complexity.\n\nAfter reading the spec I wonder why we aren\u0027t just specing out the eventlet -\u003e uWSGI change. Does nginx need to be part of this spec? Does nginx need to be part of OSA at all? If so, why?","commit_id":"48832799e8f8468254af73190b39a275d9428d23"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"5e9cfa01118a0d7800c25e86a698caeff0f6601b","unresolved":false,"context_lines":[{"line_number":58,"context_line":"  from the role (as in the WIP patch listed at the bottom of the spec). This"},{"line_number":59,"context_line":"  would allow us to manage where NGinx is running and not enforce a specific"},{"line_number":60,"context_line":"  architecture. NB NGinx would then \"not\" be a dependency and would have to"},{"line_number":61,"context_line":"  be added to the installation playbooks per service."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Alternatives"},{"line_number":64,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_74247caf","line":61,"in_reply_to":"5ff73747_597f7914","updated":"2017-04-28 08:00:28.000000000","message":"I\u0027d agree with this hierarchical grouping","commit_id":"48832799e8f8468254af73190b39a275d9428d23"},{"author":{"_account_id":2799,"name":"Andy McCrae","email":"andy.mccrae@googlemail.com","username":"andrew-mccrae"},"change_message_id":"e4879bf6be4d59b70eb0190ced3ddde655690b92","unresolved":false,"context_lines":[{"line_number":58,"context_line":"  from the role (as in the WIP patch listed at the bottom of the spec). This"},{"line_number":59,"context_line":"  would allow us to manage where NGinx is running and not enforce a specific"},{"line_number":60,"context_line":"  architecture. NB NGinx would then \"not\" be a dependency and would have to"},{"line_number":61,"context_line":"  be added to the installation playbooks per service."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Alternatives"},{"line_number":64,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_4633c863","line":61,"in_reply_to":"5ff73747_597f7914","updated":"2017-05-02 13:03:04.000000000","message":"Yeah so in theory,\n\n[nginx_all:children]\nnginx_nova\nnginx_keystone\nnginx_glance\n...\n\nIn nova_nginx you could have the specific services.\nOf course this would all be defaulted to whatever we decided is best (for example, having 1 nginx host per infra server, which contains all sub_groups) - but would allow control if the deployer wanted to run dedicated nova nginx servers (for example just specify nginx_nova hosts).","commit_id":"48832799e8f8468254af73190b39a275d9428d23"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"5e9cfa01118a0d7800c25e86a698caeff0f6601b","unresolved":false,"context_lines":[{"line_number":58,"context_line":"  from the role (as in the WIP patch listed at the bottom of the spec). This"},{"line_number":59,"context_line":"  would allow us to manage where NGinx is running and not enforce a specific"},{"line_number":60,"context_line":"  architecture. NB NGinx would then \"not\" be a dependency and would have to"},{"line_number":61,"context_line":"  be added to the installation playbooks per service."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Alternatives"},{"line_number":64,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_b471fa46","line":61,"in_reply_to":"5ff73747_6e5e0013","updated":"2017-04-28 08:00:28.000000000","message":"I think this paragraph deserves a rephrasing, it looks confusing to me.\n\nFor me the best way to control where you want to target your role is the playbook.\n\nI\u0027d rather not put nginx as a role meta requirement, because this means it\u0027s always gonna be deployed everywhere. I\u0027d rather call it at the same place we do our playbooks. Keep the same flexibility, but not forces a dependency.\n\nIMO a dependency is a strong dependency on what needs to run in order for your role to work. Each role can definitely not need nginx, because uswgi can be \"working on its own\".","commit_id":"48832799e8f8468254af73190b39a275d9428d23"},{"author":{"_account_id":14805,"name":"Jimmy McCrory","email":"jimmy.mccrory@gmail.com","username":"jimmy-mccrory"},"change_message_id":"e94a4d2827d95778883737183b7a2305e8c2166b","unresolved":false,"context_lines":[{"line_number":58,"context_line":"  from the role (as in the WIP patch listed at the bottom of the spec). This"},{"line_number":59,"context_line":"  would allow us to manage where NGinx is running and not enforce a specific"},{"line_number":60,"context_line":"  architecture. NB NGinx would then \"not\" be a dependency and would have to"},{"line_number":61,"context_line":"  be added to the installation playbooks per service."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Alternatives"},{"line_number":64,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_597f7914","line":61,"in_reply_to":"5ff73747_6e5e0013","updated":"2017-04-28 07:21:00.000000000","message":"Specific nginx containers on infra hosts would be another child group of \u0027nginx_all\u0027?","commit_id":"48832799e8f8468254af73190b39a275d9428d23"},{"author":{"_account_id":2799,"name":"Andy McCrae","email":"andy.mccrae@googlemail.com","username":"andrew-mccrae"},"change_message_id":"e4879bf6be4d59b70eb0190ced3ddde655690b92","unresolved":false,"context_lines":[{"line_number":58,"context_line":"  from the role (as in the WIP patch listed at the bottom of the spec). This"},{"line_number":59,"context_line":"  would allow us to manage where NGinx is running and not enforce a specific"},{"line_number":60,"context_line":"  architecture. NB NGinx would then \"not\" be a dependency and would have to"},{"line_number":61,"context_line":"  be added to the installation playbooks per service."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Alternatives"},{"line_number":64,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_46cf4829","line":61,"in_reply_to":"5ff73747_b471fa46","updated":"2017-05-02 13:03:04.000000000","message":"So we can include the role tasks to setup the vhosts which should work ok - but it would still need to be targeted against a host (and in this case an nginx_group host)\n\nWe may run into issues if it\u0027s not a dependency/include because we need to utilise the nginx role handlers for restarts/managing within the role. We can include the role itself using the \"include_role\" module, this may not be sufficient to allow access to the handlers - would need to look into that.\n\nIMO it is a strong dependency until we add the ability to deploy using \"not nginx\" which at the moment we don\u0027t. If we want nginx to be optional then we need a tested/working \"uwsgi standalone\" which im not sure is necessary and/or useful.","commit_id":"48832799e8f8468254af73190b39a275d9428d23"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"5e9cfa01118a0d7800c25e86a698caeff0f6601b","unresolved":false,"context_lines":[{"line_number":64,"context_line":"------------"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"We could force the location of NGinx to be on the same host as the service"},{"line_number":67,"context_line":"itself. This would simplify the deployment startegy but would reduce the"},{"line_number":68,"context_line":"flexibility significantly."},{"line_number":69,"context_line":"We could use Apache with mod_wsgi although similar architectural decisions"},{"line_number":70,"context_line":"apply."}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_543d00c2","line":67,"range":{"start_line":67,"start_character":43,"end_line":67,"end_character":51},"updated":"2017-04-28 08:00:28.000000000","message":"strategy","commit_id":"48832799e8f8468254af73190b39a275d9428d23"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"5e9cfa01118a0d7800c25e86a698caeff0f6601b","unresolved":false,"context_lines":[{"line_number":67,"context_line":"itself. This would simplify the deployment startegy but would reduce the"},{"line_number":68,"context_line":"flexibility significantly."},{"line_number":69,"context_line":"We could use Apache with mod_wsgi although similar architectural decisions"},{"line_number":70,"context_line":"apply."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Playbook/Role impact"},{"line_number":73,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_74a7dc0c","line":70,"updated":"2017-04-28 08:00:28.000000000","message":"Alternatively, we could also think of a multiple layered uwsgi with LBing, or LB + nginx co-hosted and keep the same infrastructure.","commit_id":"48832799e8f8468254af73190b39a275d9428d23"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"5e9cfa01118a0d7800c25e86a698caeff0f6601b","unresolved":false,"context_lines":[{"line_number":76,"context_line":"elements in a playbook would change:"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"* Init scripts"},{"line_number":79,"context_line":"* Add nginx as a role requirement"},{"line_number":80,"context_line":"* Additional variables for NGinx"},{"line_number":81,"context_line":"* Handlers for uWSGI services."},{"line_number":82,"context_line":"* Addition of uWSGI as a dependency."}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_94f028ff","line":79,"range":{"start_line":79,"start_character":2,"end_line":79,"end_character":33},"updated":"2017-04-28 08:00:28.000000000","message":"\"as a role requirement\" opposite to the previous phrase \"in a playbook\", except if we take it in a larger way.","commit_id":"48832799e8f8468254af73190b39a275d9428d23"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"5e9cfa01118a0d7800c25e86a698caeff0f6601b","unresolved":false,"context_lines":[{"line_number":79,"context_line":"* Add nginx as a role requirement"},{"line_number":80,"context_line":"* Additional variables for NGinx"},{"line_number":81,"context_line":"* Handlers for uWSGI services."},{"line_number":82,"context_line":"* Addition of uWSGI as a dependency."},{"line_number":83,"context_line":"* Potentialy env.d changes to include NGinx hosts."},{"line_number":84,"context_line":"* Adjust role installation playbooks to install NGinx."},{"line_number":85,"context_line":"* Adjust HAProxy settings to point to nginx hosts."}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_54c74097","line":82,"range":{"start_line":82,"start_character":35,"end_line":82,"end_character":36},"updated":"2017-04-28 08:00:28.000000000","message":"a dependency to what? I\u0027d say a dependency to the openstack roles.","commit_id":"48832799e8f8468254af73190b39a275d9428d23"},{"author":{"_account_id":14805,"name":"Jimmy McCrory","email":"jimmy.mccrory@gmail.com","username":"jimmy-mccrory"},"change_message_id":"e94a4d2827d95778883737183b7a2305e8c2166b","unresolved":false,"context_lines":[{"line_number":110,"context_line":"Some monitoring plugins will need to make requests to OpenStack APIs or access"},{"line_number":111,"context_line":"certain other services. These plugins must be written carefully to avoid"},{"line_number":112,"context_line":"negative performance impacts on the system."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"End user impact"},{"line_number":115,"context_line":"---------------"},{"line_number":116,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_594099a5","line":113,"updated":"2017-04-28 07:21:00.000000000","message":"Looks like this was taken from monitoring spec.","commit_id":"48832799e8f8468254af73190b39a275d9428d23"},{"author":{"_account_id":2799,"name":"Andy McCrae","email":"andy.mccrae@googlemail.com","username":"andrew-mccrae"},"change_message_id":"e4879bf6be4d59b70eb0190ced3ddde655690b92","unresolved":false,"context_lines":[{"line_number":110,"context_line":"Some monitoring plugins will need to make requests to OpenStack APIs or access"},{"line_number":111,"context_line":"certain other services. These plugins must be written carefully to avoid"},{"line_number":112,"context_line":"negative performance impacts on the system."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"End user impact"},{"line_number":115,"context_line":"---------------"},{"line_number":116,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_e678942c","line":113,"in_reply_to":"5ff73747_594099a5","updated":"2017-05-02 13:03:04.000000000","message":"haha yes - yes it was. i\u0027ll update :D","commit_id":"48832799e8f8468254af73190b39a275d9428d23"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"5e9cfa01118a0d7800c25e86a698caeff0f6601b","unresolved":false,"context_lines":[{"line_number":117,"context_line":"End users should not notice the changes from this work."},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"The upgrade plays that would move from Ocata -\u003e Pike should handle the work"},{"line_number":120,"context_line":"required to configure and setup the NGinx web-server and uWSGI application."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"Deployer impact"},{"line_number":123,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_943ee888","line":120,"updated":"2017-04-28 08:00:28.000000000","message":"Isn\u0027t that a section for deployer impact?","commit_id":"48832799e8f8468254af73190b39a275d9428d23"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"5e9cfa01118a0d7800c25e86a698caeff0f6601b","unresolved":false,"context_lines":[{"line_number":131,"context_line":""},{"line_number":132,"context_line":"New roles would need to follow the same pattern set out, once this is"},{"line_number":133,"context_line":"implemented. Additionally, the upstream NGinx role would need to be kept"},{"line_number":134,"context_line":"up-to-date via tags. "},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"Dependencies"},{"line_number":137,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_b46684c0","line":134,"updated":"2017-04-28 08:00:28.000000000","message":"Sounds good.","commit_id":"48832799e8f8468254af73190b39a275d9428d23"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"5e9cfa01118a0d7800c25e86a698caeff0f6601b","unresolved":false,"context_lines":[{"line_number":137,"context_line":"------------"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Potential dependency on upstream role:"},{"line_number":140,"context_line":"* https://github.com/jdauphant/ansible-role-nginx"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Implementation"},{"line_number":143,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_d406b0ce","line":140,"updated":"2017-04-28 08:00:28.000000000","message":"Did we discuss with jdauphant for the tag part? I saw this name quite a few times in the ansible galaxy IIRC, so it\u0027s probably a good idea to talk with him about our goals and if they are compatible.","commit_id":"48832799e8f8468254af73190b39a275d9428d23"},{"author":{"_account_id":2799,"name":"Andy McCrae","email":"andy.mccrae@googlemail.com","username":"andrew-mccrae"},"change_message_id":"e4879bf6be4d59b70eb0190ced3ddde655690b92","unresolved":false,"context_lines":[{"line_number":137,"context_line":"------------"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Potential dependency on upstream role:"},{"line_number":140,"context_line":"* https://github.com/jdauphant/ansible-role-nginx"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Implementation"},{"line_number":143,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_c6a91825","line":140,"range":{"start_line":140,"start_character":31,"end_line":140,"end_character":38},"updated":"2017-05-02 13:03:04.000000000","message":"Tagged releases? I mean we haven\u0027t really spoken - it\u0027s one of the most used roles for nginx though - I\u0027m not sure what you mean by talk about our goals? (to have a working nginx role?)","commit_id":"48832799e8f8468254af73190b39a275d9428d23"},{"author":{"_account_id":14805,"name":"Jimmy McCrory","email":"jimmy.mccrory@gmail.com","username":"jimmy-mccrory"},"change_message_id":"e94a4d2827d95778883737183b7a2305e8c2166b","unresolved":false,"context_lines":[{"line_number":166,"context_line":"The monitoring plugins should be tested on each commit using tox."},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"The monitoring tool stack role should be tested independently (like the other"},{"line_number":169,"context_line":"IRR repos) and added to the integrated build as an optional component."},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"Documentation impact"},{"line_number":172,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_3926ed16","line":169,"updated":"2017-04-28 07:21:00.000000000","message":"This and work items above also need to be updated.","commit_id":"48832799e8f8468254af73190b39a275d9428d23"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"5e9cfa01118a0d7800c25e86a698caeff0f6601b","unresolved":false,"context_lines":[{"line_number":166,"context_line":"The monitoring plugins should be tested on each commit using tox."},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"The monitoring tool stack role should be tested independently (like the other"},{"line_number":169,"context_line":"IRR repos) and added to the integrated build as an optional component."},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"Documentation impact"},{"line_number":172,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_54050045","line":169,"in_reply_to":"5ff73747_3926ed16","updated":"2017-04-28 08:00:28.000000000","message":"Agreed.","commit_id":"48832799e8f8468254af73190b39a275d9428d23"},{"author":{"_account_id":2799,"name":"Andy McCrae","email":"andy.mccrae@googlemail.com","username":"andrew-mccrae"},"change_message_id":"e4879bf6be4d59b70eb0190ced3ddde655690b92","unresolved":false,"context_lines":[{"line_number":166,"context_line":"The monitoring plugins should be tested on each commit using tox."},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"The monitoring tool stack role should be tested independently (like the other"},{"line_number":169,"context_line":"IRR repos) and added to the integrated build as an optional component."},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"Documentation impact"},{"line_number":172,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ff73747_a6728c48","line":169,"in_reply_to":"5ff73747_3926ed16","updated":"2017-05-02 13:03:04.000000000","message":"Will fix","commit_id":"48832799e8f8468254af73190b39a275d9428d23"}],"specs/pike/uwsgi.rst":[{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"1ec26f147565c641685f234800c2eef285998a47","unresolved":false,"context_lines":[{"line_number":1,"context_line":"nginx \u0026 uWSGI for running API services in OpenStack-Ansible"},{"line_number":2,"context_line":"###########################################################"},{"line_number":3,"context_line":":date: 2017-04-20 00:00"},{"line_number":4,"context_line":":tags: API, wsgi"}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_ddef1b1c","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":59},"updated":"2017-06-01 20:14:33.000000000","message":"Perhaps the title needs changing to something like:\n\nEventlet to uWSGI implementation conversion","commit_id":"ad661f30cc42702c0c77f279226df111fd97dab0"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"1ec26f147565c641685f234800c2eef285998a47","unresolved":false,"context_lines":[{"line_number":8,"context_line":"  * https://blueprints.launchpad.net/openstack-ansible/+spec/goal-deploy-api-in-wsgi"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"The goal of the efforts described in this spec is to create a uniform mechanism"},{"line_number":11,"context_line":"for deploying OpenStack API services utilizing nginx and uWSGI. This is a"},{"line_number":12,"context_line":"community goal."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Problem description"},{"line_number":15,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_ddd83b7c","line":12,"range":{"start_line":11,"start_character":47,"end_line":12,"end_character":15},"updated":"2017-06-01 20:14:33.000000000","message":"Moving to use uWSGI is a community goal, using nginx is not - that\u0027s a production deployment scale thing which, as we\u0027ve discussed, is perhaps best left to next cycle.","commit_id":"ad661f30cc42702c0c77f279226df111fd97dab0"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"1ec26f147565c641685f234800c2eef285998a47","unresolved":false,"context_lines":[{"line_number":14,"context_line":"Problem description"},{"line_number":15,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Currently API services in OSA are a mixture of WSGI apps running behind Apache"},{"line_number":18,"context_line":"or nginx, and Python web-servers. As part of a community effort, upstream"},{"line_number":19,"context_line":"projects are going to be adding support for running API services as WSGI"},{"line_number":20,"context_line":"applications, potentially behind a webserver like Apache or nginx."},{"line_number":21,"context_line":"As part of the community, OSA needs to achieve this goal along with the upstream"},{"line_number":22,"context_line":"projects."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Key benefits to OSA:"},{"line_number":25,"context_line":"* Flexibility - we can define where the webservers will live"}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_fd065fce","line":22,"range":{"start_line":17,"start_character":0,"end_line":22,"end_character":9},"updated":"2017-06-01 20:14:33.000000000","message":"I feel like this paragraph could do with a reference to the community goal: https://governance.openstack.org/tc/goals/pike/deploy-api-in-wsgi.html\n\nThis takes away the need to justify that move.\n\nThe use of a web server in front of uWSGI is another matter altogether and I really feel like it\u0027s best left to a following cycle in an entirely different proposal as it\u0027s an architecture change versus eventlet-\u003euwsgi which is a component change.","commit_id":"ad661f30cc42702c0c77f279226df111fd97dab0"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"1ec26f147565c641685f234800c2eef285998a47","unresolved":false,"context_lines":[{"line_number":21,"context_line":"As part of the community, OSA needs to achieve this goal along with the upstream"},{"line_number":22,"context_line":"projects."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Key benefits to OSA:"},{"line_number":25,"context_line":"* Flexibility - we can define where the webservers will live"},{"line_number":26,"context_line":"* Consistency - all API services deployed in a uniform way."},{"line_number":27,"context_line":"* End-to-end Encryption - a uniform mechanism to deploy SSL certificates for "}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_dd8a7b68","line":24,"range":{"start_line":24,"start_character":0,"end_line":24,"end_character":20},"updated":"2017-06-01 20:14:33.000000000","message":"I think you need a line break before a list.","commit_id":"ad661f30cc42702c0c77f279226df111fd97dab0"},{"author":{"_account_id":17799,"name":"Logan V","email":"logan2211@gmail.com","username":"Logan2211"},"change_message_id":"d4182902a667b5c744f54a8252ef6688d57f8474","unresolved":false,"context_lines":[{"line_number":21,"context_line":"As part of the community, OSA needs to achieve this goal along with the upstream"},{"line_number":22,"context_line":"projects."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Key benefits to OSA:"},{"line_number":25,"context_line":"* Flexibility - we can define where the webservers will live"},{"line_number":26,"context_line":"* Consistency - all API services deployed in a uniform way."},{"line_number":27,"context_line":"* End-to-end Encryption - a uniform mechanism to deploy SSL certificates for "},{"line_number":28,"context_line":"  API services."},{"line_number":29,"context_line":"* Performance - there are performance benefits to utilizing a web server such as"},{"line_number":30,"context_line":"  nginx."},{"line_number":31,"context_line":"* Service restarts - we should be able to utilize uWSGI \u0026 nginx to reload"}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_6905f545","line":28,"range":{"start_line":24,"start_character":0,"end_line":28,"end_character":15},"updated":"2017-06-01 18:04:07.000000000","message":"Formatting is broken on this in the rendered spec","commit_id":"ad661f30cc42702c0c77f279226df111fd97dab0"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"76c0b9a6267bf8768002cf233add9454990104c2","unresolved":false,"context_lines":[{"line_number":26,"context_line":"* Consistency - all API services deployed in a uniform way."},{"line_number":27,"context_line":"* End-to-end Encryption - a uniform mechanism to deploy SSL certificates for "},{"line_number":28,"context_line":"  API services."},{"line_number":29,"context_line":"* Performance - there are performance benefits to utilizing a web server such as"},{"line_number":30,"context_line":"  nginx."},{"line_number":31,"context_line":"* Service restarts - we should be able to utilize uWSGI \u0026 nginx to reload"},{"line_number":32,"context_line":"  services in a more efficient manner."},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_6365fb1d","line":30,"range":{"start_line":29,"start_character":0,"end_line":30,"end_character":8},"updated":"2017-06-02 10:43:11.000000000","message":"This could go away.","commit_id":"ad661f30cc42702c0c77f279226df111fd97dab0"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"76c0b9a6267bf8768002cf233add9454990104c2","unresolved":false,"context_lines":[{"line_number":28,"context_line":"  API services."},{"line_number":29,"context_line":"* Performance - there are performance benefits to utilizing a web server such as"},{"line_number":30,"context_line":"  nginx."},{"line_number":31,"context_line":"* Service restarts - we should be able to utilize uWSGI \u0026 nginx to reload"},{"line_number":32,"context_line":"  services in a more efficient manner."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Proposed change"},{"line_number":35,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_236b83f1","line":32,"range":{"start_line":31,"start_character":0,"end_line":32,"end_character":38},"updated":"2017-06-02 10:43:11.000000000","message":"This too.","commit_id":"ad661f30cc42702c0c77f279226df111fd97dab0"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"76c0b9a6267bf8768002cf233add9454990104c2","unresolved":false,"context_lines":[{"line_number":45,"context_line":"  uWSGI application. The init script would replace the existing init-script per"},{"line_number":46,"context_line":"  service"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"nginx changes:"},{"line_number":49,"context_line":"  Setup the nginx service as it\u0027s own group ``nginx_all``."},{"line_number":50,"context_line":"  This would allow us to manage where nginx is deployed and create flexibility."},{"line_number":51,"context_line":"  The default mechanism would be to deploy nginx inside containers on the"},{"line_number":52,"context_line":"  infra-hosts, but this could be extended  to install nginx on each service\u0027s"},{"line_number":53,"context_line":"  specific container. This would work the same way as current services, in that"},{"line_number":54,"context_line":"  the deployer can define where the nginx service is setup and configured, which"},{"line_number":55,"context_line":"  is not linked to the underlying uWSGI service."},{"line_number":56,"context_line":"  Further extend this per service - e.g. ``nginx_nova_placement`` which would"},{"line_number":57,"context_line":"  be a child of ``nginx_all``, allowing us to configure nginx per service"},{"line_number":58,"context_line":"  if required. For example, Swift may need a dedicated nginx server for the"},{"line_number":59,"context_line":"  proxy service."},{"line_number":60,"context_line":"  Add nginx as a role requirement for OpenStack-Ansible, and call the specific"},{"line_number":61,"context_line":"  tasks from the role (as in the WIP patch listed at the bottom of the spec)."},{"line_number":62,"context_line":"  This would allow us to manage where nginx is running and not enforce a"},{"line_number":63,"context_line":"  specific architecture. NB nginx would then \"not\" be a dependency and would"},{"line_number":64,"context_line":"  have to be added to the installation playbooks per service."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Alternatives"},{"line_number":67,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_837b6fbc","line":64,"range":{"start_line":48,"start_character":0,"end_line":64,"end_character":61},"updated":"2017-06-02 10:43:11.000000000","message":"Move that to another spec?","commit_id":"ad661f30cc42702c0c77f279226df111fd97dab0"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"1ec26f147565c641685f234800c2eef285998a47","unresolved":false,"context_lines":[{"line_number":66,"context_line":"Alternatives"},{"line_number":67,"context_line":"------------"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"We can push out the nginx setup to another cycle, the primary goal of the spec"},{"line_number":70,"context_line":"can be to setup uWSGI for all API services. This may prove to be a better"},{"line_number":71,"context_line":"start point, adding in nginx in a future cycle. This would involve a direct"},{"line_number":72,"context_line":"drop in replacement of uWSGI applications instead of eventlet."},{"line_number":73,"context_line":"We could force the location of nginx to be on the same host as the service"}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_9ddf6339","line":70,"range":{"start_line":69,"start_character":0,"end_line":70,"end_character":43},"updated":"2017-06-01 20:14:33.000000000","message":"I feel like this is a better idea.\n\nThis spec is not really an architecture change, it\u0027s a drop-in replacement. The next one (introducing a web server in front of every service) can be its own spec with its own cost/benefit analysis.","commit_id":"ad661f30cc42702c0c77f279226df111fd97dab0"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"76c0b9a6267bf8768002cf233add9454990104c2","unresolved":false,"context_lines":[{"line_number":70,"context_line":"can be to setup uWSGI for all API services. This may prove to be a better"},{"line_number":71,"context_line":"start point, adding in nginx in a future cycle. This would involve a direct"},{"line_number":72,"context_line":"drop in replacement of uWSGI applications instead of eventlet."},{"line_number":73,"context_line":"We could force the location of nginx to be on the same host as the service"},{"line_number":74,"context_line":"itself. This would simplify the deployment strategy but would reduce the"},{"line_number":75,"context_line":"flexibility significantly."},{"line_number":76,"context_line":"We could use Apache with mod_wsgi although similar architectural decisions"},{"line_number":77,"context_line":"apply."},{"line_number":78,"context_line":"We could co-host nginx with the LB, to keep infrastructure the same."}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_76301be9","line":75,"range":{"start_line":73,"start_character":0,"end_line":75,"end_character":26},"updated":"2017-06-02 10:43:11.000000000","message":"That section can also be removed","commit_id":"ad661f30cc42702c0c77f279226df111fd97dab0"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"76c0b9a6267bf8768002cf233add9454990104c2","unresolved":false,"context_lines":[{"line_number":75,"context_line":"flexibility significantly."},{"line_number":76,"context_line":"We could use Apache with mod_wsgi although similar architectural decisions"},{"line_number":77,"context_line":"apply."},{"line_number":78,"context_line":"We could co-host nginx with the LB, to keep infrastructure the same."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Playbook/Role impact"},{"line_number":81,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_033e3fd9","line":78,"range":{"start_line":78,"start_character":0,"end_line":78,"end_character":68},"updated":"2017-06-02 10:43:11.000000000","message":"This is not relevant for a eventlet-uswgi change","commit_id":"ad661f30cc42702c0c77f279226df111fd97dab0"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"76c0b9a6267bf8768002cf233add9454990104c2","unresolved":false,"context_lines":[{"line_number":80,"context_line":"Playbook/Role impact"},{"line_number":81,"context_line":"--------------------"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"The roles would need to implement the upstream NGinx role, and the following"},{"line_number":84,"context_line":"elements in a playbook would change:"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"* Init scripts changed to support uWSGI"},{"line_number":87,"context_line":"* Add nginx role as a required role for OpenStack-Ansible."}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_f680ab48","line":84,"range":{"start_line":83,"start_character":0,"end_line":84,"end_character":36},"updated":"2017-06-02 10:43:11.000000000","message":"Is this necessary?\n\nThe minimum set of work for uwsgi could be to just move to it, and keep the current webserver. We just need to adapt for uswgi itself.\n\nFor example, for apache by using mod_proxy_uwsgi. I\u0027m not sure we need to multiply things to do in the same spec, except if it\u0027s easier.\n\nBut ofc if we have something already ready, I understand the rationale.","commit_id":"ad661f30cc42702c0c77f279226df111fd97dab0"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"76c0b9a6267bf8768002cf233add9454990104c2","unresolved":false,"context_lines":[{"line_number":84,"context_line":"elements in a playbook would change:"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"* Init scripts changed to support uWSGI"},{"line_number":87,"context_line":"* Add nginx role as a required role for OpenStack-Ansible."},{"line_number":88,"context_line":"* Additional variables for nginx"},{"line_number":89,"context_line":"* Handlers for uWSGI services."},{"line_number":90,"context_line":"* Addition of uWSGI as a dependency for OpenStack roles."}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_56d4f747","line":87,"range":{"start_line":87,"start_character":2,"end_line":87,"end_character":58},"updated":"2017-06-02 10:43:11.000000000","message":"See above","commit_id":"ad661f30cc42702c0c77f279226df111fd97dab0"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"76c0b9a6267bf8768002cf233add9454990104c2","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"* Init scripts changed to support uWSGI"},{"line_number":87,"context_line":"* Add nginx role as a required role for OpenStack-Ansible."},{"line_number":88,"context_line":"* Additional variables for nginx"},{"line_number":89,"context_line":"* Handlers for uWSGI services."},{"line_number":90,"context_line":"* Addition of uWSGI as a dependency for OpenStack roles."},{"line_number":91,"context_line":"* Potentialy env.d changes to include nginx hosts."}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_f6f54bee","line":88,"range":{"start_line":88,"start_character":27,"end_line":88,"end_character":32},"updated":"2017-06-02 10:43:11.000000000","message":"for configuring the webserver to use uswgi","commit_id":"ad661f30cc42702c0c77f279226df111fd97dab0"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"76c0b9a6267bf8768002cf233add9454990104c2","unresolved":false,"context_lines":[{"line_number":88,"context_line":"* Additional variables for nginx"},{"line_number":89,"context_line":"* Handlers for uWSGI services."},{"line_number":90,"context_line":"* Addition of uWSGI as a dependency for OpenStack roles."},{"line_number":91,"context_line":"* Potentialy env.d changes to include nginx hosts."},{"line_number":92,"context_line":"* Adjust role installation playbooks to install nginx."},{"line_number":93,"context_line":"* Adjust HAProxy settings to point to nginx hosts."},{"line_number":94,"context_line":"* Perform intelligent reloads of services to reduce downtime."}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_968f2f74","line":91,"range":{"start_line":91,"start_character":0,"end_line":91,"end_character":50},"updated":"2017-06-02 10:43:11.000000000","message":"to be removed, because that\u0027s for later cycle","commit_id":"ad661f30cc42702c0c77f279226df111fd97dab0"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"76c0b9a6267bf8768002cf233add9454990104c2","unresolved":false,"context_lines":[{"line_number":89,"context_line":"* Handlers for uWSGI services."},{"line_number":90,"context_line":"* Addition of uWSGI as a dependency for OpenStack roles."},{"line_number":91,"context_line":"* Potentialy env.d changes to include nginx hosts."},{"line_number":92,"context_line":"* Adjust role installation playbooks to install nginx."},{"line_number":93,"context_line":"* Adjust HAProxy settings to point to nginx hosts."},{"line_number":94,"context_line":"* Perform intelligent reloads of services to reduce downtime."},{"line_number":95,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_768c9b7e","line":92,"updated":"2017-06-02 10:43:11.000000000","message":"See comment above","commit_id":"ad661f30cc42702c0c77f279226df111fd97dab0"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"76c0b9a6267bf8768002cf233add9454990104c2","unresolved":false,"context_lines":[{"line_number":90,"context_line":"* Addition of uWSGI as a dependency for OpenStack roles."},{"line_number":91,"context_line":"* Potentialy env.d changes to include nginx hosts."},{"line_number":92,"context_line":"* Adjust role installation playbooks to install nginx."},{"line_number":93,"context_line":"* Adjust HAProxy settings to point to nginx hosts."},{"line_number":94,"context_line":"* Perform intelligent reloads of services to reduce downtime."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Upgrade impact"},{"line_number":97,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_764ffb33","line":94,"range":{"start_line":93,"start_character":0,"end_line":94,"end_character":61},"updated":"2017-06-02 10:43:11.000000000","message":"To be removed, that\u0027s for later","commit_id":"ad661f30cc42702c0c77f279226df111fd97dab0"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"76c0b9a6267bf8768002cf233add9454990104c2","unresolved":false,"context_lines":[{"line_number":102,"context_line":"to Pike upgrade, which would mean carrying additional machinery for 1 cycle."},{"line_number":103,"context_line":"When moving from Pike to Queen the upgrade path should be simplified."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Key aspects to consider:"},{"line_number":106,"context_line":"* Stopping existing python applications before start uWSGI."},{"line_number":107,"context_line":"* Starting nginx in a rolling and orchestrated manner to minimize downtime."},{"line_number":108,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_966baf83","line":105,"updated":"2017-06-02 10:43:11.000000000","message":"Need newline","commit_id":"ad661f30cc42702c0c77f279226df111fd97dab0"},{"author":{"_account_id":17799,"name":"Logan V","email":"logan2211@gmail.com","username":"Logan2211"},"change_message_id":"d4182902a667b5c744f54a8252ef6688d57f8474","unresolved":false,"context_lines":[{"line_number":102,"context_line":"to Pike upgrade, which would mean carrying additional machinery for 1 cycle."},{"line_number":103,"context_line":"When moving from Pike to Queen the upgrade path should be simplified."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Key aspects to consider:"},{"line_number":106,"context_line":"* Stopping existing python applications before start uWSGI."},{"line_number":107,"context_line":"* Starting nginx in a rolling and orchestrated manner to minimize downtime."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Security impact"},{"line_number":110,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_a99c2d0e","line":107,"range":{"start_line":105,"start_character":0,"end_line":107,"end_character":75},"updated":"2017-06-01 18:04:07.000000000","message":"Formatting is broken on this in the rendered spec","commit_id":"ad661f30cc42702c0c77f279226df111fd97dab0"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"76c0b9a6267bf8768002cf233add9454990104c2","unresolved":false,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Key aspects to consider:"},{"line_number":106,"context_line":"* Stopping existing python applications before start uWSGI."},{"line_number":107,"context_line":"* Starting nginx in a rolling and orchestrated manner to minimize downtime."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Security impact"},{"line_number":110,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_5630779f","line":107,"range":{"start_line":107,"start_character":0,"end_line":107,"end_character":75},"updated":"2017-06-02 10:43:11.000000000","message":"Should this be considered as part of this spec right now? It looks like an extra goal","commit_id":"ad661f30cc42702c0c77f279226df111fd97dab0"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"76c0b9a6267bf8768002cf233add9454990104c2","unresolved":false,"context_lines":[{"line_number":110,"context_line":"---------------"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"This would add 2 additional components that are not used everywhere at present."},{"line_number":113,"context_line":"nginx \u0026 uWSGI."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Performance impact"},{"line_number":116,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_f62aeb29","line":113,"range":{"start_line":113,"start_character":0,"end_line":113,"end_character":5},"updated":"2017-06-02 10:43:11.000000000","message":"See comment above.","commit_id":"ad661f30cc42702c0c77f279226df111fd97dab0"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"76c0b9a6267bf8768002cf233add9454990104c2","unresolved":false,"context_lines":[{"line_number":115,"context_line":"Performance impact"},{"line_number":116,"context_line":"------------------"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"uWSGI applications have been seen to perform better than eventlet applications."},{"line_number":119,"context_line":"The addition of nginx would allow us to tune the webserver more."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"End user impact"},{"line_number":122,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_96ee0feb","line":119,"range":{"start_line":118,"start_character":0,"end_line":119,"end_character":64},"updated":"2017-06-02 10:43:11.000000000","message":"Source?\n\nI\u0027d be enclined to say \"Undetermined\". It probably won\u0027t impact the acceptance of this spec anyway.","commit_id":"ad661f30cc42702c0c77f279226df111fd97dab0"},{"author":{"_account_id":17799,"name":"Logan V","email":"logan2211@gmail.com","username":"Logan2211"},"change_message_id":"d4182902a667b5c744f54a8252ef6688d57f8474","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":"New roles would need to follow the same pattern set out, once this is"},{"line_number":139,"context_line":"implemented. Additionally, the upstream nginx role would need to be kept"},{"line_number":140,"context_line":"up-to-date via tags. "},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Dependencies"},{"line_number":143,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_4987d1b6","line":140,"range":{"start_line":140,"start_character":20,"end_line":140,"end_character":21},"updated":"2017-06-01 18:04:07.000000000","message":"stray whitespace","commit_id":"ad661f30cc42702c0c77f279226df111fd97dab0"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"1ec26f147565c641685f234800c2eef285998a47","unresolved":false,"context_lines":[{"line_number":139,"context_line":"implemented. Additionally, the upstream nginx role would need to be kept"},{"line_number":140,"context_line":"up-to-date via tags. "},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Dependencies"},{"line_number":143,"context_line":"------------"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"Potential dependency on upstream role:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_5dce6b82","line":142,"updated":"2017-06-01 20:14:33.000000000","message":"I feel that a glaring dependency here is that each upstream service actually completes their support of the uWSGI implementation.","commit_id":"ad661f30cc42702c0c77f279226df111fd97dab0"},{"author":{"_account_id":17799,"name":"Logan V","email":"logan2211@gmail.com","username":"Logan2211"},"change_message_id":"d4182902a667b5c744f54a8252ef6688d57f8474","unresolved":false,"context_lines":[{"line_number":142,"context_line":"Dependencies"},{"line_number":143,"context_line":"------------"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"Potential dependency on upstream role:"},{"line_number":146,"context_line":"* https://github.com/jdauphant/ansible-role-nginx"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"Implementation"},{"line_number":149,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"df140735_a9b54d80","line":146,"range":{"start_line":145,"start_character":0,"end_line":146,"end_character":49},"updated":"2017-06-01 18:04:07.000000000","message":"formatting broken in rendered output","commit_id":"ad661f30cc42702c0c77f279226df111fd97dab0"}]}
