Ops can integrate with your existing UpCloud account. You can use Ops CLI to create and upload an image in UpCloud account. Once, you have uploaded image, you can also create an instance with a particular image using CLI.
- Create an UpCloud account (https://upcloud.com/signup/).
- Set next environment variables.
$ export UPCLOUD_USER=<your account username>
$ export UPCLOUD_PASSWORD=<your account password>
$ export UPCLOUD_ZONE=<location of your images and instances>
Note: Check the available zones in Upcloud Documentation.
You also need to enable API access:
Images for UpCloud are created by directly creating storage through the api not by uploading to a bucket.
You can create an image in UpCloud with the following command.
$ ops image create <elf_file> -i <image_name> -t upcloud
Note: Creating an image can take a while in certain regions. There is a default timeout of 10min but can be adjusted via https://github.com/nanovms/ops/blob/master/provider/upcloud/upcloud.go#L68 . You can see the status live via https://hub.upcloud.com/storage/devices as well.
For creating an image using a particular package, you need to provide the package name to ops image create
command with -p
option.
$ ops image create -c config.json -p node_v14.2.0 -a ex.js -i <image_name> -t upcloud
You can list existing images on Upcloud with ops image list -t upcloud
.
$ ops image list -t upcloud
+--------------------------------------+------------------------+--------+---------+------------------+
| UUID | NAME | STATUS | SIZE | CREATEDAT |
+--------------------------------------+------------------------+--------+---------+------------------+
| 01071a8d-eb59-49c1-aa69-028f84cc6d06 | nanos-main-image | online | 10.0 GB | 3 days ago |
+--------------------------------------+------------------------+--------+---------+------------------+
| 01c5bd28-aa19-4883-a4c9-31f3ff9fd061 | nanos-node-image | online | 10.0 GB | 1 month ago |
+--------------------------------------+------------------------+--------+---------+------------------+
| 01cd3190-df52-47e8-b5c3-b05f7107819e | nanos-server-image | online | 10.0 GB | 1 year ago |
+--------------------------------------+------------------------+--------+---------+------------------+
ops image delete <imagename>
can be used to delete an image from UpCloud.
$ ops delete image nanos-main-image -t upcloud
After the successful creation of an image in UpCloud, we can create an instance from an existing image.
$ ops instance create <image_name> -t upcloud
You can list instance on UpCloud using ops instance list
command.
$ ops instance list -t upcloud
+--------------------------------------+------------------------+---------+-------------+-----------------------------------------+
| ID | NAME | STATUS | PRIVATE IPS | PUBLIC IPS |
+--------------------------------------+------------------------+---------+-------------+-----------------------------------------+
| 00d954cc-9603-43a0-915b-5c2ae75772b6 | nanos-main-image-15566 | stopped | 10.8.3.63 | 209.151.144.166 |
+--------------------------------------+------------------------+---------+-------------+-----------------------------------------+
Work in progress.
ops instance delete
command can be used to delete instance on UpCloud.
$ ops instance delete my-instance-running -t upcloud