Zudoku
Unikraft Cloud Platform API

Unikraft Cloud Platform API

This specification describes the Unikraft Cloud Platform API, which provides mechanisms to interact with Unikraft Cloud metros. It allows you to create, manage, and interact with instances running on the platform.

Tags
Audit
Audit events attribute state changes to the operation that caused them. Events are emitted to the controller's configured log sinks and are not stored or queryable here; this API subscribes to them live.
Node
Users
Unikraft Cloud user accounts are used to manage resources, grant permissions and control usage quotas when interacting with the Unikraft Cloud API.
Images
An image is a collection of objects representing a VM which can be deployed on Unikraft Cloud. Its format is based on the OCI Image Specification. Within the context of Unikraft Cloud, these images also include a kernel component.
Certificates
Unikraft Cloud allows you to host your deployment at subdomains of the intended metro and/or use custom domains (e.g., example.com). Typically, Unikraft Cloud will automatically generate a TLS certificate for you based on Let's Encrypt™ via a DNS-01 challenge. For subdomains, your deployment will use the wildcard TLS certificate of the respective Unikraft Cloud metro. For wildcard domains you have to supply your own certificate. If you want to use Let's Encrypt™ you can use their DNS-based challenge and upload the resulting certificate to Unikraft Cloud.
Autoscale
Services allow you to load balance traffic for an Internet-facing service like a webserver by creating multiple instances within the same service. While you can add or remove instances to a service to scale your service, doing this manually makes it hard to react to changes in service load. On the other hand, always keeping a large number of instances running to cope with bursts is not an option either. This is where autoscale comes into play. With autoscale enabled, Unikraft Cloud takes the heavy lifting of constantly monitoring the load of your service and automatically creates or deletes instances as needed.
Volumes
Initrd (initial ramdisk) and actual volumes serve different purposes. An initrd is a file system loaded into memory during the boot process of the instance. Any new files created as well as any modifications made to files in the initrd are lost when the instance is stopped. In contrast, a volume is a persistent storage device that keeps data across restarts. In addition, it can be initialized with a set of files with one instance and then be detached and attached to a another one.
Service Groups
A service group on Unikraft Cloud is used to describe how your application exposes its functionality to the outside world. Once defined, assigning an instance to the service will make it accessible from the Internet. An application, running as an instance, may expose one or more ports, e.g. it listens on port 80 because your application exposes a HTTP web service. This, along with a set of additional metadata defines how the "service" is configured and accessed. For example, a service may be configured to use TLS, or be bound to a specific domain name. When an instance is assigned to a service group, it immediately becomes accessible over the Internet on the exposed public port, using the set DNS name, and is routed to the set destination port. Note: If you do not specify a DNS name when you create a service and you indicate that the application exposes some ports, Unikraft Cloud will generates a random DNS name for you. Unikraft Cloud also supports custom domains like www.example.com and wildcard domains like *.example.com.
Instances
An instance is a micro vm running an application.