Sys-Operator 目录结构
概述
本文档详细说明了 Sys-Operator 的目录结构,帮助你理解系统组织和文件规范。
完整的目录结构
system_name/
├── _gal/ # 项目配置目录
│ ├── adm.gxl # 系统管理配置
│ ├── work.gxl # 工作流环境配置
│ └── project.toml # 项目元数据配置
├── sys/ # 系统定义目录
│ ├── sys_model.yml # 系统模型定义
│ ├── mod_list.yml # 模块列表定义
│ ├── vars.yml # 系统变量定义
│ ├── mods/ # 模块本地化副本
│ │ ├── module1_name/
│ │ │ └── arm-mac14-host/ # 特定平台配置
│ │ │ ├── spec/ # 规范文件
│ │ │ ├── local/ # 本地化配置
│ │ │ ├── values/ # 值文件
│ │ │ ├── vars.yml # 模块变量
│ │ │ ├── setting.yml # 本地化设置
│ │ │ └── workflows/ # 模块工作流
│ │ └── module2_name/
│ │ └── x86-ubt22-k8s/ # 不同平台配置
│ │ └── [相同结构]
│ └── workflows/ # 系统工作流定义
│ └── operators.gxl # 系统操作符工作流
├── sys-prj.yml # 系统项目配置
├── version.txt # 系统版本信息
├── .gitignore # Git 忽略文件
└── test_res/ # 测试资源目录
目录说明
_gal/
- 项目配置目录
存储 Galaxy 项目的配置文件,包括版本管理、工作流定义和项目元数据。
关键文件:
adm.gxl
: 系统管理配置,定义版本管理和发布流程work.gxl
: 工作流环境配置,定义执行环境和参数project.toml
: 项目元数据配置,包含项目基本信息
作用:
- 集中管理项目级别的配置
- 提供版本控制和发布管理
- 定义多环境执行配置
sys/
- 系统定义目录
包含系统的核心定义文件和模块的本地化副本,是 Sys-Operator 的核心目录。
关键文件:
sys_model.yml
: 系统模型定义,包含系统基本信息和目标环境mod_list.yml
: 模块列表定义,包含系统包含的所有模块配置vars.yml
: 系统变量定义,定义环境变量和配置参数
作用:
- 定义系统的基础架构
- 管理模块组合和依赖
- 配置系统级变量和参数
mods/
- 模块本地化副本
存储系统中包含的各个模块的本地化配置和文件,这些是从模块源地址复制或下载而来的。
子目录结构:
mods/
├── module_name/
│ └── platform_model/ # 平台特定配置
│ ├── spec/ # 规范文件
│ ├── local/ # 本地化配置
│ ├── values/ # 值文件
│ ├── vars.yml # 模块变量
│ ├── setting.yml # 本地化设置
│ └── workflows/ # 模块工作流
平台命名规范:
arm-mac14-host
: Apple M1/M2 芯片,macOS 系统,Host 模式x86-ubt22-host
: Intel/AMD x86,Ubuntu 22.04,Host 模式x86-ubt22-k8s
: Intel/AMD x86,Ubuntu 22.04,Kubernetes 模式
作用:
- 存储模块的本地化配置
- 支持多平台部署
- 提供模块的定制化配置
workflows/
- 系统工作流目录
包含系统级别的操作流程定义,使用 GXL 语言编写。
关键文件:
operators.gxl
: 系统操作符工作流,定义系统的生命周期管理
工作流类型:
init
: 系统初始化update
: 系统更新localize
: 系统本地化install
: 系统安装start
: 系统启动stop
: 系统停止status
: 系统状态检查
其他重要文件
sys-prj.yml
- 系统项目配置
定义系统项目的完整配置,包括:
- 测试环境配置
- 构建配置
- 发布配置
- 质量检查
- 安全配置
- 监控配置
version.txt
- 系统版本信息
简单的文本文件,包含系统版本号:
1.0.0
文件组织原则
1. 按功能分类
- 配置文件: 存储在项目根目录和
_gal/
目录 - 系统定义: 存储在
sys/
目录 - 模块文件: 存储在
sys/mods/
目录 - 工作流文件: 存储在
sys/workflows/
目录 - 测试资源: 存储在
test_res/
目录
3. 层次结构
- 项目级: 系统整体配置和元数据
- 系统级: 系统定义和配置
- 模块级: 模块具体配置和文件
- 平台级: 特定平台的配置
最佳实践
1. 目录创建
使用 gsys new
命令创建标准化的目录结构:
2. 目录维护
- 保持目录结构的标准化
- 遵循命名规范
- 定期清理无用文件
- 保持 .gitignore 文件的更新
3. 文件组织
- 相关文件放在同一目录下
- 避免文件重复
- 使用合适的文件名
- 保持文件的版本控制
4. 平台管理
- 为每个支持的创建相应平台目录
- 保持平台间配置的一致性
- 明确标记平台特定的配置
总结
Sys-Operator 的目录结构设计遵循了模块化、可维护性、可扩展性的原则。通过标准化的目录结构,可以有效地组织系统配置,管理模块依赖,并支持多平台部署。理解和遵循这个目录结构对于使用 Sys-Operator 至关重要。