)]}'
{"common/deploy-steps.j2":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"a6d104eb7c9e6d77204d8f231f0e7722e3f5210c","unresolved":true,"context_lines":[{"line_number":598,"context_line":"              any_errors_fatal: yes"},{"line_number":599,"context_line":"              tasks:"},{"line_number":600,"context_line":"{% raw %}"},{"line_number":601,"context_line":"                - import_tasks: hiera_steps_tasks.yaml"},{"line_number":602,"context_line":"                - name: Server deployments"},{"line_number":603,"context_line":"                  delegate_to: localhost"},{"line_number":604,"context_line":"                  run_once: true"}],"source_content_type":"text/x-jinja2","patch_set":2,"id":"56a001ea_12bb4066","line":601,"range":{"start_line":601,"start_character":18,"end_line":601,"end_character":54},"updated":"2021-01-26 23:08:57.000000000","message":"I guess this does the exactly same as the one in pre network step and we can remove this ?","commit_id":"00898a639da11e8d117df7ed2c0622f28f6b7823"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"c76e35edbee86536da5ae510224f1488ddb083d9","unresolved":true,"context_lines":[{"line_number":598,"context_line":"              any_errors_fatal: yes"},{"line_number":599,"context_line":"              tasks:"},{"line_number":600,"context_line":"{% raw %}"},{"line_number":601,"context_line":"                - import_tasks: hiera_steps_tasks.yaml"},{"line_number":602,"context_line":"                - name: Server deployments"},{"line_number":603,"context_line":"                  delegate_to: localhost"},{"line_number":604,"context_line":"                  run_once: true"}],"source_content_type":"text/x-jinja2","patch_set":3,"id":"93ebcf8c_544a9ad0","line":601,"range":{"start_line":601,"start_character":32,"end_line":601,"end_character":54},"updated":"2021-06-28 15:17:00.000000000","message":"This is conflicting with https://opendev.org/openstack/tripleo-common/src/branch/master/tripleo_common/templates/deployments.yaml#L79 where hieradata_files is being overwritten elsewhere by a task execution","commit_id":"e7894c0b2308692364b72a7dc22cb5a32cd5c3b8"}],"overcloud-resource-registry-puppet.j2.yaml":[{"author":{"_account_id":18575,"name":"Saravanan KR","email":"krsacme@gmail.com","username":"saravanankr"},"change_message_id":"2c2a9f4e6c97cc8a8f3775c48e6a99992bcba042","unresolved":true,"context_lines":[{"line_number":9,"context_line":"  OS::TripleO::RandomString: OS::Heat::RandomString"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"{% for role in roles %}"},{"line_number":12,"context_line":"  OS::TripleO::{{role.name}}::PreNetworkConfig: OS::Heat::None"},{"line_number":13,"context_line":"  OS::TripleO::{{role.name}}PostDeploySteps: common/post.yaml"},{"line_number":14,"context_line":"  OS::TripleO::{{role.name}}: puppet/{{role.name.lower()}}-role.yaml"},{"line_number":15,"context_line":"  OS::TripleO::Tasks::{{role.name}}PreConfig: OS::Heat::None"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"11e3266f_cfbbfd32","line":12,"updated":"2021-06-29 13:16:05.000000000","message":"I know I am late to comment, but just as info. The idea behind removal of PreNetworkConfig (which is used in NFV deployments to configure kernel args, reboot and configure dpdk, before running NetworkDeployment) is to use only ansible tasks to handle all those including reboot. Rebooting in the SoftwareConfig will throw error when excuted via ansible as softwareconfig. Anyone using PreNetworkConfig will definitely have the reboot. \n\nSome users have used PreNetworkConfig to maintain out of the tree code, which is a burden during upgrades. Using ansible tasks via tripleo_kernel role provides better handling of those case and allows users to bring in the out of tree code to handle upgrades better.","commit_id":"e7894c0b2308692364b72a7dc22cb5a32cd5c3b8"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"79e702cf4a3c3ed3805dc9b41a4bf85d11f7b954","unresolved":true,"context_lines":[{"line_number":9,"context_line":"  OS::TripleO::RandomString: OS::Heat::RandomString"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"{% for role in roles %}"},{"line_number":12,"context_line":"  OS::TripleO::{{role.name}}::PreNetworkConfig: OS::Heat::None"},{"line_number":13,"context_line":"  OS::TripleO::{{role.name}}PostDeploySteps: common/post.yaml"},{"line_number":14,"context_line":"  OS::TripleO::{{role.name}}: puppet/{{role.name.lower()}}-role.yaml"},{"line_number":15,"context_line":"  OS::TripleO::Tasks::{{role.name}}PreConfig: OS::Heat::None"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"848ccc90_4f2426c5","line":12,"in_reply_to":"11e3266f_cfbbfd32","updated":"2021-06-29 13:19:18.000000000","message":"unfortunately the tripleo_kernel doesn\u0027t allow for things like driver installation (which really should be done via a customization of the image but that\u0027s another story)","commit_id":"e7894c0b2308692364b72a7dc22cb5a32cd5c3b8"},{"author":{"_account_id":18575,"name":"Saravanan KR","email":"krsacme@gmail.com","username":"saravanankr"},"change_message_id":"3207859d563de3349ab88b617a63f38d370d6f6d","unresolved":true,"context_lines":[{"line_number":9,"context_line":"  OS::TripleO::RandomString: OS::Heat::RandomString"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"{% for role in roles %}"},{"line_number":12,"context_line":"  OS::TripleO::{{role.name}}::PreNetworkConfig: OS::Heat::None"},{"line_number":13,"context_line":"  OS::TripleO::{{role.name}}PostDeploySteps: common/post.yaml"},{"line_number":14,"context_line":"  OS::TripleO::{{role.name}}: puppet/{{role.name.lower()}}-role.yaml"},{"line_number":15,"context_line":"  OS::TripleO::Tasks::{{role.name}}PreConfig: OS::Heat::None"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"3e767353_f212cce3","line":12,"in_reply_to":"38fbd74b_096bd945","updated":"2021-06-30 04:02:37.000000000","message":"\u003e also i think tripleo_kernel runs after the network config (i\u0027d have to double check)\n\nYes and No. TripleO service boot-params invokes tripleo_kernel\u0027s kernelargs and reboot at step 0, which is before NetworkConfig. To be clear, some of the network config like SR-IOV and OvS-DPDK requires mandatory kernel params like iommu and hugepages before creating such interface. So it has to run before network config.\n\nTripleO service kernel invokes tripleo_kernel to configure sysctl and mod configs, which is runs as part of host_prep (which is after Network config).\n\n\u003e unfortunately the tripleo_kernel doesn\u0027t allow for things like driver installation (which really should be done via a customization of the image but that\u0027s another story)\n\nThat was the problem of PreNetworkConfig, it opened a way to provide all required customizations without undestanding the right way to do - it should either be done by image customization or first-boot scripts (UserData). The primary problem of PreNetworkConfig is, reboot cannot be acheived with it, so whoever needs this feature again, has to remove the kernel args and reboot part from PreNetworkConfig and use tripleo_kernel for it.","commit_id":"e7894c0b2308692364b72a7dc22cb5a32cd5c3b8"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"ec112fe29705a46f46e34253ac78f55f35dcd014","unresolved":true,"context_lines":[{"line_number":9,"context_line":"  OS::TripleO::RandomString: OS::Heat::RandomString"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"{% for role in roles %}"},{"line_number":12,"context_line":"  OS::TripleO::{{role.name}}::PreNetworkConfig: OS::Heat::None"},{"line_number":13,"context_line":"  OS::TripleO::{{role.name}}PostDeploySteps: common/post.yaml"},{"line_number":14,"context_line":"  OS::TripleO::{{role.name}}: puppet/{{role.name.lower()}}-role.yaml"},{"line_number":15,"context_line":"  OS::TripleO::Tasks::{{role.name}}PreConfig: OS::Heat::None"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"7067767b_ac682440","line":12,"in_reply_to":"3e767353_f212cce3","updated":"2021-06-30 08:04:54.000000000","message":"The problem I was fixing is that ExtraConfigPre was doing exactly what we expect for PreNetworkConfig. We received some complains about the change with timing when ExtraConfigPre is executed and that was the reason why I restored the previous behavior.\nBecause we already had the resource to do pre-network configurations, restoring PreNetworkConfig as well is reasonable IMHO.\n\n\nI understand the problem with reboot you mentioned but we need a clear guidline about migration... It might be a solution to tell users to define their own service resource, but that would cause a different mess. We\u0027d need a simple and independent way to trigger reboot properly(like OS::Tripleo::Services::NodeReboot which reboots the node during step 0)  so that users can inject any tasks before that.","commit_id":"e7894c0b2308692364b72a7dc22cb5a32cd5c3b8"},{"author":{"_account_id":18575,"name":"Saravanan KR","email":"krsacme@gmail.com","username":"saravanankr"},"change_message_id":"54b73cc8f16ed5944f2e8a2c0374a8d12efbcb32","unresolved":true,"context_lines":[{"line_number":9,"context_line":"  OS::TripleO::RandomString: OS::Heat::RandomString"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"{% for role in roles %}"},{"line_number":12,"context_line":"  OS::TripleO::{{role.name}}::PreNetworkConfig: OS::Heat::None"},{"line_number":13,"context_line":"  OS::TripleO::{{role.name}}PostDeploySteps: common/post.yaml"},{"line_number":14,"context_line":"  OS::TripleO::{{role.name}}: puppet/{{role.name.lower()}}-role.yaml"},{"line_number":15,"context_line":"  OS::TripleO::Tasks::{{role.name}}PreConfig: OS::Heat::None"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"dd2f23b3_17bc2a1b","line":12,"in_reply_to":"7067767b_ac682440","updated":"2021-06-30 09:01:51.000000000","message":"\u003e I understand the problem with reboot you mentioned but we need a clear guidline about migration.\n\nPreNetworkConfig (in queens) has been used by all NFV deployments. The default implementation provided as part of the tht repo is supported with upgrade to train, as it has been converted to ansible steps. And reboot has been handled in the native ansible task in the tripleo_kernel role. If an user has not custoimized PreNetworkConfig, then the existing parameter \"KernelArgs\" in queens will work in train in the same manner but driven by ansible. \n\nNo need to introduce additional step for reboot, the first-boot scripts should be enough to inject tasks. Some tasks in case of DPDK should be applied only after reboot. It should be done by introducing a custom TripleO service, as like how the default DPDK deployment (ml2-ovs and ml2-ovn) are handled. This can also be managed with out of tht implementation of adding user specific service. All these are well-defined steps of TripleO.\n\nThe problem in this case is an user is trying to customize PreNetworkConfig with their own out of the tree implementation. I would have preferred to use other existing ways to acheive the same behavior instead of bringing back PreNetworkConfig.","commit_id":"e7894c0b2308692364b72a7dc22cb5a32cd5c3b8"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"bba960e20258e91cb8274322e84dbe830fd97374","unresolved":true,"context_lines":[{"line_number":9,"context_line":"  OS::TripleO::RandomString: OS::Heat::RandomString"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"{% for role in roles %}"},{"line_number":12,"context_line":"  OS::TripleO::{{role.name}}::PreNetworkConfig: OS::Heat::None"},{"line_number":13,"context_line":"  OS::TripleO::{{role.name}}PostDeploySteps: common/post.yaml"},{"line_number":14,"context_line":"  OS::TripleO::{{role.name}}: puppet/{{role.name.lower()}}-role.yaml"},{"line_number":15,"context_line":"  OS::TripleO::Tasks::{{role.name}}PreConfig: OS::Heat::None"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"38fbd74b_096bd945","line":12,"in_reply_to":"848ccc90_4f2426c5","updated":"2021-06-29 13:20:06.000000000","message":"also i think tripleo_kernel runs after the network config (i\u0027d have to double check)","commit_id":"e7894c0b2308692364b72a7dc22cb5a32cd5c3b8"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"14b4b60a8be1bb5b3c7e0729d7e1268de80ba252","unresolved":true,"context_lines":[{"line_number":9,"context_line":"  OS::TripleO::RandomString: OS::Heat::RandomString"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"{% for role in roles %}"},{"line_number":12,"context_line":"  OS::TripleO::{{role.name}}::PreNetworkConfig: OS::Heat::None"},{"line_number":13,"context_line":"  OS::TripleO::{{role.name}}PostDeploySteps: common/post.yaml"},{"line_number":14,"context_line":"  OS::TripleO::{{role.name}}: puppet/{{role.name.lower()}}-role.yaml"},{"line_number":15,"context_line":"  OS::TripleO::Tasks::{{role.name}}PreConfig: OS::Heat::None"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"e4a3ce2f_476a2d05","line":12,"in_reply_to":"dd2f23b3_17bc2a1b","updated":"2021-06-30 13:19:50.000000000","message":"That\u0027s the crux is that there was no user customization execution before the network configuration. UserData is only executed once at provisioning time so it doesn\u0027t work for updates or future deployments.\n\n\nI agree that it\u0027s not a good interface much like customers co-oping *ExtraConfig to run free-form scripts.  In this case it was push back from 3rd parties who were relying on this. Even though we document that they should use virt-customize there are still instances where code needs to be executed prior to network config by a 3rd party (e.g. firmware shenanigans) that we currently don\u0027t provide an interface for. An alternative would have been to introduce a pre-network task in THT that allows users to add hooks for execution prior to the network.  I\u0027m all for dropping this, but I think there\u0027s a use case that is not satisfied.","commit_id":"e7894c0b2308692364b72a7dc22cb5a32cd5c3b8"}]}
