In case the title was not descriptive enough, I was curious if I could build an Arm Virtual Appliance (OVA) using OVF properties that would allow for all sorts of interesting guest customizations which I have blogged about before here, here, here and here using x86 PhotonOS as a reference implementation. My idea for this actually pre-dated the release of the ESXi on Arm Fling, but it was only until recently with support for VMware Tools for Photon OS Arm, was I able to finally piece together this solution.
It was also neat to see that I could build an Arm OVA using x86 tooling (Packer and OVFTool) which ran on my desktop and you simply needed an ESXi-Arm host. This really goes to show the level of compatibility from a management and vSphere API point of view that an ESXi-Arm host behaves just like a standard x86 ESXi host!
and successfully deployed maybe the “1st” OVA on #ESXionARM?
Just confirmed all guest customization via OVF properties executed correctly! Will be publishing reference Packer image in case you wish to build your own pic.twitter.com/PiSpceXtFF
— William Lam (@lamw.bsky.social | @*protected email*) (@lamw) October 15, 2020
To demonstrate a more interesting use case than just basic network customization for the ?first? Arm OVA, I thought it would be useful to setup a simple NFS appliance that would take input from the user such the size of the exported volume (default 60GB) and then the name of the mount point. Upon first boot up, there is a guest customization script that would read in the OVF properties and configure the networking, OS password and NFS server configuration which you can certainly use to host your Arm VMs.
Similar to my original Packer x86 Photon OS reference, you can also find the Packer Photon OS Arm NFS reference in the following Github repo and for those that want to try out the appliance, I have already pre-built it and you can download from the link below.
- Github for PhotonOS Arm NFS OVA: https://github.com/lamw/photonos-arm-nfs-appliance
- Try out PhotonOS Arm NFS OVA: PhotonOS_Arm_NFS_Appliance_0.1.0.ova
You can import the PhotonOS Arm OVA using either OVFTool (x86) or the vSphere UI, but you need to deploy to a vCenter Server endpoint OVF properties are only supported when using vCenter Server. After specifying the resources to deploy the OVA, you will see a set of OVF properties to enter the hostname and IP information as well as the root password which a user must provider, there is no default password.
The next section will allow you to specify the NFS server configuration. The first is the size of the NFS export, the default is 60GB but you can change that to anything that is greater than 1GB and the OVA will dynamically deploy that configure (just one of the really cool features of OVF using the Dynamic Disks capability). The second is simply the name of the NFS volume to export which will automatically be created for you on the Photon OS filesystem. You can either leave the default or give it a custom name but if you chose a custom name, when mounting the NFS volume, just know that it will be under /mnt/[volume-name]
After the appliance is powered up, the customization should automatically run and after that you can SSH to your new Photon Arm NFS appliance using the credentials you had configured earlier.
For those interested in doing the same for x86 Photon OS, I also have the following repo and OVA since this was also useful while building out one of our VMworld demos.
- Github for PhotonOS x86 NFS OVA: https://github.com/lamw/photonos-nfs-appliance
- Try out PhotonOS x86 NFS OVA: PhotonOS_NFS_Appliance_0.1.0.ova
Raynor says
Will there be an X64 version? What software is suitable for vCloud director to provide NFS?
William Lam says
Did you actually read the full article?
afreeman4286 says
Hi William,
I'm curious about creating a boot VCH on ARM64. I'm currently utilizing the ESXi Arm Fling and have the VSphere integrated Containers installed. It appears that creating a VCH on the ESXi Arm host will not boot, guessing the appliance.iso does not contain the correct architecture needed for Arm? Are you aware of any solutions that I am missing or something in the works?
William Lam says
As far as I know, vSphere with Tanzu now supersedes the vSphere Integrated Container project. With that said, vSphere w/Tanzu and TKG is not supported on ESXi-Arm as all their deployments are still x86 systems and would have to be ported. If there's a specific use case, feel free to share it here or better yet, leave comment on the Fling site so it reaches the Product Team.
In the meantime, for general Container deployments, you can still use Docker as that's been ported to Arm or any other container runtime. For K8s, you can check out k3s which I've blogged about https://www.williamlam.com/2020/10/kubernetes-on-esxi-arm-using-k3s.html
Trevor Davis (@vTrevorDavis) says
hey William ... the OVA NFS appliance, it's configured for HW version 17, do you have an OVA with HW version 15? Need to deploy to vSphere 6.7