Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision | |||
| projects:cluster [2025/07/22 12:06] – samp20 | projects:cluster [2026/04/24 14:25] (current) – samp20 | ||
|---|---|---|---|
| Line 6: | Line 6: | ||
| * Be simpler to setup and use than Kubernetes. | * Be simpler to setup and use than Kubernetes. | ||
| * Work across networks. For example between a cloud provider and self-hosted. | * Work across networks. For example between a cloud provider and self-hosted. | ||
| - | * Not require a separate management service. | ||
| ===== Parts list ===== | ===== Parts list ===== | ||
| Line 13: | Line 12: | ||
| * Python based core. | * Python based core. | ||
| - | * JSON for cluster configuration. | + | * PostgreSQL database |
| - | * Will eventually be signed (possibly JWT). | + | |
| * runc (or other OCI compliant runtime) for container management. | * runc (or other OCI compliant runtime) for container management. | ||
| - | * Wireguard for the node mesh network. | ||
| * NFTables for firewall configuration. | * NFTables for firewall configuration. | ||
| - | * Python Flask for config distribution. | + | * Python Flask for web UI/API. |
| - | * Caddy for HTTPS ingress proxy | + | * Caddy for HTTPS ingress proxy. |
| ===== General architecture ===== | ===== General architecture ===== | ||
| - | The core of the system will be a python service that will receive the configuration (probably via UNIX socket so the Flask http server can be kept in a separate container), validate it and update the various components through python plugins using '' | + | {{drawio> |
| - | + | ||
| - | The configuration will consist of objects representing different parts of the system that need to be configured. An example is below: | + | |
| - | + | ||
| - | < | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | | + | |
| - | } | + | |
| - | } | + | |
| - | } | + | |
| - | </ | + | |
| - | + | ||
| - | This configuration, | + | |
| ===== RunC integration ===== | ===== RunC integration ===== | ||
| Line 73: | Line 47: | ||
| ===== Caddy ===== | ===== Caddy ===== | ||
| - | Caddy can be configured directly through JSON. We can merge together multiple container configs, along with any required global configuration, | + | Caddy can be configured directly through JSON. |