用途:该技能指导创建 Infrahub Generators——一种设计驱动的自动化,从模板与拓扑定义构建基础设施对象。Generator 通过 GraphQL 查询 Infrahub 数据,并基于结果创建新节点与关系。
主要能力:覆盖架构组件与组、Python 类(Generator、generate())、跟踪幂等(upsert)、API 参考、.infrahub.yml 注册、清理/批量/存储模式,以及 infrahubctl 测试命令。
必要用法:Generator 由三部分组成——触发它的目标组、获取设计数据的 .gql 查询文件、继承 InfrahubGenerator 并实现 generate() 的 Python 类。保存时使用 allow_upsert=True 保证幂等。需在 .infrahub.yml 的 generator_definitions 下注册并声明 watch.files 依赖。通过 infrahubctl generator 验证。
限制:若目标组不是 CoreGeneratorGroup 则不会被调度;schema 必须允许生成的对象形状,否则验证失败或创建中止;错误生成器重跑可能触发跟踪清理删除数据;导入项不会被跟踪,未声明的辅助文件变更会导致 Generator 静默停止重跑。硬件编码对象列表、重复内置 IPAM/VLAN 原语等场景应改用更便宜的层。bootstrap、seed、demo 生成器豁免。其余细节暂未提供。