Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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 至关重要。


更多详情请参考 文件组织方式命名规范