init commit

This commit is contained in:
rskntroot
2025-02-17 01:06:57 +00:00
commit 503d2dd5d6
32 changed files with 1802 additions and 0 deletions

28
README.md Normal file
View File

@@ -0,0 +1,28 @@
# 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.