Update Gophercloud dependencies and also bring in the 'utils' package. This provides support for configuring access to OpenStack clouds as detailed in the [official documentation](https://docs.openstack.org/os-client-config/latest/user/configuration.html). By relying on this package we can simplify the code required to interact with OpenStack's APIs. Support is also provided upstream for self-signed and insecure SSL configurations. Tested with a public cloud running OpenStack 'Rocky', the latest release. Signed-off-by: Nick Jones <nick@dischord.org>
1.9 KiB
LinuxKit with OpenStack
LinuxKit interacts with OpenStack through its native APIs, providing basic support for pushing images and launching virtual instances.
Supported (tested) versions of the relevant OpenStack APIs are:
- Keystone v3
- Glance v2
- Nova v2
- Neutron v2
Authentication
LinuxKit's support for OpenStack includes configuring access to your cloud as detailed in the official os-client-config documentation.
Push
Image types supported:
- ami (Amazon Machine image)
- vhd (Hyper-V)
- vhdx (Hyper-V)
- vmdk (VMware Disk)
- raw (Raw disk image)
- qcow2 (Qemu disk image)
- iso (ISO9660 compatible CD-ROM image)
A compatible image needs to have the correct extension (must match one from above) in order to be supported by the linuxkit push openstack
command. The openstack
backend will use the filename extension to determine the image type, and use the filename as a label for the new image.
Images generated with Moby can be uploaded into OpenStack's image service with linuxkit push openstack
, plus a few options. For example:
./linuxkit push openstack \
-img-name=LinuxKitTest
./linuxkit.iso
Run
Virtual machines can be launched using linuxkit run openstack
. As an example:
linuxkit run openstack \
-flavor=hotdog
-keyname=deadline_ed25519 \
-sec-groups=allow_ssh,nginx \
-network c5d02c5f-c625-4539-8aed-1dab3aa85a0a \
LinuxKitTest
This will create a new instance with the same name as the image, and if successful will return the newly-created instance's UUID. You can then check the boot logs as follows, e.g:
$ openstack console log show 7cdd4d53-78b3-47c7-9a77-ba8a3f60548d
[..]
linuxkit-fa163ec840c9 login: root (automatic login)
Welcome to LinuxKit!
NOTE: This system is namespaced.
The namespace you are currently in may not be the root.
[..]