Block a user
@deploy-platform/cli (0.0.47)
Published 2026-05-28 06:54:35 +00:00 by admin
Installation
@deploy-platform:registry=npm install @deploy-platform/cli@0.0.47"@deploy-platform/cli": "0.0.47"About this package
Deploy Platform CLI
Deploy Platform 命令行工具,用于部署和管理 Kubernetes 应用。支持项目初始化、前置资源创建、四阶段部署、状态监控、回滚等完整生命周期操作。
安装
从私有 npm 仓库安装(推荐)
# 配置私有 registry(仅需执行一次)
npm config set @deploy-platform:registry https://codehub.zlinkcloudtech.com/api/packages/admin/npm/
npm config set -- '//codehub.zlinkcloudtech.com/api/packages/admin/npm/:_authToken' "your-token-here"
# 全局安装
npm install -g @deploy-platform/cli
或者创建 ~/.npmrc 文件:
@deploy-platform:registry=https://codehub.zlinkcloudtech.com/api/packages/admin/npm/
//codehub.zlinkcloudtech.com/api/packages/admin/npm/:_authToken="your-token-here"
always-auth=true
从源码构建
git clone https://codehub.zlinkcloudtech.com/admin/deploy.git
cd deploy/cli
npm install
npm run build
npm link
验证安装
deploy --version
deploy --help
初始配置
安装完成后,配置后端 API 地址和认证 Token:
deploy config set api.url http://your-backend:8000/api/v1
deploy config set api.token your-access-token
配置项说明
| 配置项 | 说明 | 默认值 |
|---|---|---|
api.url |
后端 API 地址 | http://localhost:8000/api/v1 |
api.token |
API 认证 Token | 无 |
api.timeout |
API 请求超时(毫秒) | 30000 |
cli.autoUpdateCheck |
启动时自动检查新版本 | true |
cli.npmRegistry |
升级时使用的 npm registry | 私有 registry |
命令参考
所有操作型命令均需要
<project-name>参数(或在deploy.yaml所在目录运行,自动读取项目名)。
deploy init <project-name>
初始化项目配置文件并注册到后端服务。
deploy init <project-name> [选项]
选项:
-t, --template <name> 从远程模板创建(nodejs-web / python-api / worker)
-f, --file <path> 使用已有的 deploy.yaml 直接注册(跳过交互式配置)
-o, --output <path> 配置文件输出目录(模板/交互模式下有效)
-d, --dry-run 试运行,生成配置文件但不注册到后端
示例:
deploy init my-app # 交互式创建
deploy init my-app -t nodejs-web # 从模板创建
deploy init my-app -f ./deploy.yaml # 使用已有配置注册
deploy run <project-name>
执行完整的四阶段部署流程(检查 → 前置资源 → Helm 部署 → 健康检查)。
deploy run <project-name> [选项]
选项:
--skip-check 跳过部署前检查阶段
--skip-prereq 跳过前置资源创建阶段
--skip-health 跳过健康检查阶段
--dry-run 模拟运行,不实际部署
示例:
deploy run my-app # 完整四阶段部署
deploy run my-app --skip-prereq # 跳过前置资源(资源已存在时使用)
deploy run my-app --dry-run # 试运行
deploy status <project-name> [deployment-id]
查看部署状态和进度。
deploy status <project-name> [deployment-id] [选项]
选项:
--watch 持续监控,轮询显示状态变化
--interval <seconds> 监控轮询间隔(秒),默认 5
示例:
deploy status my-app # 查看最新部署状态
deploy status my-app <uuid> # 查看指定部署
deploy status my-app --watch # 实时监控
deploy check <project-name>
执行部署前检查(集群连通性、Chart 存在性、镜像存在性、Namespace、前置资源就绪等)。
deploy check <project-name> [选项]
选项:
--health 执行健康检查
--prereq 检查前置资源状态
--deployments 检查部署状态
--all 执行所有检查
示例:
deploy check my-app
deploy check my-app --all
deploy prereq <project-name>
创建项目的前置资源(Kubernetes Namespace、域名 DNS、CFS 存储等)。
deploy prereq <project-name> [选项]
选项:
--skip 跳过实际创建,仅在数据库中创建记录
--k8s-only 仅创建 Kubernetes 资源(Namespace 等)
--tf-only 仅执行 Terraform 资源(DNS、CFS 等)
-y, --yes 跳过确认提示
示例:
deploy prereq my-app
deploy prereq my-app --k8s-only -y
deploy history <project-name>
查看部署或回滚历史记录。
deploy history <project-name> [选项]
选项:
--type <type> 历史类型:deployments 或 rollbacks(默认 deployments)
--limit <n> 显示数量限制(默认 10)
--page <n> 页码(默认 1)
--status <status> 按状态过滤
--all 显示全部历史记录
示例:
deploy history my-app
deploy history my-app --limit 20 --status success
deploy history my-app --type rollbacks
deploy rollback <project-name>
回滚到指定部署版本。
deploy rollback <project-name> [选项]
选项:
--deployment-id <id> 指定要回滚到的部署 ID(从 deploy history 获取)
--reason <text> 回滚原因(默认 "manual")
--dry-run 模拟回滚,不实际执行
-y, --yes 跳过确认提示
示例:
deploy rollback my-app
deploy rollback my-app --deployment-id <uuid> -y
deploy list
列出所有已注册的项目。
deploy list [选项]
选项:
--status <status> 按状态过滤(registered / deployed / failed 等)
--limit <n> 显示数量限制(默认 50)
--page <n> 页码(默认 1)
deploy show <project-name>
查看项目详情和当前配置。
deploy show <project-name>
deploy update <project-name>
更新已注册项目的配置。
deploy update <project-name> [选项]
选项:
-f, --file <path> 从配置文件更新
deploy export <project-name>
将项目配置导出为 deploy.yaml 文件。
deploy export <project-name> [选项]
选项:
-o, --output <path> 输出文件路径(默认 ./deploy.yaml)
deploy clean <project-name>
清理项目的 Kubernetes 资源和/或历史记录。
deploy clean <project-name> [选项]
选项:
--include-terraform 同时清理 Terraform 管理的云资源
--history 清理历史记录
--before <date> 仅清理指定时间之前的记录(ISO 8601 格式)
deploy delete <project-name>
从后端注销并删除项目。
deploy delete <project-name> [选项]
选项:
-f, --force 强制删除,不弹出确认提示
deploy template
管理部署模板。
deploy template list # 列出远程仓库中的可用模板
deploy template show <template-name> # 查看模板详情和字段说明
deploy config
管理 CLI 本地配置(存储在 ~/.config/@deploy-platform/cli/config.json)。
deploy config get [key] # 查看配置(不传 key 则显示全部)
deploy config set <key> <value> # 设置配置项
deploy config reset # 重置为默认值
deploy upgrade
将 CLI 升级到最新版本。
deploy upgrade [选项]
选项:
--check 仅检查是否有新版本,不执行升级
--yes 跳过确认提示直接升级
# 自定义 npm registry
deploy config set cli.npmRegistry https://your-registry.com
deploy.yaml 配置格式
deploy init 生成的项目配置文件示例:
apiVersion: deploy/v1
project: my-app
namespace: prod-team-myapp # 三段式:环境-团队-项目
chart:
repo: harbor.example.com # Helm Chart 仓库地址
name: app/my-app # Chart 名称(仓库/chart)
version: "1.0.0" # Chart 版本
prerequisites:
namespace:
- name: prod-team-myapp # 需要预先创建的 Namespace
domain:
- myapp.example.com # 需要创建的域名(Terraform 管理)
health:
timeout: 180 # 健康检查超时(秒)
http:
enabled: true
path: /health # 健康检查 HTTP 路径
port: 3000
更多配置字段说明见 docs/configuration.md。
典型工作流
首次部署
# 1. 初始化并注册项目
deploy init my-app --template nodejs-web
# 2. 创建前置资源(Namespace、域名等)
deploy prereq my-app
# 3. 执行部署前检查
deploy check my-app
# 4. 部署应用
deploy run my-app
# 5. 监控部署状态
deploy status my-app --watch
更新部署
# 更新配置后直接部署(自动处理已存在的前置资源)
deploy run my-app --skip-prereq
回滚
# 查看部署历史
deploy history my-app
# 回滚到指定版本
deploy rollback my-app --deployment-id <uuid>
# 确认回滚状态
deploy status my-app
CI/CD 集成(Gitea Actions 示例)
- name: Deploy
env:
DEPLOY_API_URL: ${{ secrets.DEPLOY_API_URL }}
DEPLOY_API_TOKEN: ${{ secrets.DEPLOY_API_TOKEN }}
run: |
deploy config set api.url "$DEPLOY_API_URL"
deploy config set api.token "$DEPLOY_API_TOKEN"
deploy run my-app --skip-prereq
开发
npm run build # 构建
npm run dev # 开发模式(tsc --watch)
npm test # 运行测试(Vitest)
npm run lint # ESLint 检查
npm run typecheck # TypeScript 类型检查
相关文档
许可证
MIT
Dependencies
Dependencies
| ID | Version |
|---|---|
| axios | ^1.6.2 |
| chalk | ^5.3.0 |
| commander | ^11.1.0 |
| configstore | ^6.0.0 |
| dotenv | ^16.3.1 |
| figlet | ^1.6.0 |
| inquirer | ^9.2.10 |
| ora | ^7.0.1 |
| yaml | ^2.3.4 |
Development Dependencies
| ID | Version |
|---|---|
| @types/configstore | ^6.0.0 |
| @types/figlet | ^1.5.5 |
| @types/inquirer | ^9.0.3 |
| @types/node | ^20.9.0 |
| @typescript-eslint/eslint-plugin | ^6.11.0 |
| @typescript-eslint/parser | ^6.11.0 |
| @vitest/coverage-v8 | ^0.34.6 |
| eslint | ^8.53.0 |
| typescript | ^5.2.2 |
| vitest | ^0.34.6 |
Keywords
deploy
kubernetes
helm
cli