运维系统应用对接详情与规范
1. 应用包套件规范
1.1 包格式信息
plugins.rpk ├── package.yml ├── package.tar.xz ├── scripts │ ├── install.sh │ ├── uninstall.sh │ ├── reinstall.sh │ ├── start.sh │ ├── stop.sh │ ├── restart.sh │ └── status.sh ├── conf │ └── resource ├── description.md ├── LICENSE └── package_icon.png
1.2 结构描述
文件/文件夹名称 | 是否必须 | 描述 | 文件类型 |
---|---|---|---|
package.yml | √ | 描述包信息的文件,包括执行与配置信息 | YML文件 |
package.tar.xz | 应用包运行文件压缩包,包含应用运行所需要的全部文件 | 压缩文件(根据实际应用结构调整) | |
scripts | √ | 应用的安装/卸载/重装/运行/停止/状态等脚本文件夹 | 文件夹 |
conf | 应用的相关配置/资源文件 | 文件夹 | |
description.md | 应用的详情描述文件 | markdown/html | |
LICENSE | 许可协议文件 | txt | |
package_icon.png | 应用的图标文件 | png/jpg/icon |
2. 应用包yml规范
2.2 YAML 字段规范说明
2.3 应用包YAML规范完整字段表
层级 | 字段路径 | 值类型 | 是否必填 | 描述 | 枚举值/备注 |
---|---|---|---|---|---|
根层级 | format | 字符串 | ✓ | 格式化版本 | 通常为"1.0" |
根层级 | package | object | ✓ | 应用包信息集 | - |
package | name | 字符串 | ✓ | 应用名称 | - |
package | displayName/zh_CN | 字符串 | 简体中文显示名 | - | |
package | displayName/en | 字符串 | 英文显示名 | - | |
package | category | 枚举 | ✓ | 应用类型 | system(系统服务)/core(核心软件包)/plugin(插件) |
package | labels | 数组 | 标签列表 | 如:["system","robot"] | |
package | description/brief | 字符串 | 简短描述 | - | |
package | description/detail | 字符串 | 详细描述 | 支持md/html格式 | |
package | version | 字符串 | ✓ | 版本号 | 格式:主.次.修订号-构建号 |
package | author | 字符串 | 作者/开发者 | - | |
package | 字符串 | 联系邮箱 | - | ||
package | url | 字符串 | 项目主页 | - | |
package | license | 字符串 | 许可协议类型 | 如:MIT/Apache-2.0 | |
package | icon | 字符串 | 图标路径 | 相对路径(文件格式不限制,可以为PNG、JPG、ICON等) | |
package | arch | 枚举 | ✓ | 平台架构 | x86/arm |
package | size | 字符串 | 应用大小 | 单位:字节 | |
package | pluginType | 枚举 | ✓ | 插件类型 | 0:示教器插件 1:控制器插件 2:ARCS 3:其他 |
package | LICENSE | 字符串 | ✓ | 许可文件路径 | - |
package | jumpto | string | 跳转链接 | - | |
package | switchStatus | int | ✓ | 功能开关 | 1:启用 0:禁用 |
package | web/name | string | Web页面名称 | - | |
package | web/navMenuList | string | 导航菜单配置 | - | |
package | wire/url | string | Wire链接地址 | - | |
根层级 | update | object | 更新配置 | - | |
update | check_updates | 布尔值 | 自动检查更新 | true/false | |
update | download | 枚举 | 下载方式 | url(URL下载)/docker(Docker)/other(其他) | |
根层级 | requirements | array | 依赖项列表 | - | |
requirements | - | 字符串 | 依赖包声明 | 格式:包名@版本范围 | |
根层级 | scripts | object | ✓ | 脚本配置集 | - |
scripts | install/method | 枚举 | ✓ | 安装方式 | shell/docker/arcs/ops |
scripts | install/env | 字符串 | ✓ | 环境变量 | - |
scripts | install/prefix | 字符串 | ✓ | 安装目录 | - |
scripts | install/script | 字符串 | 安装脚本路径 | - | |
scripts | uninstall/method | 枚举 | ✓ | 卸载方式 | shell/docker/arcs/ops |
scripts | reinstall | 枚举 | 重装方式 | shell/docker/arcs/ops | |
scripts | enable | 字符串 | ✓ | 启用脚本路径 | - |
scripts | disable | 字符串 | ✓ | 禁用脚本路径 | - |
scripts | start | 字符串 | 启动脚本路径 | - | |
scripts | stop | 字符串 | 停止脚本路径 | - | |
scripts | restart | 字符串 | 重启脚本路径 | - | |
scripts | status | 字符串 | ✓ | 状态检查脚本路径 | - |
3. yml结构示例
# yml版本信息
format: 1.0
# 安装包/应用的信息
package:
name: profinet
displayName:
zh_CN: profinet(zh_CN)
en: profinet
category: pn_server
labels: system,robot
description:
brief: This is the description information of Profinet
detail: 文件,支持 md/html 等格式
version: 0.3.0
author: aubo
email: aubo@aubo-robotics.cn
url: https://www.aubo-robotics.cn/
license:
icon: package_icon.png
pluginType: 0
arch:
size:
LICENSE:
jumpto:
switchStatus: 1
web:
name: Payload
navMenuList: navMenuGeneral
wire:
url:
# 更新相关配置
update:
check_updates:
download: download
# 依赖项
requirements:
- arcs@0.31.1+
- nginx@1.10~2.1
# 安装方式,当前只有shell
install:
method:
sh: scripts/install.sh
# 卸载方式
uninstall:
method:
sh: scripts/uninstall.sh
running_commands:
- enable: scripts/enable.sh
- disable: scripts/disable.sh
- restart:
- status: scripts/state.sh
- start: scripts/start.sh
- stop: scripts/stop.sh
- switch: scripts/switch.sh
4. 示例包
完整包示例参考: 运维系统格式包示例