Seconlay - /səˈkɒnleɪ/¶
What: Build a GUI for Seconlay Organizer: Leander Kohler, Luke Weston, Georg Murzik
- Dedicated Repository: https://gitlab.com/alasca.cloud/scl/hackathon-2026
- Teams:
- Cyberus: SCL API using svelte
- Pacifico: Compute API using raclette
- Temporary SCL API endpoint that we can use: https://export-modified-shore-kong.trycloudflare.com
- eg: https://export-modified-shore-kong.trycloudflare.com/api/v1/scs
- Temporary Compute API endpoint: that we can use: https://fires-mainly-luis-shopzilla.trycloudflare.com
- eg:
curl https://fires-mainly-luis-shopzilla.trycloudflare.com/compute/v1/vms - see https://gitlab.com/alasca.cloud/scl/scl-management/-/blob/main/nix/integration-test/compute-api.nix?ref_type=heads#L58 for our intgration test examples (e.g. images that workl)
- eg:
Compute API¶
General¶
- High level description: https://scl-management-a78dba.gitlab.io/architecture/node_api/#compute-api
- OpenAPI spec: https://scl-management-a78dba.gitlab.io/references/compute-openapi/redoc-3b24fa6c.html#tag/VM-Management/paths/1compute1v1~1vms/get
- Code path:
- https://gitlab.com/alasca.cloud/scl/scl-management/-/tree/main/compute_api
cargo run --bin compute-api
Demo Volume¶
Boot Volume¶
"remote_image": {
"size_mib": 4096,
"url": "http://sclApiNode:9999/ubuntu-22.04-server-cloudimg-amd64.raw",
"image_type": "raw"
}
Cloud Init Volume¶
{
"user-data": {
"system_info": {
"default_user": {
"name": "seven"
}
},
"password": "seven",
"chpasswd": {
"expire": false
},
"ssh_pwauth": true
},
"network": {
"version": 2,
"ethernets": {
"id0": {
"match": {
"name": "enp*"
},
"addresses": ["192.168.10.42/24"],
"gateway4": "192.168.10.1"
}
}
}
}
Takeaways¶
- Seconlay can't be used on Apple HW :(
- SCL API
- ResourceVersion is singed i64
- Compute API
- Harmonized PUT and POST endpoints (very annoying)
- More detailed OpenAPI
- e.g. alias: key not defined or non-empty string ->
- indicate that at least 1 boot_volume is required (e.g. better -> LLM)
- Update endpoint docs to indicate "Create or Update X" instead of just "Create X"