Open olivierlemasle opened 3 years ago
Would Fedora CoreOS accept providing official images for CloudStack?
Offhand I'd say so yes. We should probably discuss this real-time at the IRC meeting tomorrow if you're able to attend.
Ok, I'll attend.
As Afterburn has two platforms cloudstack-configdrive and cloudstack-metadata whereas Ignition has only one platform cloudstack, how does Afterburn know which platform should be used? What do you think about having a single Afterburn platform "cloudstack" trying to get metadata from both methods (like Ignition does)?
The configdrive/metadata split comes from CL times. We used to have the same split on the openstack
provider, and it proved to be quite a pain as it would require an explicit dropin/customization to enable the correct one.
I agree we can introduce an additional cloudstack
provider which probes both methods sequentially, as we did for openstack on https://github.com/coreos/afterburn/pull/462.
Expected disk image format depends on the hypervisor used in the CloudStack _zone_: * KVM supports: QCOW2, RAW, VHD, VMDK * VMware supports: OVA * Hyper-V supports: VHD, VHDX * XenServer supports: VHD
A few questions about this:
Userdata fetching (metadata http service vs configdrive) does not depend on the zone nor on the hypervisor used, but on the network used by the VM instance. A network has a network offering, which may provide some services (DHCP, DNS, Firewall, etc.). The service "UserData" may be provided by VirtualRouter (metadata http service) or by "ConfigDrive". In the same zone, some VMs can therefore have their userdata provided by the VirtualRouter whereas other VMs have userdata provided by ConfigDrive.
I suppose that VMware is still the hypervisor the most used with CloudStack, followed by KVM and XenServer. I do not have statistics, that's what I guess from seeing CloudStack projects in various companies. Images provided by CloudStack community members for CoreOS Container Linux (and other OS) are available on 4 formats.
From yesterday meeting:
ip route show default
).
Apache CloudStack was supported by the old CoreOS Container Linux, so there's already a CloudStack support in Ignition and Afterburn, but broken since Fedora CoreOS switched from systemd-networkd to NetworkManager.
[x] Why is the platform important? Who uses it?
Apache CloudStack is open source software designed to deploy and manage large networks of virtual machines, as a highly available, highly scalable Infrastructure as a Service (IaaS) cloud computing platform.
CloudStack is a turnkey solution that includes the entire "stack" of features most organizations want with an IaaS cloud: compute orchestration, Network-as-a-Service, user and account management, a full and open native API, resource accounting, and a first-class User Interface (UI). CloudStack currently supports the most popular hypervisors: VMware, KVM, Citrix XenServer, Microsoft Hyper-V...
Apache CloudStack powers thousands of clouds and billions of dollars in transactions across an array of organizations that include Apple, BT, INRIA, Royal Melbourne Institute of Technology (RMIT), SAP, Taiwan Mobile, Verizon, and WebMD, among others. A list of some of Apache CloudStack’s users are available at http://cloudstack.apache.org/users.html
[x] What is the official name of the platform? Is there a short name that's commonly used in client API implementations?
Official name: Apache CloudStack Common name: cloudstack
[x] How can the OS retrieve instance userdata? What happens if no userdata is provided?
Two userdata methods are available in CloudStack:
Ignition and Afterburn already support both methods.
However, the "metadata" solution is broken currently for both Ignition and Afterburn, as it relies on DHCP leases on
/run/systemd/netif/leases/
to get the address of the virtual router. Since fcos uses NetworkManager instead of systemd-networkd, this has to be adapted (cf https://github.com/coreos/afterburn/issues/146)[x] Does the platform provide a way to configure SSH keys for the instance? How can the OS retrieve them? What happens if none are provided?
Yes, SSH keys can optionally be provided. They are available in metadata (both methods - see above); this is already implemented in Afterburn.
[x] How can the OS retrieve network configuration? Is DHCP sufficient, or is there some other network-accessible metadata service?
DHCP
[x] In particular, how can the OS retrieve the system hostname?
DHCP
[x] Does the platform require the OS to have a specific console configuration?
No
[x] Is there a mechanism for the OS to report to the platform that it has successfully booted? Is the mechanism required?
No mechanism
[x] Does the platform have an agent that runs inside the instance? Is it required? What does it do? What language is it implemented in, and where is the source code repository?
No agent
[x] How are VM images uploaded to the platform and published to other users? Is there an API? What disk image format is expected?
Images are uploaded using an API, from a HTTP(S) URL. Expected disk image format depends on the hypervisor used in the CloudStack zone:
[x] Are there any other platform quirks we should know about?
Compression format
xz
may not be used for templates. Templates may use.gz
,.bz2
or.zip
I've already started working on adding CloudStack support. My main questions are:
guestinfo.ignition.config.data
). Does that mean having another vmware template file?cloudstack-configdrive
andcloudstack-metadata
whereas Ignition has only one platformcloudstack
, how does Afterburn know which platform should be used? What do you think about having a single Afterburn platform "cloudstack" trying to get metadata from both methods (like Ignition does)?