uncloud-mravi/uncloud_django_based/uncloud/doc
Nico Schottelius 85b4d70592 [vpn] make a vpn creat-able!
[15:40] line:~% http -a nicoschottelius:$(pass ungleich.ch/nico.schottelius@ungleich.ch)  http://localhost:8000/net/vpn/ network_size=48  wireguard_public_key=$(wg genkey | wg pubkey)
HTTP/1.1 201 Created
Allow: GET, POST, HEAD, OPTIONS
Content-Length: 206
Content-Type: application/json
Date: Sun, 12 Apr 2020 13:40:26 GMT
Server: WSGIServer/0.2 CPython/3.7.3
Vary: Accept
X-Content-Type-Options: nosniff
X-Frame-Options: DENY

{
    "extra_data": null,
    "network": "2a0a:e5c1:203::",
    "order": null,
    "owner": 30,
    "status": "PENDING",
    "uuid": "8f977a8f-e06a-4346-94ae-8f525df58b7b",
    "wireguard_public_key": "JvCuUTZHm9unasJkGsLKN0Bf/hu6ZSIv7dnIGPyJ6xA="
}
2020-04-12 15:40:39 +02:00
..
README-how-to-configure-remote-uncloud-clients.org ++notes 2020-04-09 12:09:38 +02:00
README-how-to-create-a-product.md [doc] move readme to subdir 2020-04-06 22:08:29 +02:00
README-object-relations.md [doc] move readme to subdir 2020-04-06 22:08:29 +02:00
README-postgresql.org Add readme for postgresql support 2020-04-08 12:03:18 +02:00
README-vpn.org [vpn] make a vpn creat-able! 2020-04-12 15:40:39 +02:00
README.md [doc] move readme to subdir 2020-04-06 22:08:29 +02:00

Install

OS package requirements

Alpine:

apk add openldap-dev postgresql-dev

Debian/Devuan:

apt install postgresql-server-dev-all

Python requirements

If you prefer using a venv, use:

python -m venv venv
. ./venv/bin/activate

Then install the requirements

pip install -r requirements.txt

Database requirements

Due to the use of the JSONField, postgresql is required.

First create a role to be used:

postgres=# create role nico login;

Then create the database owner by the new role:

postgres=# create database uncloud owner nico;

Installing the postgresql service is os dependent, but some hints:

  • Alpine: apk add postgresql-server && rc-update add postgresql && rc-service postgresql start
  • Debian/Devuan: apt install postgresql

After postresql is started, apply the migrations:

python manage.py migrate

Secrets

cp uncloud/secrets_sample.py to uncloud/secrets.py and replace the sample values with real values.

Flows / Orders

Creating a VMHost

Creating a VM

  • Create a VMHost
  • Create a VM on a VMHost

Creating a VM Snapshot

Working Beta APIs

These APIs can be used for internal testing.

URL Overview

http -a nicoschottelius:$(pass ungleich.ch/nico.schottelius@ungleich.ch) http://localhost:8000

Snapshotting

http -a nicoschottelius:$(pass ungleich.ch/nico.schottelius@ungleich.ch) http://localhost:8000/vm/snapshot/  vm_uuid=$(uuidgen)