Skip to content

应用管理与 ZPK API ​

本文档说明 ZPK 应用配置、列表、安装、升级、构建镜像和应用管理相关 API。ZPK 是面板应用安装和交付的主要入口,底层通常会关联 Helm Release、Kubernetes 资源、容器镜像构建和微应用静态资源。

整体使用方式 ​

ZPK 接口用于从应用仓库读取安装配置,并完成安装、升级、构建和应用状态管理。开发时先读取配置确认安装参数,再根据应用类型决定直接安装、先构建镜像,或联动 Helm、容器镜像和静态资源接口。

基本流程 ​

  1. 调用 /panel-api/v1/zpk/config 读取仓库配置,确认应用名称、命名空间、部署项、镜像构建、PVC、域名和依赖项。
  2. 需要构建镜像时,调用 ZPK buildimage 接口创建构建任务,并结合 container-images.md 查看镜像能力。
  3. 安装或升级应用时,调用 /panel-api/v1/zpk/install,后端根据配置应用 Helm 或 Kubernetes 资源。
  4. 安装后通过 ZPK 列表、详情、升级等接口管理应用。
  5. 如果应用带微前端静态包,再结合 microapp-static.md 查询静态资源状态或触发下载。

场景选择 ​

场景使用接口说明
读取安装配置/panel-api/v1/zpk/config根据仓库地址返回安装表单和依赖
查看已安装应用/panel-api/v1/zpk/按 source=zpk 查询 Helm Release
安装或升级/panel-api/v1/zpk/install提交安装参数
构建镜像/panel-api/v1/zpk/buildimage/*创建镜像构建 Job/CronJob
应用生命周期ZPK 管理接口列表、升级、删除或状态查询

使用边界 ​

  • ZPK 配置来自远程或本地仓库,调用前要明确 repoUrl 和第三方 CD token 来源。
  • 安装和升级会修改 Kubernetes 资源,必须明确 namespace、releaseName 和依赖关系。
  • 构建镜像涉及 Registry、containerd、Job/CronJob,失败排查需要联动容器镜像文档。
  • 微应用前端包和回源代理不在本文重复维护,见 microapp-static.md。

通用说明 ​

鉴权 ​

除明确标注为回调或公开兼容入口的接口外,ZPK 接口均需要用户 token:

http
Authorization: Bearer <user-token>

响应格式 ​

接口直接返回安装配置、Helm Release、环境变量、Job/CronJob 等业务对象,不额外包裹统一 data 字段。操作成功时部分接口返回 "success"。

参数位置 ​

安装、传统应用安装和构建任务通常使用 JSON body 或 form/query 参数混合绑定;具体以各接口请求参数表为准。涉及 URL、OCI 路径和 Chart 名称时必须做好 URL 编码。

能力概览 ​

能力说明
安装配置读取 ZPK 安装表单、依赖、域名、存储和镜像配置
应用列表与安装查询已安装 ZPK 应用,提交安装或升级
传统应用和外部依赖查询传统应用环境、安装传统应用、读取外部依赖环境
Helm/OCI内存仓库、Chart 元信息和 OCI 文件下载
镜像构建创建构建镜像 Job/CronJob,处理构建成功回调
本地地址获取本地 ZPK 访问地址

ZPK 配置 ​

GET /panel-api/v1/zpk/config ​

功能:读取指定 ZPK 仓库地址的应用安装配置,返回应用基础信息、安装依赖、部署参数、构建要求等。

请求参数:

参数位置类型必填说明
repoUrlquerystring是ZPK 仓库地址
thirdpartyCDTokenquerystring否第三方持续交付 token
releaseNamequerystring否已安装 Release 名称,升级场景可传入

响应参数:返回 PackageAddConfig[]。

字段类型说明
requireBuildbool是否需要构建镜像
namespacestring推荐或目标命名空间
requirePvcbool是否需要 PVC
requireDomainbool是否需要配置域名
requireDomainHttpsbool是否需要 HTTPS
requireDomainForcebool是否强制配置域名
startParamsobject启动参数配置
identifiestring应用唯一标识
namestring应用名称
ingressobjectIngress 配置
iconstring应用图标地址
versionstring应用版本
requireInstallbool是否需要执行安装
releaseNamestringRelease 名称
outModuleNamesarray对外依赖模块名称列表
dependsOnesarray依赖项配置
requireParentReleaseNamebool是否需要父 Release 名称
parentTitlestring父应用标题
parentIdentifiestring父应用标识
deployNamestringDeployment 名称
isHelmbool是否为 Helm 应用
deployItemsarray部署项列表
isConsolebool是否为控制台应用
zipURLstringZIP 包地址
requireLimitbool是否需要资源限制配置
volumesMountsarray容器挂载配置
volumesarrayVolume 配置
isUpgradebool是否为升级配置
installFormulasarray安装公式配置

ZPK 列表 ​

GET /panel-api/v1/zpk/ ​

功能:获取指定命名空间下通过 ZPK 安装的 Helm Release 列表。

请求参数:

参数位置类型必填说明
namespacequerystring否命名空间;未传时由服务端默认逻辑处理

响应参数:返回 Helm Release 列表,底层查询固定使用 source=zpk 标签过滤。

字段类型说明
namestringRelease 名称
namespacestringRelease 所在命名空间
versionintRelease 版本号
chartobjectChart 信息
infoobjectRelease 状态信息
manifeststringRelease 渲染后的 Manifest

说明:具体字段结构跟随 Helm Release 对象。

安装 ZPK 应用 ​

PUT /panel-api/v1/zpk/install ​

功能:安装或升级 ZPK 应用,支持普通 ZPK、Helm ZPK、传统应用等安装参数。

请求参数:JSON Body。

参数类型必填说明
namespacestring是安装命名空间
repoUrlstring是ZPK 仓库地址
releaseNamestring是Release 名称
installOptionsarray是安装项配置,见 InstallOption
ingressHoststring否Ingress 访问域名
ingressSeletorNamestring否Ingress selector 名称
ingressClassstring否IngressClass 名称
ingressForceHttpsbool否是否强制 HTTPS
thirdpartyCDTokenstring否第三方持续交付 token
clusterIdstring否集群 ID
isTranditionbool否是否传统应用安装
zipUrlstring否ZIP 包地址

InstallOption 参数:

字段类型说明
identifiestring应用或模块标识
pvcnamestringPVC 名称
registrystring镜像仓库地址
dockerRegistrySecretNamestring镜像仓库 Secret 名称
namespacestring命名空间
installIdstring安装 ID
releaseNamestringRelease 名称
suffixstring名称后缀
envkvobject环境变量键值配置
ingressSelectorNamestringIngress selector 名称
ingressHoststringIngress 访问域名
ingressClassNamestringIngressClass 名称
ingressForceHttpsbool是否强制 HTTPS
replicasint副本数
isChildbool是否子应用
isUpgradebool是否升级安装
annotationsobject注解配置
serviceAccountNamestringServiceAccount 名称
buildImageSuccessUrlstring镜像构建成功回调地址
parentReleaseNamestring父 Release 名称
preSubPathstring预置子路径
cpustringCPU 限制或请求值
memorystring内存限制或请求值
volumesarrayVolume 配置
volumesMountsarrayVolumeMount 配置

响应参数:

字段类型说明
releaseNamestringRelease 名称
installIdstring安装 ID
namespacestring安装命名空间

请求示例:

json
{
  "namespace": "default",
  "repoUrl": "oci://example.com/apps/demo",
  "releaseName": "demo",
  "installOptions": [
    {
      "identifie": "demo",
      "releaseName": "demo",
      "namespace": "default",
      "replicas": 1
    }
  ]
}

升级信息 ​

GET /panel-api/v1/zpk/upgrade-info ​

功能:检查指定 ZPK 应用是否存在可升级版本。

请求参数:

参数位置类型必填说明
namespacequerystring是Release 所在命名空间
releaseNamequerystring是Release 名称
thirdpartyCDTokenquerystring否第三方持续交付 token

响应参数:

字段类型说明
upgradebool是否可升级
versionstring可升级版本
messagestring升级说明或不可升级原因
dataobject升级检查附加数据

说明:当配置 app.upgrade_enable=false 时,接口返回不可升级结果。

镜像构建回调 ​

ANY /panel-api/v1/zpk/build-image-success ​

功能:镜像构建成功后的回调入口,用于后续更新部署域名、Deployment 等安装状态。

请求参数:

参数位置类型必填说明
namespacequery/formstring是命名空间
releaseNamequery/formstring是Release 名称
domainHostquery/formstring是访问域名
deploymentNamequery/formstring是Deployment 名称
thirdpartyCDTokenquery/formstring否第三方持续交付 token

响应参数:当前实现成功路径无显式业务响应。

传统应用环境 ​

GET /panel-api/v1/zpk/trandition/env ​

功能:获取传统应用安装环境模板。

请求参数:无。

响应参数:返回环境模板映射,key 为环境标识。

字段类型说明
zpkUrlstring环境对应的 ZPK 地址
iconstring环境图标
titlestring环境标题
detailUrlstring环境详情地址

说明:当前包含 php7.2 等传统运行环境。

安装传统应用 ​

POST /panel-api/v1/zpk/trandition/install ​

功能:按传统应用模式安装 ZIP 应用包。

请求参数:Form。

参数类型必填说明
namespacestring是安装命名空间
releaseNamestring是Release 名称
zpkUrlstring是传统环境 ZPK 地址
zipUrlstring是应用 ZIP 包地址
pvcNamestring是PVC 名称
entryRootstring是应用入口目录

响应参数:

字段类型说明
releaseNamestringRelease 名称
installIdstring安装 ID
namespacestring安装命名空间

外部依赖环境 ​

GET /panel-api/v1/zpk/out-depends/env ​

功能:查询指定依赖标识在命名空间中的安装状态和可复用环境信息。

请求参数:

参数位置类型必填说明
namespacequerystring是命名空间
identifiequerystring是依赖标识

响应参数:返回 DependEnvResult。

字段类型说明
installedbool依赖是否已安装
namestring依赖名称
staticUrlstring静态访问地址
envsobject环境变量配置
pvcNamestringPVC 名称
preSubPathstring预置子路径
preVolumeNamestring预置 Volume 名称
replicasint副本数
VolumesMountsarrayVolumeMount 配置
VolumesarrayVolume 配置

Helm 内存仓库 ​

POST /panel-api/v1/zpk/helm/memory ​

功能:创建内存态 Helm ZPK 描述,返回 memory:// 形式的 ZPK 地址。

请求参数:Form。

参数类型必填说明
identifiestring否应用标识;为空时由服务端生成
titlestring否应用标题
iconstring否应用图标
descriptionstring否应用描述
chartNamestring是Chart 名称或 tgz 路径
repositorystring否Helm 仓库地址
versionstring否Chart 版本
kvobject/string否Helm values 键值配置

说明:当 repository 为空且 chartName 指向 tgz 包时,服务端会解析包内 Chart.yaml 补充元信息。

响应参数:

字段类型说明
identifiestring应用标识
zpkUrlstring内存态 ZPK 地址,格式为 memory://{identifie}

Chart 元信息 ​

GET /panel-api/v1/zpk/helm/chart-yaml ​

功能:解析指定 Helm tgz 包中的 Chart.yaml。

请求参数:

参数位置类型必填说明
tgzPathquerystring是Helm chart tgz 文件路径

响应参数:返回解析后的 Chart.yaml 对象。

字段类型说明
apiVersionstringChart API 版本
namestringChart 名称
versionstringChart 版本
appVersionstring应用版本
descriptionstringChart 描述
typestringChart 类型

说明:实际响应字段跟随 tgz 包内 Chart.yaml 内容。

最新版本环境 ​

GET /panel-api/v1/zpk/last-version/env ​

功能:查询指定应用最新版本对应的环境信息。

请求参数:

参数位置类型必填说明
namespacequerystring是命名空间
namequerystring是应用名称

响应参数:同 GET /panel-api/v1/zpk/out-depends/env 的 DependEnvResult。

OCI 文件下载 ​

GET /panel-api/v1/zpk/oci/down/*oci ​

功能:下载 OCI ZPK 中的文件资源,例如图标、files.json、代码 ZIP 包等。

鉴权:该接口未注册 Auth 中间件。

请求参数:

参数位置类型必填说明
ocipathstring是OCI 资源路径,必须包含 oci://
mediaTypequerystring否文件媒体类型,用于设置响应 Content-Type

响应参数:文件流。

响应头说明:

mediaType 场景Content-Type
iconimage/png
files.jsonapplication/json
code zip / web-code zipapplication/zip

构建镜像 Job ​

POST /panel-api/v1/zpk/buildimage/job ​

功能:创建一次性 Kubernetes Job,用于构建并推送应用镜像。

请求参数:JSON Body,类型为 BuildImageParams。

参数类型必填说明
dockerRegistryobject否镜像仓库账号信息
dockerRegistry.hoststring否镜像仓库地址
dockerRegistry.usernamestring否镜像仓库用户名
dockerRegistry.passwordstring否镜像仓库密码
dockerRegistry.namespacestring否镜像仓库命名空间
dockerfilePathstring否Dockerfile 路径
buildContextstring否构建上下文路径
pushImagestring否推送镜像地址
zipUrlstring否源码 ZIP 地址
identifiestring否应用标识
notifyCompletionUrlstring否构建成功通知地址
notifyFailedUrlstring否构建失败通知地址
hostNetworkbool否是否使用宿主机网络
hostAliasesarray否Pod HostAliases 配置
titlestring否构建任务标题
labelsobject否Job 标签
buildJobNamestring否Job 名称
schedulestring否定时表达式;Job 接口通常不使用
dockerRegistrySecretNamestring否镜像仓库 Secret 名称
panelRegistryHoststring否面板镜像仓库地址

响应参数:返回 Kubernetes batch/v1.Job 对象。

字段类型说明
metadataobjectJob 元数据
specobjectJob 期望状态
statusobjectJob 当前状态

构建镜像 CronJob ​

POST /panel-api/v1/zpk/buildimage/cronjob ​

功能:创建 Kubernetes CronJob,用于定时构建并推送应用镜像。

请求参数:JSON Body,同 POST /panel-api/v1/zpk/buildimage/job 的 BuildImageParams,其中 schedule 用于 CronJob 定时表达式。

响应参数:返回 Kubernetes batch/v1.CronJob 对象。

字段类型说明
metadataobjectCronJob 元数据
specobjectCronJob 期望状态
statusobjectCronJob 当前状态

本地访问地址 ​

GET /panel-api/v1/zpk/local-url ​

功能:获取指定 ZPK 实例的本地访问地址、Ingress 状态和 OAuth token。

请求参数:

参数位置类型必填说明
instancequerystring否实例名称,默认 w7-zpkv2

响应参数:

字段类型说明
hoststring访问域名;未找到 Ingress 时为空字符串
hasIngressbool/string是否存在 Ingress;无 Ingress 的失败路径返回字符串 "false"
isHttpsbool是否 HTTPS
oauthTokenstringOAuth token

响应示例:

json
{
  "host": "zpk.example.com",
  "hasIngress": true,
  "isHttps": true,
  "oauthToken": "token"
}