<div dir="ltr">I'm confused about the design of AE to be honest. Is there a good reason that this functionality couldn't be provided by cloud-init? I think there's a lot of cost in deviating from the industry standard, so the reasons to do so have to be really solid.<div><br></div><div>I'm also a bit confused by what seems to be support for streaming configuration. Is there any documentation on the design of AE anywhere?</div><div><br></div><div>Thanks,</div><div>Michael</div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Apr 17, 2018 at 6:58 PM, Chen CH Ji <span dir="ltr"><<a href="mailto:jichenjc@cn.ibm.com" target="_blank">jichenjc@cn.ibm.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><p><font size="2">For the question on AE documentation, it's open source in [1] and the documentation for how to build and use is [2] </font><br><font size="2">once our code is upstream, there are a set of documentation change which will cover this image build process by</font><br><font size="2">adding some links to there [3]</font><br><br><font size="2">You are right, we need image to have our Active Engine, I think different arch and platform might have their unique</font><br><font size="2">requirements and our solution our Active Engine is very like to cloud-init so no harm to add it from user's perspective</font><br><font size="2">I think later we can upload image to some place so anyone is able to consume it as test image if they like </font><br><font size="2">because different arch's image (e.g x86 and s390x) can't be shared anyway. </font><br><br><font size="2">For the config drive format you mentioned, actually, as previous explanation and discussion witho Michael and Dan, </font><br><font size="2">We found the iso9660 can be used (previously we made a bad assumption) and we already changed the patch in [4],</font><br><font size="2">so it's exactly same to other virt drivers you mentioned , we don't need special format and iso9660 works perfect for our driver</font><br><br><font size="2">It make sense to me we are temply moved out from runway, I suppose we can adjust the CI to enable the run_ssh = true</font><br><font size="2">with config drive functionalities very soon and we will apply for review after that with the test result requested in our CI log.</font><br><br><font size="2">Thanks</font><br><br><font size="2">[1] </font><a href="https://github.com/mfcloud/python-zvm-sdk/blob/master/tools/share/zvmguestconfigure" target="_blank"><font size="2">https://github.com/mfcloud/<wbr>python-zvm-sdk/blob/master/<wbr>tools/share/zvmguestconfigure</font></a><br><font size="2">[2] </font><a href="http://cloudlib4zvm.readthedocs.io/en/latest/makeimage.html#configuration-of-activation-engine-ae-in-zlinux" target="_blank"><font size="2">http://cloudlib4zvm.<wbr>readthedocs.io/en/latest/<wbr>makeimage.html#configuration-<wbr>of-activation-engine-ae-in-<wbr>zlinux</font></a><br><font size="2">[3] </font><a href="https://review.openstack.org/#/q/status:open+project:openstack/nova+branch:master+topic:bp/add-zvm-driver-rocky" target="_blank"><font size="2">https://review.openstack.org/#<wbr>/q/status:open+project:<wbr>openstack/nova+branch:master+<wbr>topic:bp/add-zvm-driver-rocky</font></a><br><font size="2">[4]  </font><a href="https://review.openstack.org/#/c/527658/33/nova/virt/zvm/utils.py" target="_blank"><font size="2">https://review.openstack.org/#<wbr>/c/527658/33/nova/virt/zvm/<wbr>utils.py</font></a><font size="2">    line 104 </font><br><span class=""><br><font size="2">Best Regards! <br><br>Kevin (Chen) Ji 纪 晨<br><br>Engineer, zVM Development, CSTL<br>Notes: Chen CH Ji/China/IBM@IBMCN   Internet: <a href="mailto:jichenjc@cn.ibm.com" target="_blank">jichenjc@cn.ibm.com</a><br>Phone: +86-10-82451493<br>Address: 3/F Ring Building, ZhongGuanCun Software Park, Haidian District, Beijing 100193, PRC </font><br><br></span><img width="16" height="16" src="cid:1__=8FBB08E1DFA381C58f9e8a93df938690918c8FB@" border="0" alt="Inactive hide details for melanie witt ---04/17/2018 09:21:03 AM---On Mon, 16 Apr 2018 14:56:06 +0800, Chen Ch Ji wrote: >  >>>"><font size="2" color="#424282">melanie witt ---04/17/2018 09:21:03 AM---On Mon, 16 Apr 2018 14:56:06 +0800, Chen Ch Ji wrote: >  >>>The "iso file" will not be inside the gu</font><span class=""><br><br><font size="2" color="#5F5F5F">From:        </font><font size="2">melanie witt <<a href="mailto:melwittt@gmail.com" target="_blank">melwittt@gmail.com</a>></font><br><font size="2" color="#5F5F5F">To:        </font><font size="2"><a href="mailto:openstack-dev@lists.openstack.org" target="_blank">openstack-dev@lists.openstack.<wbr>org</a></font><br></span><font size="2" color="#5F5F5F">Date:        </font><font size="2">04/17/2018 09:21 AM</font><span class=""><br><font size="2" color="#5F5F5F">Subject:        </font><font size="2">Re: [openstack-dev] [Nova] z/VM introducing a new config driveformat</font><br></span></p><hr width="100%" size="2" align="left" noshade style="color:#8091a5"><br><br><br><tt><font size="2"><div><div class="h5">On Mon, 16 Apr 2018 14:56:06 +0800, Chen Ch Ji wrote:<br>>  >>>The "iso file" will not be inside the guest, but rather passed to <br>> the guest as a block device, right?<br>> Cloud init expects to find a config drive with following requirements <br>> [1], in order to make cloud init able to consume config drive , we <br>> should be able to prepare it,<br>> in some hypervisor, you can define something like following to the VM <br>> then VM startup is able to consume it<br>> <source file="/var/log/cloud/new/abc.<wbr>iso"/><br>> but for z/VM case it allows disk to be created during VM create (define <br>> )stage but no disk format set, it's the operating system's <br>> responsibility to define the purpose of the<br>> disk, so what we do is<br>> 1) first when we build image ,we create a small AE like cloud-init but <br>> only purpose is to get files from z/VM internal pipe and handle config <br>> drive case<br><br>What does AE stand for? So, this means in order to use the z/VM driver, <br>users must have special images that will ensure the config drive will be <br>readable by cloud-init. They can't use standard cloud images.<br><br>> 2) During spawn we create config drive in nova-compute side then send <br>> the file to z/VM through z/VM internal pipe (omit detail here)<br>> 3) During startup of the virtual machine, the small AE is able to mount <br>> the file as loop device and then in turn cloud-init is able to handle it<br>> <br>> because this is our special case, we don't want to upload to cloud-init <br>> community because of uniqueness and as far as we can tell, no hook in <br>> cloud-init mechanism allowed as well<br>> to let us 'mount -o loop' ; also, from openstack point of view except <br>> this small AE (which is documented well) no special thing and <br>> inconsistent to other drivers<br>> <br></div></div>> [1]</font></tt><tt><font size="2"><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_number5_cloud-2Dinit_blob_master_cloudinit_sources_DataSourceConfigDrive.py-23L225&d=DwIGaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=8sI5aZT88Uetyy_XsOddbPjIiLSGM-sFnua3lLy2Xr0&m=yV6OJ4IfFSLoHNWAJpBF7j0sK2pgfxSEIigv8vinYw0&s=3410axnNZ_62U3HOh6i7yivyc7HyTcqwx2xuKRDEeac&e=" target="_blank">https://urldefense.<wbr>proofpoint.com/v2/url?u=https-<wbr>3A__github.com_number5_cloud-<wbr>2Dinit_blob_master_cloudinit_<wbr>sources_DataSourceConfigDrive.<wbr>py-23L225&d=DwIGaQ&c=jf_<wbr>iaSHvJObTbx-siA1ZOg&r=<wbr>8sI5aZT88Uetyy_XsOddbPjIiLSGM-<wbr>sFnua3lLy2Xr0&m=<wbr>yV6OJ4IfFSLoHNWAJpBF7j0sK2pgfx<wbr>SEIigv8vinYw0&s=3410axnNZ_<wbr>62U3HOh6i7yivyc7HyTcqwx2xuKRDE<wbr>eac&e=</a></font></tt><span class=""><tt><font size="2"><br><br>Where is the AE documented? How do users obtain it? What tools are they <br>supposed to use to build images to use with the z/VM driver?<br><br>That aside, from what I can see, the z/VM driver behaves unlike any <br>other in-tree driver [0-5] in how it handles config drive. Drivers are <br>expected to create the config drive and present it to the guest in <br>iso9660 or vfat format without requirement of a custom image and the <br>existing drivers are doing that.<br><br>IMHO, if the z/VM driver can't be fixed to provide proper config drive <br>support, we won't be able to approve the implementation patches. I would <br>like to hear other opinions about it.<br><br>I propose that we remove the z/VM driver blueprint from the runway at <br>this time and place it back into the queue while work on the driver <br>continues. At a minimum, we need to see z/VM CI running with <br>[validation]run_validation = True in tempest.conf before we add the z/VM <br>driver blueprint back into a runway in the future.<br><br>Cheers,<br>-melanie<br><br>[0] <br></font></tt></span><tt><font size="2"><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_openstack_nova_blob_888cd51_nova_virt_hyperv_vmops.py-23L661&d=DwIGaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=8sI5aZT88Uetyy_XsOddbPjIiLSGM-sFnua3lLy2Xr0&m=yV6OJ4IfFSLoHNWAJpBF7j0sK2pgfxSEIigv8vinYw0&s=7PXdcMLIrzcekkl0V3N1vML09CGgvali0Q4v-M_vrzk&e=" target="_blank">https://urldefense.proofpoint.<wbr>com/v2/url?u=https-3A__github.<wbr>com_openstack_nova_blob_<wbr>888cd51_nova_virt_hyperv_<wbr>vmops.py-23L661&d=DwIGaQ&c=jf_<wbr>iaSHvJObTbx-siA1ZOg&r=<wbr>8sI5aZT88Uetyy_XsOddbPjIiLSGM-<wbr>sFnua3lLy2Xr0&m=<wbr>yV6OJ4IfFSLoHNWAJpBF7j0sK2pgfx<wbr>SEIigv8vinYw0&s=<wbr>7PXdcMLIrzcekkl0V3N1vML09CGgva<wbr>li0Q4v-M_vrzk&e=</a></font></tt><tt><font size="2"><br>[1] <br></font></tt><tt><font size="2"><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_openstack_nova_blob_888cd51_nova_virt_ironic_driver.py-23L974&d=DwIGaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=8sI5aZT88Uetyy_XsOddbPjIiLSGM-sFnua3lLy2Xr0&m=yV6OJ4IfFSLoHNWAJpBF7j0sK2pgfxSEIigv8vinYw0&s=X1KzmZQEfiHW1O6N1j5vBJkERjrV0dDrZlkT3LjE5aY&e=" target="_blank">https://urldefense.proofpoint.<wbr>com/v2/url?u=https-3A__github.<wbr>com_openstack_nova_blob_<wbr>888cd51_nova_virt_ironic_<wbr>driver.py-23L974&d=DwIGaQ&c=<wbr>jf_iaSHvJObTbx-siA1ZOg&r=<wbr>8sI5aZT88Uetyy_XsOddbPjIiLSGM-<wbr>sFnua3lLy2Xr0&m=<wbr>yV6OJ4IfFSLoHNWAJpBF7j0sK2pgfx<wbr>SEIigv8vinYw0&s=<wbr>X1KzmZQEfiHW1O6N1j5vBJkERjrV0d<wbr>DrZlkT3LjE5aY&e=</a></font></tt><tt><font size="2"><br>[2] <br></font></tt><tt><font size="2"><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_openstack_nova_blob_888cd51_nova_virt_libvirt_driver.py-23L3595&d=DwIGaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=8sI5aZT88Uetyy_XsOddbPjIiLSGM-sFnua3lLy2Xr0&m=yV6OJ4IfFSLoHNWAJpBF7j0sK2pgfxSEIigv8vinYw0&s=a5XhSWf7Ws5h_OuiUc_LpMVtM4ud3GoexVM1NKpBwfM&e=" target="_blank">https://urldefense.proofpoint.<wbr>com/v2/url?u=https-3A__github.<wbr>com_openstack_nova_blob_<wbr>888cd51_nova_virt_libvirt_<wbr>driver.py-23L3595&d=DwIGaQ&c=<wbr>jf_iaSHvJObTbx-siA1ZOg&r=<wbr>8sI5aZT88Uetyy_XsOddbPjIiLSGM-<wbr>sFnua3lLy2Xr0&m=<wbr>yV6OJ4IfFSLoHNWAJpBF7j0sK2pgfx<wbr>SEIigv8vinYw0&s=a5XhSWf7Ws5h_<wbr>OuiUc_<wbr>LpMVtM4ud3GoexVM1NKpBwfM&e=</a></font></tt><tt><font size="2"><br>[3] <br></font></tt><tt><font size="2"><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_openstack_nova_blob_888cd51_nova_virt_powervm_media.py-23L120&d=DwIGaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=8sI5aZT88Uetyy_XsOddbPjIiLSGM-sFnua3lLy2Xr0&m=yV6OJ4IfFSLoHNWAJpBF7j0sK2pgfxSEIigv8vinYw0&s=w7kq1DhO7qw57H0ZX0uxkj1tFvLCeYOHU9QVUTmBehU&e=" target="_blank">https://urldefense.proofpoint.<wbr>com/v2/url?u=https-3A__github.<wbr>com_openstack_nova_blob_<wbr>888cd51_nova_virt_powervm_<wbr>media.py-23L120&d=DwIGaQ&c=jf_<wbr>iaSHvJObTbx-siA1ZOg&r=<wbr>8sI5aZT88Uetyy_XsOddbPjIiLSGM-<wbr>sFnua3lLy2Xr0&m=<wbr>yV6OJ4IfFSLoHNWAJpBF7j0sK2pgfx<wbr>SEIigv8vinYw0&s=<wbr>w7kq1DhO7qw57H0ZX0uxkj1tFvLCeY<wbr>OHU9QVUTmBehU&e=</a></font></tt><tt><font size="2"><br>[4] <br></font></tt><tt><font size="2"><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_openstack_nova_blob_888cd51_nova_virt_vmwareapi_vmops.py-23L854&d=DwIGaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=8sI5aZT88Uetyy_XsOddbPjIiLSGM-sFnua3lLy2Xr0&m=yV6OJ4IfFSLoHNWAJpBF7j0sK2pgfxSEIigv8vinYw0&s=_G6MIr7OqLH48t8b8JGMVhg6bgCPg8bgHbPez9ohbG0&e=" target="_blank">https://urldefense.proofpoint.<wbr>com/v2/url?u=https-3A__github.<wbr>com_openstack_nova_blob_<wbr>888cd51_nova_virt_vmwareapi_<wbr>vmops.py-23L854&d=DwIGaQ&c=jf_<wbr>iaSHvJObTbx-siA1ZOg&r=<wbr>8sI5aZT88Uetyy_XsOddbPjIiLSGM-<wbr>sFnua3lLy2Xr0&m=<wbr>yV6OJ4IfFSLoHNWAJpBF7j0sK2pgfx<wbr>SEIigv8vinYw0&s=_<wbr>G6MIr7OqLH48t8b8JGMVhg6bgCPg8b<wbr>gHbPez9ohbG0&e=</a></font></tt><tt><font size="2"><br>[5] <br></font></tt><tt><font size="2"><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_openstack_nova_blob_888cd51_nova_virt_xenapi_vm-5Futils.py-23L1151&d=DwIGaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=8sI5aZT88Uetyy_XsOddbPjIiLSGM-sFnua3lLy2Xr0&m=yV6OJ4IfFSLoHNWAJpBF7j0sK2pgfxSEIigv8vinYw0&s=LZK-0hqXfMqBaLHUHMA4kjE-mReBuP1vw9pYGPoqAxU&e=" target="_blank">https://urldefense.proofpoint.<wbr>com/v2/url?u=https-3A__github.<wbr>com_openstack_nova_blob_<wbr>888cd51_nova_virt_xenapi_vm-<wbr>5Futils.py-23L1151&d=DwIGaQ&c=<wbr>jf_iaSHvJObTbx-siA1ZOg&r=<wbr>8sI5aZT88Uetyy_XsOddbPjIiLSGM-<wbr>sFnua3lLy2Xr0&m=<wbr>yV6OJ4IfFSLoHNWAJpBF7j0sK2pgfx<wbr>SEIigv8vinYw0&s=LZK-<wbr>0hqXfMqBaLHUHMA4kjE-<wbr>mReBuP1vw9pYGPoqAxU&e=</a></font></tt><span class=""><tt><font size="2"><br><br>______________________________<wbr>______________________________<wbr>______________<br>OpenStack Development Mailing List (not for usage questions)<br>Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" target="_blank">OpenStack-dev-request@lists.<wbr>openstack.org?subject:<wbr>unsubscribe</a><br></font></tt></span><tt><font size="2"><a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.openstack.org_cgi-2Dbin_mailman_listinfo_openstack-2Ddev&d=DwIGaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=8sI5aZT88Uetyy_XsOddbPjIiLSGM-sFnua3lLy2Xr0&m=yV6OJ4IfFSLoHNWAJpBF7j0sK2pgfxSEIigv8vinYw0&s=SiDXOoY94EWr2-3GDE9_5U6tsqgl7OqwbFzSwJrGAzA&e=" target="_blank">https://urldefense.proofpoint.<wbr>com/v2/url?u=http-3A__lists.<wbr>openstack.org_cgi-2Dbin_<wbr>mailman_listinfo_openstack-<wbr>2Ddev&d=DwIGaQ&c=jf_<wbr>iaSHvJObTbx-siA1ZOg&r=<wbr>8sI5aZT88Uetyy_XsOddbPjIiLSGM-<wbr>sFnua3lLy2Xr0&m=<wbr>yV6OJ4IfFSLoHNWAJpBF7j0sK2pgfx<wbr>SEIigv8vinYw0&s=SiDXOoY94EWr2-<wbr>3GDE9_5U6tsqgl7OqwbFzSwJrGAzA&<wbr>e=</a></font></tt><tt><font size="2"><br><br></font></tt><br><br><br>
<p></p></div>
<br>______________________________<wbr>______________________________<wbr>______________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.<wbr>openstack.org?subject:<wbr>unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/<wbr>cgi-bin/mailman/listinfo/<wbr>openstack-dev</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">Did this email leave you hoping to cause me pain? Good news!<div>Sponsor me in city2surf 2018 and I promise to suffer greatly.</div><div><span style="font-size:12.8px"><a href="http://www.madebymikal.com/city2surf-2018/">http://www.madebymikal.com/city2surf-2018/</a></span><br></div></div></div>
</div></div>