linuxkit/docs/platform-openstack.md
Nick Jones 10b2436eec
[OpenStack] Support os-client-config usage for authentication
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>
2019-10-08 12:46:43 +01:00

63 lines
1.9 KiB
Markdown

# 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](https://docs.openstack.org/os-client-config/latest/user/configuration.html) 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:
```shell
./linuxkit push openstack \
-img-name=LinuxKitTest
./linuxkit.iso
```
## Run
Virtual machines can be launched using `linuxkit run openstack`. As an example:
```shell
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:
```shell
$ 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.
[..]
```