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

Rodrigo Trujillo rodrigo.trujillo at linux.vnet.ibm.com
Tue Apr 14 16:20:04 UTC 2015


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.

-------

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




More information about the Kimchi-devel mailing list