Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
projects:cluster [2025/07/14 15:26] – created samp20 | projects:cluster [2025/07/14 16:04] (current) – Add Caddy samp20 | ||
---|---|---|---|
Line 19: | Line 19: | ||
* NFTables for firewall configuration. | * NFTables for firewall configuration. | ||
* Python Flask for config distribution. | * Python Flask for config distribution. | ||
+ | * 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), validate it and update the various components through python plugins using '' | + | The core of the system will be a python service that will receive the configuration (probably via UNIX socket |
The configuration will consist of objects representing different parts of the system that need to be configured. An example is below: | The configuration will consist of objects representing different parts of the system that need to be configured. An example is below: | ||
Line 44: | Line 45: | ||
} | } | ||
</ | </ | ||
+ | |||
+ | This configuration, | ||
+ | |||
+ | ===== RunC integration ===== | ||
+ | |||
+ | RunC containers are created with a '' | ||
+ | |||
+ | We will need a mechanism for pulling the Root filesystem. There is probably a standardized way of downloading these from a container registry and unpacking them. For now we won't worry about private registries, but something to consider if this project becomes more widespread. | ||
+ | |||
+ | ===== Network and Wireguard ===== | ||
+ | |||
+ | This will use the [[https:// | ||
+ | |||
+ | ===== NFTables ===== | ||
+ | |||
+ | NFTables comes with its own python interface that wraps around '' | ||
+ | |||
+ | The scope of this will initially be to configure the forward chains to forward from the container' | ||
+ | |||
+ | ===== Caddy ===== | ||
+ | |||
+ | Caddy can be configured directly through JSON. We can merge together multiple container configs, along with any required global configuration, | ||
+ |