)]}'
{"specs/queens/restructure-repo-management-and-pip-install.yml":[{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"006c83d2d23661a060fffbd5db28d8957b3cb178","unresolved":false,"context_lines":[{"line_number":25,"context_line":"nodes. Container nodes still need the pip_install role for repo"},{"line_number":26,"context_line":"management, because the openstack_hosts role only applies to bare metal,"},{"line_number":27,"context_line":"while the pip install role applies to all nodes."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Proposed change"},{"line_number":30,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":1,"id":"1f485f77_15dc1c44","line":28,"updated":"2017-11-17 13:21:58.000000000","message":"Background here which may be worth adding.:\n\nRepo management in pip_install/openstack_hosts was added as a stop-gap in newton to address the need to cover the UCA repo addition to hosts, new containers and existing containers. It was never meant to be a long term strategy, but we never got around to doing an improvement either.\n\nThe problem with this approach is that it slows deployments down dramatically due to the meta-inclusion of the pip_install role everywhere and the repo management tasks the role does. Without the repo management tasks, the pip install role is quite quick.","commit_id":"448d627c6da31d430ec48d5e8d32f004f941ae73"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"7ecd219d81e8b98ffb57b138c19774762bd78582","unresolved":false,"context_lines":[{"line_number":25,"context_line":"nodes. Container nodes still need the pip_install role for repo"},{"line_number":26,"context_line":"management, because the openstack_hosts role only applies to bare metal,"},{"line_number":27,"context_line":"while the pip install role applies to all nodes."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Proposed change"},{"line_number":30,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":1,"id":"1f485f77_d0433241","line":28,"in_reply_to":"1f485f77_15dc1c44","updated":"2017-11-17 13:46:27.000000000","message":"Will do!","commit_id":"448d627c6da31d430ec48d5e8d32f004f941ae73"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"006c83d2d23661a060fffbd5db28d8957b3cb178","unresolved":false,"context_lines":[{"line_number":29,"context_line":"Proposed change"},{"line_number":30,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"By making openstack_hosts apply to all hosts, whether they are"},{"line_number":33,"context_line":"bare metal or containers (so considering \"hosts\" like the ansible term),"},{"line_number":34,"context_line":"we could drastically simplify the openstack_host and pip_install tasks."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"We could put all the repo management there, avoiding the duplication"},{"line_number":37,"context_line":"between openstack_hosts and pip_install."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"1f485f77_b5c9c859","line":34,"range":{"start_line":32,"start_character":0,"end_line":34,"end_character":71},"updated":"2017-11-17 13:21:58.000000000","message":"Currently openstack_hosts does a lot of things which are very host specific, such as setting systctl\u0027s that cannot be applied to containers. Doing this will mean re-organising the role in a way that, to me, gives very little benefit.\n\nI would rather we find and use, or build, an apt/yum/zypper repo management role instead of going down this route. I\u0027m fairly certain that if we can\u0027t find a suitable role (or roles) in ansible-galaxy then whatever we build will more than likely be useful to others. Having a purpose specific role could then be used in the openstack-hosts playbook, and the lxc-containers-create playbook, with the appropriate settings provided to the role using group_vars.","commit_id":"448d627c6da31d430ec48d5e8d32f004f941ae73"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"79d1a973db862d69d47cf46c3da16c077dda116e","unresolved":false,"context_lines":[{"line_number":29,"context_line":"Proposed change"},{"line_number":30,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"By making openstack_hosts apply to all hosts, whether they are"},{"line_number":33,"context_line":"bare metal or containers (so considering \"hosts\" like the ansible term),"},{"line_number":34,"context_line":"we could drastically simplify the openstack_host and pip_install tasks."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"We could put all the repo management there, avoiding the duplication"},{"line_number":37,"context_line":"between openstack_hosts and pip_install."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"1f485f77_a41bdb70","line":34,"range":{"start_line":32,"start_character":0,"end_line":34,"end_character":71},"in_reply_to":"1f485f77_302e0692","updated":"2017-11-17 14:01:40.000000000","message":"On top of that, we have to remember that openstack_hosts is quite opinated anyway, so re-using a galaxy role for doing just apt_repository/package management tasks would probably require defaults variable management, which is the purpose of a role...\nIf we can avoid to overlap a _simple_ existing role with multiple levels of overrides, why not... (not sure if I am clear on my explanation here).","commit_id":"448d627c6da31d430ec48d5e8d32f004f941ae73"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"7ecd219d81e8b98ffb57b138c19774762bd78582","unresolved":false,"context_lines":[{"line_number":29,"context_line":"Proposed change"},{"line_number":30,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"By making openstack_hosts apply to all hosts, whether they are"},{"line_number":33,"context_line":"bare metal or containers (so considering \"hosts\" like the ansible term),"},{"line_number":34,"context_line":"we could drastically simplify the openstack_host and pip_install tasks."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"We could put all the repo management there, avoiding the duplication"},{"line_number":37,"context_line":"between openstack_hosts and pip_install."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"1f485f77_302e0692","line":34,"range":{"start_line":32,"start_character":0,"end_line":34,"end_character":71},"in_reply_to":"1f485f77_b5c9c859","updated":"2017-11-17 13:46:27.000000000","message":"I agree there, but creating a role just for repo management seems to be overkill.\n\nOn top of that, we could iterate later by removing the repo management tasks from the common area, and ``include_role:`` with the new role you\u0027re talking about.\n\nIn the meantime, cleanup is still needed, and I am taking the simplest approach.","commit_id":"448d627c6da31d430ec48d5e8d32f004f941ae73"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"006c83d2d23661a060fffbd5db28d8957b3cb178","unresolved":false,"context_lines":[{"line_number":51,"context_line":"Alternatives"},{"line_number":52,"context_line":"------------"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Status quo, and be slow for bare metal nodes."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Playbook/Role impact"},{"line_number":57,"context_line":"--------------------"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"1f485f77_d5244460","line":54,"range":{"start_line":54,"start_character":0,"end_line":54,"end_character":45},"updated":"2017-11-17 13:21:58.000000000","message":"I have an alternative suggestion which I think should be considered:\n\n1. Move the preparation of the LXC cache from the lxc_hosts role into the lxc_container_create role. There is a ton of duplication in variables. The original reason for the implementation in the way it is now is that the lxc_container_create role could not be targeted at a host, and at containers. Now with include_role/tasks_from we can move the cache prep into the lxc_container_create role and have a special playbook which targets the hosts and uses include_role/tasks_from to do the cache prep and implement the base COW container (if applicable).\n\n2. By doing the above we can also make the cache prep process (including repo config/key copying from the host into the container) happen every time the role is run. This would mean that openstack_hosts implements the repo on the host, and lxc_container_create *always* copies the host config into the containers. This has the added benefit of also updating the other copied files relating to time zone and whatever else the deployer has set to copy from host to container.\n\n3. By doing the above we can also optimise the cache prep to reduce duplication in tasks and perhaps also do a lot more optimisation of the use of the COW container base.\n\n4. Finally, with this implemented, there will be no need to manage the UCA repo anywhere but in openstack_hosts. The configs will always update correctly and we\u0027ll have a far better container config maintenance story.","commit_id":"448d627c6da31d430ec48d5e8d32f004f941ae73"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"79d1a973db862d69d47cf46c3da16c077dda116e","unresolved":false,"context_lines":[{"line_number":51,"context_line":"Alternatives"},{"line_number":52,"context_line":"------------"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Status quo, and be slow for bare metal nodes."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Playbook/Role impact"},{"line_number":57,"context_line":"--------------------"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"1f485f77_70011e06","line":54,"range":{"start_line":54,"start_character":0,"end_line":54,"end_character":45},"in_reply_to":"1f485f77_d5244460","updated":"2017-11-17 14:01:40.000000000","message":"There are examples where repos should be configured differently on hosts and containers (see suse), which leads to double work. Having one role knowing the full context is likely to help, but I understand and like the general idea of \"you configure your host, then the container should be smart enough to inherit what it needs\".\n\nKeep in mind the steps you\u0027re mentioning above are orthogonal to this work, and aren\u0027t conflicting.\n\nWe could implement this in parallel.","commit_id":"448d627c6da31d430ec48d5e8d32f004f941ae73"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"39bcc98a675221aca4e030d4a30ba694011406d0","unresolved":false,"context_lines":[{"line_number":83,"context_line":"Those steps could be followed by the removal of the repo management in the pip_install role,"},{"line_number":84,"context_line":"and of the removal of the pip_install role from meta dependencies."},{"line_number":85,"context_line":"Using the group_vars/host_vars for repo management inside containers wouldn\u0027t apply, though."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"Playbook/Role impact"},{"line_number":88,"context_line":"--------------------"},{"line_number":89,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":3,"id":"1f485f77_045cefea","line":86,"updated":"2017-11-17 14:14:14.000000000","message":"I personally prefer the alternative approach. I think it\u0027s a better solution for both the short and long term and would prefer to see that done rather than changing up the openstack_hosts role to cater for hosts and containers.","commit_id":"bb144c9eb9d68599968f9464fadee2221f68a7be"}]}
