git.net

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Nova][Ironic] Reset Configurations in Baremetals Post Provisioning


On 6/7/19 2:53 AM, Kumari, Madhuri wrote:
> Hi Jay,
> 
>> -----Original Message-----
>> From: Jay Pipes [mailto:jaypipes at gmail.com]
> 
> 
>> The absence of a trait on a provider should be represented by the provider
>> not having a trait. Just have a single trait "CUSTOM_HYPERTHREADING" that
>> you either place on the provider or do not place on a provider.
>>
>> The flavor should then either request that the trait be present on a provider
>> that the instance is scheduled to
>> (trait:CUSTOM_HYPERTHREADING=required) or that the trait should *not*
>> be present on a provider that the instance is scheduled to
>> (trait:CUSTOM_HYPERTHREADING=forbidden).
>>
> 
> I understand that these traits are used for scheduling while server create in Nova. Whereas these traits means more to Ironic. Ironic runs multiple deploy steps matching the name of traits in flavor[1].
> 
> The use case explained in the email is about changing some BIOS configuration post server create. By changing the trait in flavor from CUSTOM_HYPERTHREADING_ON to CUSTOM_HYPERTHREADING_OFF, Ironic should run the matching deploy step to disable hyperthreading in BIOS and do a reboot.
> But currently there isn't a way in Nova about telling Ironic about the trait has changed in flavor, so perform the corresponding deploy steps.
> 
> [1] https://docs.openstack.org/ironic/stein/admin/node-deployment.html#matching-deploy-templates

Yes, I understand that theses aren't really traits but are actually 
configuration information.

However, what I'm saying is that if you pass the flavor information 
during resize (as Eric has suggested), then you don't need *two* trait 
strings (one for CUSTOM_HYPERTHREADING_ON and one for 
CUSTOM_HYPERTHREADING_OFF). You only need the single 
CUSTOM_HYPERTHREADING trait and the driver should simply look for the 
absence of that trait (or, alternately, the flavor saying "=forbid" 
instead of "=required".

Better still, add a standardized trait to os-traits for hyperthreading 
support, which is what I'd recommended in the original 
cpu-resource-tracking spec.

Best,
-jay