[Kimchi-devel] [RFC] Guest Network Boot support [Part1] - Create template and guest with support to Direct Boot

Aline Manera alinefm at linux.vnet.ibm.com
Mon Apr 20 16:00:25 UTC 2015



On 20/04/2015 12:55, Aline Manera wrote:
>
>
> On 14/04/2015 13:20, Rodrigo Trujillo wrote:
>> Alan Evangelista (https://github.com/alanoe) and I are willing to
>> implement the support to Network Boot  to Kimchi guests.
>>
>> This is the first approach [Part1] we are going to develop: The direct
>> boot
>> When finished, we are going to send [Part2] that will cover DHCP/TFTP,
>> etc.
>
> From what I understand, direct boot is not necessarily related to 
> network boot. As you can specify any location to kernel/initrd, ie, 
> any shared storage can fill this requirement.
>
> So I suggest to separate it from the network boot itself.
>
>>
>> -------
>>
>> This feature aims to develop Kimchi's support to create Guest that
>> will boot over Network using Libvirt Direct Boot
>> Libvirt details: https://libvirt.org/formatdomain.html#elementsOSKernel
>
> As Royce pointed in the other email, we will probably have problems 
> with the boot order while setting the <os> with these configuration.
>
> And while doing network boot we just need to properly configure the 
> network interface and change the boot order.
>
>> Kimchi related bug: https://github.com/kimchi-project/kimchi/issues/372
>
> This issue is not related to Direct boot. It is for Network boot 
> (DHCP/TFTP).
>
> So in summary we have 2 different features:
>
> 1. Direct boot
>    Collect info from user and properly set the XML like in 
> https://libvirt.org/formatdomain.html#elementsOSKernel
>
>    Problems to solve:
>    - how do we update the boot order in this case?
>      As I want to use it just for installation and after that the 
> guest should boot from hd.
>
> 2. Network boot
>    For reference: 
> http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/Virtualization_Deployment_and_Administration_Guide/chap-Virtualization_Host_Configuration_and_Guest_Installation_Guide-Libvirt_network_booting.html
>
>    - We need to change the boot order, setting "network" as first option
>    - Allow user to update the network interface configuration to reach 
> the server
>
>> We see three major changes in Kimchi code:
>>
>> 1- Change Template creation and update (BACKEND)
>> 2- Change Template creation and update (FRONTEND)
>> 3- Change Guest creation (BACKEND)
>>
>> Details:
>>
>> 1- Change Template creation and update (BACKEND):
>>     Backend  is going to wait for these new parameters (json) in
>> Template creation or update:
>>
>>           "netboot": {
>>         "kernel": "<KERNEL URL>",
>>         "initrd": "<INITRD URL>",
>>         "kernelargs": "<COMMAND LINE FOR KERNEL>",
>>         "repository": "<PACKAGE REPOSITORY>" (optional)
>>           }
>>
>>     Steps:
>>     src/kimchi/API.json -> change "templates_create" and
>> "template_update" to receive above parameters;
>>     src/kimchi/model/templates.py     -> change
>> "TemplatesModel.create()" to check if "netboot" comes to save data
>> properly
>>                      -> change "TemplateModel.update()" to check if
>> "netboot" comes and update data properly;
>>     doc/API.md -> change to reflect new parameters;
>>     src/kimchi/i18n.py -> add new errors if needed;
>>
>>     Other:
>>     - Change templates auto tests if necessary;
>>     - Change "VMTemplate" class in "src/kimchi/vmtemplate.py" in order
>> to probe DISTRO and VERSION;
>>
>> 2- Change Template creation and update (FRONTEND):
>>     Front-end is going to have following changes:
>>     - Add new entry in 'Add Template' window:  "Network Direct
>> Installation";
>>     - Create new window to allow user to provide new four parameters;
>>     - Change Template update window. Add new tab to change or add
>> network installation parameters;
>>
>> 3- Change Guest creation (BACKEND)
>>     Here it is necessary to change the XML creation, so we need to:
>>     src/kimchi/vmtemplate.py ->  change "VMTemplate.to_vm_xml()" to
>> check existence of parameter "netboot", then change <os> element
>> properly.
>>
>>     Other:
>>     - Change guests auto tests if necessary;
>>     - Change xml (VMTemplate) auto test if necessary;
>>
>>
>> Rodrigo Trujillo
>>
>> _______________________________________________
>> Kimchi-devel mailing list
>> Kimchi-devel at ovirt.org
>> http://lists.ovirt.org/mailman/listinfo/kimchi-devel
>>
>




More information about the Kimchi-devel mailing list