503d2dd5d601aaf059d9f1fe0e5006d6b2606b32
Skyforge
Brief
Skyforge was designed to assist in render thousands of device configurations across the globe.
Assumptions
- Partitions are groups of regions
- Regions are groups of zones
- Zones are groups of devices
- Layers are groups of common devices and facilitate template mapping
Functionality
Skyforge takes a user provide regex pattern, performs a walk on a ./spec dir, and matches a list of devices specifications that do not have the word "common" in their path.
All group files are labeled with common and mappable from the file itself.
For each file_path matched, Skyforge then maps to all consituent files:
- Layer - from by the common file in parent dir and maps the region
- Zonal - from the first group of chars in filename up to a
-(region_id + zone_id) - Regional - from the region_id of containing folder
- Partitional - from either layer (common.yaml) or regional yaml
Once all files are found, a compiled_specifcation is built. This spec is then passed to Tera as context. Tera then loads the template files for that layer and renders the configuration file.
Description
Languages
Rust
100%