I have been working on the user-data scripts (first-boot) for updating the kernel args on the overcloud node [1]. The pre-condition is that the kernel args has to be applied and node has to be restarted before os-net-config runs.
I got in to problem of provisioning network not getting ip after the reboot in the user-data script. While investigating, figured out that network.service starts the nodes on the alpha-numeric order, on which the first nic is not the one used for provisioning. network.service initiates a DHCP DISCOVER on it, when it times out, network.service goes to failed state and all other interfaces are DOWN state. If i manually bring the interface up (via ipmi console), then all proceeds fine without any issue. To overcome this issue, I have written a small script to find out the provisioning network via metadata (metadata has the mac address of the provisioning network) and make BOOTPROTO=none on all other interface's ifcfg files except the provisioning network. There still an issue of IP not ready at the time of querying metadata, temporarily added a sleep which solves it. The user-data script [1] has all these fixes and tested on an baremetal overcloud node. If anyone has a better way of doing it, you are more than welcome to suggest. Regards, Saravanan KR [1] https://gist.github.com/krsacme/1234bf024ac917c74913827298840c1c On Wed, Jul 27, 2016 at 6:52 PM, Saravanan KR <skram...@redhat.com> wrote: > Hello, > > We are working on SR-IOV & DPDK tripleo integration. In which, setting > the kernel args for huge pages, iommu and cpu isolation is required. > Earlier we were working on setting of kernel args via IPA [1], reasons > being: > 1. IPA is installing the boot loader on the overcloud node > 2. Ironic knows the hardware spec, using which, we can target specific > args to nodes via introspection rules > > As the proposal is to change the image owned file '/etc/default/grub', > it has been suggested by ironic team to use the instance user data to > set the kernel args [2][3], instead of IPA. In the suggested approach, > we are planning to update the file /etc/default/grub, update > /etc/grub2.cfg and then issue a reboot. Reboot is mandatory because, > os-net-config will configure the DPDK bridges and ports by binding the > DPDK driver, which requires kernel args should be set for iommu and > huge pages. > > As discussed on the IRC tripleo meeting, we need to ensure that the > user data with update of kernel args, does not overlap with any other > puppet configurations. Please let us know if you have any comments on > this approach. > > Regards, > Saravanan KR > > [1] https://review.openstack.org/#/c/331564/ > [2] > http://docs.openstack.org/developer/ironic/deploy/install-guide.html#appending-kernel-parameters-to-boot-instances > [3] > http://docs.openstack.org/developer/tripleo-docs/advanced_deployment/extra_config.html#firstboot-extra-configuration __________________________________________________________________________ OpenStack Development Mailing List (not for usage questions) Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev