[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 15:55:30 UTC 2015



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