)]}'
{"specs/train/remove-puppet.rst":[{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"0f9eacc77737c63bd5d952cc4c4f5df2f6fb14b7","unresolved":false,"context_lines":[{"line_number":68,"context_line":"---------------"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"The Ansible logs will have to hide any confidential information like logins"},{"line_number":72,"context_line":"and passwords; which was done in the Puppet modules thanks to the \"secret\""},{"line_number":73,"context_line":"attribute."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Upgrade Impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7faddb67_d7a4394d","line":73,"range":{"start_line":71,"start_character":0,"end_line":73,"end_character":10},"updated":"2019-07-19 19:25:39.000000000","message":"we\u0027ll need to make sure the `no_log` keyword is used in sensitive ansible tasks.","commit_id":"ee43cab472822d488f644e1ac1dfd001b6eaef00"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"d85f488bb290be3f8a55d42e481e84e2f257b592","unresolved":false,"context_lines":[{"line_number":68,"context_line":"---------------"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"The Ansible logs will have to hide any confidential information like logins"},{"line_number":72,"context_line":"and passwords; which was done in the Puppet modules thanks to the \"secret\""},{"line_number":73,"context_line":"attribute."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Upgrade Impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7faddb67_3a825401","line":73,"range":{"start_line":71,"start_character":0,"end_line":73,"end_character":10},"in_reply_to":"7faddb67_d7a4394d","updated":"2019-07-22 14:50:08.000000000","message":"Done","commit_id":"ee43cab472822d488f644e1ac1dfd001b6eaef00"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"0f9eacc77737c63bd5d952cc4c4f5df2f6fb14b7","unresolved":false,"context_lines":[{"line_number":123,"context_line":"Operator Impact"},{"line_number":124,"context_line":"---------------"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"As an operator, the configuration failures should be easy to debug, so"},{"line_number":127,"context_line":"meaningful logs will be provided during the deployments if a configuration step"},{"line_number":128,"context_line":"fails."},{"line_number":129,"context_line":"It will still be possible to modify the configuration at wish since we will"},{"line_number":130,"context_line":"maintain the compatibility with TripleO ExtraConfig interface."}],"source_content_type":"text/x-rst","patch_set":2,"id":"7faddb67_37126d63","line":127,"range":{"start_line":126,"start_character":68,"end_line":127,"end_character":15},"updated":"2019-07-19 19:25:39.000000000","message":"Adding the ANSIBLE_LOG_PATH environment variable will instruct ansible to create a specific log file of a given task/playbook run. If we get something like this into the openstack client we could potentially provide a more robust runtime log by default; without having to capture everything from a shell command and redirecting it to a file. This could potentially give operators and deployers better insight in their clouds without out any additional overhead.","commit_id":"ee43cab472822d488f644e1ac1dfd001b6eaef00"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"0f9eacc77737c63bd5d952cc4c4f5df2f6fb14b7","unresolved":false,"context_lines":[{"line_number":174,"context_line":"Release engineer"},{"line_number":175,"context_line":"----------------"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"We will reduce the packaging dependencies by removing Puppet, Hiera and Facter."},{"line_number":178,"context_line":"Ruby will not be required as well."},{"line_number":179,"context_line":""},{"line_number":180,"context_line":""},{"line_number":181,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7faddb67_57b92976","line":178,"range":{"start_line":177,"start_character":0,"end_line":178,"end_character":34},"updated":"2019-07-19 19:25:39.000000000","message":"I think this is potentially huge.","commit_id":"ee43cab472822d488f644e1ac1dfd001b6eaef00"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"0f9eacc77737c63bd5d952cc4c4f5df2f6fb14b7","unresolved":false,"context_lines":[{"line_number":192,"context_line":"  cloudnull"},{"line_number":193,"context_line":"  mwhahaha"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"Work Items"},{"line_number":196,"context_line":"----------"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"tripleo-heat-templates"},{"line_number":199,"context_line":"~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"WIP"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"tripleo-ansible"},{"line_number":204,"context_line":"~~~~~~~~~~~~~~~"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"WIP"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"ansible-config_template"},{"line_number":209,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"WIP"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"Dependencies"},{"line_number":214,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"WIP"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"Testing"},{"line_number":219,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"WIP"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"Documentation Impact"},{"line_number":225,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"WIP"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"References"},{"line_number":230,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"None."}],"source_content_type":"text/x-rst","patch_set":2,"id":"7faddb67_f78a95bc","line":232,"range":{"start_line":195,"start_character":0,"end_line":232,"end_character":5},"updated":"2019-07-19 19:25:39.000000000","message":"Given this is being defined as a multi-cycle effort I\u0027m not sure these works items are needed or relevant. What we work on is bound to change over the cycles. We could probably track most of this on StoryBoard in a single project, with multiple worklists.","commit_id":"ee43cab472822d488f644e1ac1dfd001b6eaef00"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"e6c5bd7de99436f23073776851cb61f461df36b0","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"Since this is a multi-cycle effort, our operators will be able to upgrade"},{"line_number":82,"context_line":"TripleO and the services will be configured with the new tools as soon as they"},{"line_number":83,"context_line":"are switched. All the existing interfaces will be maintained for"},{"line_number":84,"context_line":"backward compatibility."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7faddb67_9019e7d7","line":84,"range":{"start_line":83,"start_character":14,"end_line":84,"end_character":23},"updated":"2019-07-19 23:43:57.000000000","message":"As I understand, operators will have to switch to the new format for ComputeExtraConfig? see below.","commit_id":"430e5be066c85b7791a990f9a1d7aaf33ba3d34a"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"0b8896eb7702e80dd18f2f7305b684053ad98165","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"Since this is a multi-cycle effort, our operators will be able to upgrade"},{"line_number":82,"context_line":"TripleO and the services will be configured with the new tools as soon as they"},{"line_number":83,"context_line":"are switched. All the existing interfaces will be maintained for"},{"line_number":84,"context_line":"backward compatibility."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7faddb67_f7c03c2d","line":84,"range":{"start_line":83,"start_character":14,"end_line":84,"end_character":23},"in_reply_to":"7faddb67_869c4a6b","updated":"2019-07-22 19:43:08.000000000","message":"\u003e And another question: how are we going to ensure the feature parity?\n\nfeature parity at which level? For the ExtraConfig interface?\nFor the results? (generated config files).\n\nNext patchset will add more content on that, let me know if it\u0027s enough.","commit_id":"430e5be066c85b7791a990f9a1d7aaf33ba3d34a"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"d85f488bb290be3f8a55d42e481e84e2f257b592","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"Since this is a multi-cycle effort, our operators will be able to upgrade"},{"line_number":82,"context_line":"TripleO and the services will be configured with the new tools as soon as they"},{"line_number":83,"context_line":"are switched. All the existing interfaces will be maintained for"},{"line_number":84,"context_line":"backward compatibility."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7faddb67_61a80ddb","line":84,"range":{"start_line":83,"start_character":14,"end_line":84,"end_character":23},"in_reply_to":"7faddb67_869c4a6b","updated":"2019-07-22 14:50:08.000000000","message":"If we really want to remove Puppet, we can\u0027t keep the same hiera structure that we had.\n\nIn other works, I don\u0027t think we can keep:\n\n    parameter_defaults:\n      ComputeExtraConfig:\n        nova::compute::reserved_host_memory: some_value\n\nBecause it relies on Hiera \u0026 puppet-nova, which are both proposed to be removed here.\n\nMy proposal is that we keep the interface which allows the override of any parameter, where ExtraConfig will be the first source of truth so we can override anything.","commit_id":"430e5be066c85b7791a990f9a1d7aaf33ba3d34a"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a22cb01c420e9596696375bc814533976feea852","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"Since this is a multi-cycle effort, our operators will be able to upgrade"},{"line_number":82,"context_line":"TripleO and the services will be configured with the new tools as soon as they"},{"line_number":83,"context_line":"are switched. All the existing interfaces will be maintained for"},{"line_number":84,"context_line":"backward compatibility."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7faddb67_869c4a6b","line":84,"range":{"start_line":83,"start_character":14,"end_line":84,"end_character":23},"in_reply_to":"7faddb67_9019e7d7","updated":"2019-07-21 09:34:57.000000000","message":"And another question: how are we going to ensure the feature parity?","commit_id":"430e5be066c85b7791a990f9a1d7aaf33ba3d34a"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"e6c5bd7de99436f23073776851cb61f461df36b0","unresolved":false,"context_lines":[{"line_number":105,"context_line":"This work shouldn\u0027t bring any new framework or more dependencies (except"},{"line_number":106,"context_line":"for the Ansible dependencies which are required for the proposed solution)."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"The configuration management will be generate the same output as with Puppet"},{"line_number":109,"context_line":"modules: oslo-config generated files which contain the parameters and their"},{"line_number":110,"context_line":"values."},{"line_number":111,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7faddb67_f0293be5","line":108,"range":{"start_line":108,"start_character":34,"end_line":108,"end_character":36},"updated":"2019-07-19 23:43:57.000000000","message":"s/be//","commit_id":"430e5be066c85b7791a990f9a1d7aaf33ba3d34a"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"d85f488bb290be3f8a55d42e481e84e2f257b592","unresolved":false,"context_lines":[{"line_number":105,"context_line":"This work shouldn\u0027t bring any new framework or more dependencies (except"},{"line_number":106,"context_line":"for the Ansible dependencies which are required for the proposed solution)."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"The configuration management will be generate the same output as with Puppet"},{"line_number":109,"context_line":"modules: oslo-config generated files which contain the parameters and their"},{"line_number":110,"context_line":"values."},{"line_number":111,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7faddb67_01ad99e9","line":108,"range":{"start_line":108,"start_character":34,"end_line":108,"end_character":36},"in_reply_to":"7faddb67_f0293be5","updated":"2019-07-22 14:50:08.000000000","message":"ack, will update at next patchset.","commit_id":"430e5be066c85b7791a990f9a1d7aaf33ba3d34a"},{"author":{"_account_id":17216,"name":"Martin Schuppert","email":"mschuppert@redhat.com","username":"mcschupp"},"change_message_id":"5c8dc39b9ec61815f540328ff84b583e46f79db3","unresolved":false,"context_lines":[{"line_number":117,"context_line":"supported in TripleO. We will provide one simple and standard interface for"},{"line_number":118,"context_line":"configuring these services."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"Edge developers should be able to configure TripleO for DCN and multiple cells"},{"line_number":121,"context_line":"deployments. We will provide an interface to override settings in child stacks"},{"line_number":122,"context_line":"when using multiple stacks."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Operator Impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7faddb67_baa63953","line":122,"range":{"start_line":120,"start_character":0,"end_line":122,"end_character":27},"updated":"2019-07-22 07:19:49.000000000","message":"I think we either need to provide a similar functionality to \n\u0027openstack stack output show\u0027 to have an equivalent interface\nor document the generated output files which can be used as\ninput for DCN/Cell stacks (e.g. EndpointMap, AllNodesConfig, \nGlobalConfig and HostsEntry)","commit_id":"430e5be066c85b7791a990f9a1d7aaf33ba3d34a"},{"author":{"_account_id":17216,"name":"Martin Schuppert","email":"mschuppert@redhat.com","username":"mcschupp"},"change_message_id":"aad0f0725c9c979310075a37156b78f2701d39c4","unresolved":false,"context_lines":[{"line_number":117,"context_line":"supported in TripleO. We will provide one simple and standard interface for"},{"line_number":118,"context_line":"configuring these services."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"Edge developers should be able to configure TripleO for DCN and multiple cells"},{"line_number":121,"context_line":"deployments. We will provide an interface to override settings in child stacks"},{"line_number":122,"context_line":"when using multiple stacks."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Operator Impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7faddb67_49e88f7b","line":122,"range":{"start_line":120,"start_character":0,"end_line":122,"end_character":27},"in_reply_to":"7faddb67_9774689e","updated":"2019-07-23 06:45:22.000000000","message":"You mean to overwrite settings?","commit_id":"430e5be066c85b7791a990f9a1d7aaf33ba3d34a"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"d85f488bb290be3f8a55d42e481e84e2f257b592","unresolved":false,"context_lines":[{"line_number":117,"context_line":"supported in TripleO. We will provide one simple and standard interface for"},{"line_number":118,"context_line":"configuring these services."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"Edge developers should be able to configure TripleO for DCN and multiple cells"},{"line_number":121,"context_line":"deployments. We will provide an interface to override settings in child stacks"},{"line_number":122,"context_line":"when using multiple stacks."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Operator Impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7faddb67_e1b39d4c","line":122,"range":{"start_line":120,"start_character":0,"end_line":122,"end_character":27},"in_reply_to":"7faddb67_baa63953","updated":"2019-07-22 14:50:08.000000000","message":"good point; I\u0027ll add it.","commit_id":"430e5be066c85b7791a990f9a1d7aaf33ba3d34a"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"0b8896eb7702e80dd18f2f7305b684053ad98165","unresolved":false,"context_lines":[{"line_number":117,"context_line":"supported in TripleO. We will provide one simple and standard interface for"},{"line_number":118,"context_line":"configuring these services."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"Edge developers should be able to configure TripleO for DCN and multiple cells"},{"line_number":121,"context_line":"deployments. We will provide an interface to override settings in child stacks"},{"line_number":122,"context_line":"when using multiple stacks."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Operator Impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7faddb67_9774689e","line":122,"range":{"start_line":120,"start_character":0,"end_line":122,"end_character":27},"in_reply_to":"7faddb67_e1b39d4c","updated":"2019-07-22 19:43:08.000000000","message":"actually, can it be done with Puppet already? If no, this is a feature that should be requested outside of this specs, no?","commit_id":"430e5be066c85b7791a990f9a1d7aaf33ba3d34a"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"e6c5bd7de99436f23073776851cb61f461df36b0","unresolved":false,"context_lines":[{"line_number":149,"context_line":"            reserved_host_memory: some_value"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"The same applies to the NodeDataLookup interface."},{"line_number":152,"context_line":"This new structure has to be compatible with both Puppet \u0026 Ansible to make"},{"line_number":153,"context_line":"the transition easier.  Which means, it should be possible to mix both the"},{"line_number":154,"context_line":"Puppet Hieradata and the new syntax until Puppet is completely removed for that"},{"line_number":155,"context_line":"component. The list of components that have been converted will be documented."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7faddb67_d0be7fac","line":152,"range":{"start_line":152,"start_character":29,"end_line":152,"end_character":66},"updated":"2019-07-19 23:43:57.000000000","message":"So we are adding a layer in puppet to support the new data format?\nAs services are moved away from puppet existing environments file using ``nova::compute::reserved_host_memory: some_value`` will gradually break?\n\nTo me this is\u0027nt keeping compatiblity, we are keeping the ComputeExtraConfig interface. But it completely changes the format of the data the parameter takes.\n\nI like the new format, I agree that it\u0027s easy to understand. ++ It is probably a technical necessity for implementing this spec. _However_, let\u0027s add to this spec that we should do pre-fligth validations to detect the legacy data format and abort with a clear error. We could do this either by service, or as a big-hammer once the interface to make the new dataformat work for puppet is in place.","commit_id":"430e5be066c85b7791a990f9a1d7aaf33ba3d34a"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"d85f488bb290be3f8a55d42e481e84e2f257b592","unresolved":false,"context_lines":[{"line_number":149,"context_line":"            reserved_host_memory: some_value"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"The same applies to the NodeDataLookup interface."},{"line_number":152,"context_line":"This new structure has to be compatible with both Puppet \u0026 Ansible to make"},{"line_number":153,"context_line":"the transition easier.  Which means, it should be possible to mix both the"},{"line_number":154,"context_line":"Puppet Hieradata and the new syntax until Puppet is completely removed for that"},{"line_number":155,"context_line":"component. The list of components that have been converted will be documented."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7faddb67_a187e561","line":152,"range":{"start_line":152,"start_character":29,"end_line":152,"end_character":66},"in_reply_to":"7faddb67_d0be7fac","updated":"2019-07-22 14:50:08.000000000","message":"\u003e So we are adding a layer in puppet to support the new data format?\n \u003e As services are moved away from puppet existing environments file\n \u003e using ``nova::compute::reserved_host_memory: some_value`` will\n \u003e gradually break?\n\nyes; and I don\u0027t see how we can skip that, if our end goal is to remove Puppet.\n\n \u003e To me this is\u0027nt keeping compatiblity, we are keeping the\n \u003e ComputeExtraConfig interface. But it completely changes the format\n \u003e of the data the parameter takes.\n\nRight; I guess you want me to change the wording in the specs; which I will do in the next patchset to make it clear.\n\n \u003e I like the new format, I agree that it\u0027s easy to understand. ++ It\n \u003e is probably a technical necessity for implementing this spec.\n \u003e _However_, let\u0027s add to this spec that we should do pre-fligth\n \u003e validations to detect the legacy data format and abort with a clear\n \u003e error. We could do this either by service, or as a big-hammer once\n \u003e the interface to make the new dataformat work for puppet is in\n \u003e place.\n\n+1","commit_id":"430e5be066c85b7791a990f9a1d7aaf33ba3d34a"},{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"c9286cee225d0c12ddc48eb45415bb0e039cf78a","unresolved":false,"context_lines":[{"line_number":47,"context_line":"started to increase its usage in TripleO. We have identified areas where it"},{"line_number":48,"context_line":"could be used to replace some other tools, which in result, could be removed."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Even if part of this work is to create new Ansible roles, a lot of the"},{"line_number":51,"context_line":"components are based on community-supported tools (e.g. OpenStack-Ansible,"},{"line_number":52,"context_line":"Ansible Core, etc); which have grown well enough for us to rely on."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Alternative"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7faddb67_91730db2","line":52,"range":{"start_line":50,"start_character":0,"end_line":52,"end_character":67},"updated":"2019-07-23 09:23:04.000000000","message":"I see no value for TripleO in *creating* and maintaining (on our own) the same features that puppet openstack modules provide today. I\u0027d fully support this proposal, if it is explicitly rephrased to something like \"create as less new code as possible, while reuse as much of the existing (like OpenStack-Ansible) as possible\".","commit_id":"4bbb4d129b8a4727ce0f1639ff9dbe384589a044"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"9f09511f7a535a51c0f15f2f9b35cf24d7ebccff","unresolved":false,"context_lines":[{"line_number":47,"context_line":"started to increase its usage in TripleO. We have identified areas where it"},{"line_number":48,"context_line":"could be used to replace some other tools, which in result, could be removed."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Even if part of this work is to create new Ansible roles, a lot of the"},{"line_number":51,"context_line":"components are based on community-supported tools (e.g. OpenStack-Ansible,"},{"line_number":52,"context_line":"Ansible Core, etc); which have grown well enough for us to rely on."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Alternative"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7faddb67_711c1477","line":52,"range":{"start_line":50,"start_character":0,"end_line":52,"end_character":67},"in_reply_to":"7faddb67_91730db2","updated":"2019-07-26 12:47:35.000000000","message":"I\u0027ll quote what Alex Schultz wrote in an email recently:\n\n\"We will likely not switch to using openstack ansible modules. Nor would we use kolla-ansible. Primarily because backwards compatibility. Additionally the only thing we need from them would be configuration generation.  The orchestration and ordering thing is completely tripleo at this point and that\u0027s one of those things where we have addressed bugs and the idiosyncrasies of openstack over time.  Don\u0027t get me wrong I\u0027m all for sharing the load with other projects and improving the overall quality, however everyone seems to be talking about using these other projects and I\u0027m not seeing folks step up to actually do the community liaison work.\"\n\nThis specs is about evaluation a possible option; with the end goal of simplifying TripleO. If our conclusion doesn\u0027t meet this goal, we\u0027ll simply abandon this idea.","commit_id":"4bbb4d129b8a4727ce0f1639ff9dbe384589a044"},{"author":{"_account_id":18575,"name":"Saravanan KR","email":"krsacme@gmail.com","username":"saravanankr"},"change_message_id":"87beccfaf0ff413c0ca3145abf0d4a7c17a789ff","unresolved":false,"context_lines":[{"line_number":83,"context_line":"are switched."},{"line_number":84,"context_line":"ExtraConfig and NodeDataLookup interfaces will be maintained as the official"},{"line_number":85,"context_line":"way to override any parameter when the service has been converted to Ansible."},{"line_number":86,"context_line":"However, the content will have to be ported to the new format (hieradata to"},{"line_number":87,"context_line":"YAML). An example has been provided later in this document."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7faddb67_ce748501","line":86,"updated":"2019-07-23 03:56:39.000000000","message":"Is there a plan to provide migration scripts?","commit_id":"4bbb4d129b8a4727ce0f1639ff9dbe384589a044"},{"author":{"_account_id":18575,"name":"Saravanan KR","email":"krsacme@gmail.com","username":"saravanankr"},"change_message_id":"8dfdf4a8cdffd55799102ed619ded5b48e17e74e","unresolved":false,"context_lines":[{"line_number":83,"context_line":"are switched."},{"line_number":84,"context_line":"ExtraConfig and NodeDataLookup interfaces will be maintained as the official"},{"line_number":85,"context_line":"way to override any parameter when the service has been converted to Ansible."},{"line_number":86,"context_line":"However, the content will have to be ported to the new format (hieradata to"},{"line_number":87,"context_line":"YAML). An example has been provided later in this document."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7faddb67_520225b6","line":86,"in_reply_to":"7faddb67_919190f4","updated":"2019-07-29 05:22:24.000000000","message":"I understand the pain for us, but considering the number of users who would have existing templates and wanted to deploy latest version or upgrade the environment, would benefit from migration scripts. Like the one we have for nic config migration, it is/was really valuable.\n\nLets see if we could find any automated way, based on the below discussion.","commit_id":"4bbb4d129b8a4727ce0f1639ff9dbe384589a044"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"620d60458fbffe7983e1f5f5087ede1dce467b57","unresolved":false,"context_lines":[{"line_number":83,"context_line":"are switched."},{"line_number":84,"context_line":"ExtraConfig and NodeDataLookup interfaces will be maintained as the official"},{"line_number":85,"context_line":"way to override any parameter when the service has been converted to Ansible."},{"line_number":86,"context_line":"However, the content will have to be ported to the new format (hieradata to"},{"line_number":87,"context_line":"YAML). An example has been provided later in this document."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7faddb67_919190f4","line":86,"in_reply_to":"7faddb67_ce748501","updated":"2019-07-26 12:44:32.000000000","message":"you mean a script which would port something like \"nova::compute::reserved_host_memory\" into nova.conf/DEFAULT/reserved_host_memory ?\n\nThe mapping would be very long to maintain (hundreds and hundreds of parameters), I\u0027m not sure we really want to do that.\n\nWhat do you think? Should we do that?","commit_id":"4bbb4d129b8a4727ce0f1639ff9dbe384589a044"},{"author":{"_account_id":23811,"name":"Oliver Walsh","email":"owalsh@redhat.com","username":"owalsh"},"change_message_id":"21c4ddfb086004e1bad91957ab2dc8b0e0f91fc2","unresolved":false,"context_lines":[{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    parameter_defaults:"},{"line_number":144,"context_line":"      ComputeExtraConfig:"},{"line_number":145,"context_line":"        nova::compute::reserved_host_memory: some_value"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"We would do::"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7faddb67_abed3bb8","line":145,"range":{"start_line":145,"start_character":8,"end_line":145,"end_character":55},"updated":"2019-07-26 10:43:39.000000000","message":"Or we can use nova_config directly:\n\n    parameter_defaults:\n      ComputeExtraConfig:\n        nova::config::nova_config:\n            DEFAULT/reserved_host_memory:\n                value: some_value\n\n\nHowever have to be careful not to set a param that is already handled by puppet-tripleo/puppet-nova or we get duplicate declaration errors.\n\nDo we avoid this with the new approach? I suppose we don\u0027t need to use puppet nova_config, can just step in after running puppet and alter the conf file (using ansible-config_template?).","commit_id":"4bbb4d129b8a4727ce0f1639ff9dbe384589a044"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"620d60458fbffe7983e1f5f5087ede1dce467b57","unresolved":false,"context_lines":[{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    parameter_defaults:"},{"line_number":144,"context_line":"      ComputeExtraConfig:"},{"line_number":145,"context_line":"        nova::compute::reserved_host_memory: some_value"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"We would do::"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7faddb67_d1b0688e","line":145,"range":{"start_line":145,"start_character":8,"end_line":145,"end_character":55},"in_reply_to":"7faddb67_abed3bb8","updated":"2019-07-26 12:44:32.000000000","message":"I like this proposal, I\u0027ve seen customers using this interface already.\nWe could support that syntax with Ansible where we would have a mapping between nova::config::nova_config and the actual config file.\n\ne.g. nova::config::nova_config points to /etc/nova/nova.conf\n\nAnd when processing the ExtraConfig we would transform:\n\n    parameter_defaults:\n      ComputeExtraConfig:\n        nova::config::nova_config:\n            DEFAULT/reserved_host_memory:\n                value: some_value\n\ninto\n\n    parameter_defaults:\n      ComputeExtraConfig:\n        /etc/nova/nova.conf:\n            DEFAULT:\n              reserved_host_memory: some_value","commit_id":"4bbb4d129b8a4727ce0f1639ff9dbe384589a044"},{"author":{"_account_id":18575,"name":"Saravanan KR","email":"krsacme@gmail.com","username":"saravanankr"},"change_message_id":"87beccfaf0ff413c0ca3145abf0d4a7c17a789ff","unresolved":false,"context_lines":[{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    parameter_defaults:"},{"line_number":150,"context_line":"      ComputeExtraConfig:"},{"line_number":151,"context_line":"        /etc/nova/nova.conf"},{"line_number":152,"context_line":"          DEFAULT"},{"line_number":153,"context_line":"            reserved_host_memory: some_value"},{"line_number":154,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7faddb67_ce46c5c1","line":151,"updated":"2019-07-23 03:56:39.000000000","message":"Is it possible to hide this from the user? In case of neutron, there are lots of config files - neutron.conf, ml2_confi.ini, openvswitch_agent.ini, sriov_agent.ini\n\nExpecting user to know and provide those details, reduces the usability and increases complexity. I don\u0027t know if it is possible, but if this information is hidden or derived in the ansible role, it will be easy to use.","commit_id":"4bbb4d129b8a4727ce0f1639ff9dbe384589a044"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"620d60458fbffe7983e1f5f5087ede1dce467b57","unresolved":false,"context_lines":[{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    parameter_defaults:"},{"line_number":150,"context_line":"      ComputeExtraConfig:"},{"line_number":151,"context_line":"        /etc/nova/nova.conf"},{"line_number":152,"context_line":"          DEFAULT"},{"line_number":153,"context_line":"            reserved_host_memory: some_value"},{"line_number":154,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7faddb67_514b1886","line":151,"in_reply_to":"7faddb67_2b106ba8","updated":"2019-07-26 12:44:32.000000000","message":"ah yes, +1","commit_id":"4bbb4d129b8a4727ce0f1639ff9dbe384589a044"},{"author":{"_account_id":23811,"name":"Oliver Walsh","email":"owalsh@redhat.com","username":"owalsh"},"change_message_id":"21c4ddfb086004e1bad91957ab2dc8b0e0f91fc2","unresolved":false,"context_lines":[{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    parameter_defaults:"},{"line_number":150,"context_line":"      ComputeExtraConfig:"},{"line_number":151,"context_line":"        /etc/nova/nova.conf"},{"line_number":152,"context_line":"          DEFAULT"},{"line_number":153,"context_line":"            reserved_host_memory: some_value"},{"line_number":154,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7faddb67_2b106ba8","line":151,"in_reply_to":"7faddb67_ce46c5c1","updated":"2019-07-26 10:43:39.000000000","message":"I think we also need to specify which service/container it applies to. Services can share config_data (nova and libvirt do) so it probably needs to be something like:\n\n    parameter_defaults:\n      ComputeExtraConfig:\n        nova_libvirt: # puppet config_volume used by the nova_compute service\n          /etc/nova/nova.conf:\n            DEFAULT:\n              reserved_host_memory: some_value","commit_id":"4bbb4d129b8a4727ce0f1639ff9dbe384589a044"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"620d60458fbffe7983e1f5f5087ede1dce467b57","unresolved":false,"context_lines":[{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    parameter_defaults:"},{"line_number":150,"context_line":"      ComputeExtraConfig:"},{"line_number":151,"context_line":"        /etc/nova/nova.conf"},{"line_number":152,"context_line":"          DEFAULT"},{"line_number":153,"context_line":"            reserved_host_memory: some_value"},{"line_number":154,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7faddb67_f17004dd","line":151,"in_reply_to":"7faddb67_ce46c5c1","updated":"2019-07-26 12:44:32.000000000","message":"indeed.\n\ndo you think an alternative name would help?\nlike:\n\n  sriov_agent\n\nwould be mapped to\n\n  /etc/neutron/plugins/ml2/sriov_agent.ini","commit_id":"4bbb4d129b8a4727ce0f1639ff9dbe384589a044"},{"author":{"_account_id":18575,"name":"Saravanan KR","email":"krsacme@gmail.com","username":"saravanankr"},"change_message_id":"8dfdf4a8cdffd55799102ed619ded5b48e17e74e","unresolved":false,"context_lines":[{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    parameter_defaults:"},{"line_number":150,"context_line":"      ComputeExtraConfig:"},{"line_number":151,"context_line":"        /etc/nova/nova.conf"},{"line_number":152,"context_line":"          DEFAULT"},{"line_number":153,"context_line":"            reserved_host_memory: some_value"},{"line_number":154,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7faddb67_b26ef993","line":151,"in_reply_to":"7faddb67_f17004dd","updated":"2019-07-29 05:22:24.000000000","message":"I am thinking out loud to see if it make sense.\n\nWhy do we need \u003cRole\u003eExtraconfig?\nIt was introduced to provide direct puppet configuration on the role (node) overriding global parameters. \n\nDo we have alternatives?\n* role-specific parameters [1] \u003cRole\u003eParameters can provide the same overriding capability managed by Heat\n* puppet parameters which are not exposed via Heat can also be configured directly,like nova::cpu_allocation_ratio, for which there no alternative, other than adding the parameter to heat.\n\nCan we retire ExtraConfig?\n* Given that we are removing puppet and moving towards ansible, which can provide vars grouping more conveniently than existing methods, I dont see any value in retaining ExtraConfig\n* Backward Compatibility - Any we are asking users to migrate to the new format in the same parameter. Why not migrate to the heat based role-specific parameter?\n* It also unifies multiple methods of parameter configuration to simpler ones, so that replacing heat would be much easier\n* When puppet is being removed, why to have puppet specific configuration parameter\n\nI see values in removing this parameter, does anyone has any other cases that might be solved with current approach? This way we can reduce our baggage and become thinner.\n\n\n[1] https://docs.openstack.org/tripleo-docs/latest/install/advanced_deployment/role_specific_parameters.html","commit_id":"4bbb4d129b8a4727ce0f1639ff9dbe384589a044"},{"author":{"_account_id":18575,"name":"Saravanan KR","email":"krsacme@gmail.com","username":"saravanankr"},"change_message_id":"87beccfaf0ff413c0ca3145abf0d4a7c17a789ff","unresolved":false,"context_lines":[{"line_number":149,"context_line":"    parameter_defaults:"},{"line_number":150,"context_line":"      ComputeExtraConfig:"},{"line_number":151,"context_line":"        /etc/nova/nova.conf"},{"line_number":152,"context_line":"          DEFAULT"},{"line_number":153,"context_line":"            reserved_host_memory: some_value"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"The same applies to the NodeDataLookup interface."}],"source_content_type":"text/x-rst","patch_set":5,"id":"7faddb67_ee1ce1c2","line":152,"range":{"start_line":152,"start_character":16,"end_line":152,"end_character":17},"updated":"2019-07-23 03:56:39.000000000","message":"missing colon for this and above lines?","commit_id":"4bbb4d129b8a4727ce0f1639ff9dbe384589a044"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"620d60458fbffe7983e1f5f5087ede1dce467b57","unresolved":false,"context_lines":[{"line_number":149,"context_line":"    parameter_defaults:"},{"line_number":150,"context_line":"      ComputeExtraConfig:"},{"line_number":151,"context_line":"        /etc/nova/nova.conf"},{"line_number":152,"context_line":"          DEFAULT"},{"line_number":153,"context_line":"            reserved_host_memory: some_value"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"The same applies to the NodeDataLookup interface."}],"source_content_type":"text/x-rst","patch_set":5,"id":"7faddb67_714e5497","line":152,"range":{"start_line":152,"start_character":16,"end_line":152,"end_character":17},"in_reply_to":"7faddb67_ee1ce1c2","updated":"2019-07-26 12:44:32.000000000","message":"yes, my bad","commit_id":"4bbb4d129b8a4727ce0f1639ff9dbe384589a044"},{"author":{"_account_id":18575,"name":"Saravanan KR","email":"krsacme@gmail.com","username":"saravanankr"},"change_message_id":"87beccfaf0ff413c0ca3145abf0d4a7c17a789ff","unresolved":false,"context_lines":[{"line_number":153,"context_line":"            reserved_host_memory: some_value"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"The same applies to the NodeDataLookup interface."},{"line_number":156,"context_line":"This new structure has to be compatible with both Puppet \u0026 Ansible to make"},{"line_number":157,"context_line":"the transition easier.  Which means, it should be possible to mix both the"},{"line_number":158,"context_line":"Puppet Hieradata and the new syntax until Puppet is completely removed for that"},{"line_number":159,"context_line":"component. The list of components that have been converted will be documented."}],"source_content_type":"text/x-rst","patch_set":5,"id":"7faddb67_ae17c9a3","line":156,"range":{"start_line":156,"start_character":19,"end_line":156,"end_character":66},"updated":"2019-07-23 03:56:39.000000000","message":"Should we need to consider the puppet for design? I believe the format should be compatible to ansible and should follow the ansible guidelines in defining those. In such a way, that it should be easy to remove heat at a later point. If that needs to be compatible with puppet, there should be temp workarounds, until it is removed, Or else puppet could run first and then ansible to apply extra configs, or some thing like it.","commit_id":"4bbb4d129b8a4727ce0f1639ff9dbe384589a044"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"620d60458fbffe7983e1f5f5087ede1dce467b57","unresolved":false,"context_lines":[{"line_number":153,"context_line":"            reserved_host_memory: some_value"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"The same applies to the NodeDataLookup interface."},{"line_number":156,"context_line":"This new structure has to be compatible with both Puppet \u0026 Ansible to make"},{"line_number":157,"context_line":"the transition easier.  Which means, it should be possible to mix both the"},{"line_number":158,"context_line":"Puppet Hieradata and the new syntax until Puppet is completely removed for that"},{"line_number":159,"context_line":"component. The list of components that have been converted will be documented."}],"source_content_type":"text/x-rst","patch_set":5,"id":"7faddb67_d15e2844","line":156,"range":{"start_line":156,"start_character":19,"end_line":156,"end_character":66},"in_reply_to":"7faddb67_ae17c9a3","updated":"2019-07-26 12:44:32.000000000","message":"I didn\u0027t want to mix Puppet \u0026 Ansible when services are configured because of idempotency. If puppet modifies a config file and then Ansible adds extra params, then it removes idempotency which we don\u0027t want.\n\nThe way it could work is, we convert services by services and once a service can only be configured by either Puppet or Ansible; never both at the same time.\n\nThe list of converted services would be maintained so we know how to use ExtraConfig for them.","commit_id":"4bbb4d129b8a4727ce0f1639ff9dbe384589a044"},{"author":{"_account_id":18575,"name":"Saravanan KR","email":"krsacme@gmail.com","username":"saravanankr"},"change_message_id":"8dfdf4a8cdffd55799102ed619ded5b48e17e74e","unresolved":false,"context_lines":[{"line_number":153,"context_line":"            reserved_host_memory: some_value"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"The same applies to the NodeDataLookup interface."},{"line_number":156,"context_line":"This new structure has to be compatible with both Puppet \u0026 Ansible to make"},{"line_number":157,"context_line":"the transition easier.  Which means, it should be possible to mix both the"},{"line_number":158,"context_line":"Puppet Hieradata and the new syntax until Puppet is completely removed for that"},{"line_number":159,"context_line":"component. The list of components that have been converted will be documented."}],"source_content_type":"text/x-rst","patch_set":5,"id":"7faddb67_92f89dc4","line":156,"range":{"start_line":156,"start_character":19,"end_line":156,"end_character":66},"in_reply_to":"7faddb67_d15e2844","updated":"2019-07-29 05:22:24.000000000","message":"This is more appropriate. I have inferred the statement in the spec as that we are maintaining both for a certain time. I am fine with it, and it would be good, if you can depict above comment in the spec.","commit_id":"4bbb4d129b8a4727ce0f1639ff9dbe384589a044"}]}
