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

Royce Lv lvroyce at linux.vnet.ibm.com
Mon Apr 20 08:48:55 UTC 2015


On 04/15/2015 12:20 AM, 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
It is an interesting feature while we may need to separate it from the 
net boot for me, because if we use netboot, we need to configure the 
boot order in <os> section. According to the doc of libvirt, the direct 
boot is restrained to boot order for me, and their xml manipulation flow 
may need to differentiate.
> When finished, we are going to send [Part2] that will cover DHCP/TFTP, 
> etc.
>
> -------
>
> 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
> Kimchi related bug: https://github.com/kimchi-project/kimchi/issues/372
> 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