violet 工具使用说明
通过 violet 工具,支持打包 Operator、Chart、集群插件,并通过打包后的文件将对应的制品上架到平台的应用商店中。
工具使用流程
-
下载 violet 工具并在上架执行环境中安装(仅初次需要操作)。
-
执行 violet create 命令对应用进行初始化(需提前准备好应用相关的镜像等物料)。
-
执行 violet package 命令对应用进行打包。
-
执行 violet push 命令解压并一键上架应用。
下载并安装工具
violet 工具支持在 Linux、MacOS、Windows 三种操作系统中,x86 和 ARM 架构下使用。平台管理员可通过 平台管理 -> 应用商店管理 -> 应用上架 功能页面下载 violet 工具。
根据自己当前系统环境,下载得到二进制文件后,进行安装:
-
linux 或 macOS 系统参考下面命令
# linux x86 mv -f violet_linux_amd64 /usr/bin/violet # linux ARM mv -f violet_linux_arm64 /usr/bin/violet # macOS x86 mv -f violet_darwin_amd64 /usr/bin/violet # macOS ARM mv -f violet_darwin_arm64 /usr/bin/violet -
windows 系统参考下面的命令
# windows x86 mv -Force violet_windows_amd64.exe violet.exe
windows 系统,将下载得到的文件重命名为 violet.exe,在 violet.exe 所在目录下,通过 powershell 命令行运行该工具即可。
注意事项
希望将应用上架到 部署平台(Global集群)使用的镜像仓库 中管理时,根据待上架应用的类型,执行以下 打包上架 Operator、打包上架 Chart、打包上架 集群插件 中的单一章节即可。
希望将应用上架到 业务应用使用的镜像仓库(非部署平台时使用的镜像仓库) 中管理时,请阅读 应用上架到非平台仓库 后,再执行以下相应章节完成应用上架。
打包上架 Operator
打包
说明
Operator 需要导出的工件组成:
- 一个 operator bundle 镜像(容器镜像)
- operator 需要用到的相关容器镜像
例子:自定义的 operator,名称是 opensearch-operator,在 harbor 仓库里存放的 OCI 路径是: harbor.demo.io/middleware/opensearchproject/opensearch-operator-bundle:v3.14.2
该 operator 用到的容器镜像是:
- harbor.demo.io/middleware/opensearchproject/busybox:1.27.2
- harbor.demo.io/middleware/opensearchproject/opensearch-operator:v3.14.2
- harbor.demo.io/middleware/opensearchproject/opensearch-dashboards:v1.0.0-17a23e1a
- harbor.demo.io/middleware/opensearchproject/opensearch:v1.0.0-17a23e1a
打包时,需要将 operator bundle 镜像和 容器镜像一起导出,并打包到一个文件里,方便传输。
操作
以 opensearch-operator 为例,打包步骤如下:
提示
- violet create 命令当前仅支持通过
--artifact参数指定一个 oci chart地址,作为打包 chart 的来源 --username和--password指定的值,是当--artifact参数指定的镜像仓库开启 basic 认证时,被认证的用户名和密码- violet create 命令会根据当前 operator bundle 中 csv 的 annotation[provider-type] 字段,将当前 operator 的类型记录到 targetCatalogSource 字段中,支持:“platform"或"system”,为空或其他字段时不记录
- 初始化
通过 violet create 命令对某个待打包的 Operator 进行初始化。
-
violet create
violet create opensearch-operator --artifact harbor.demo.io/middleware/opensearchproject/opensearch-operator-bundle:v3.14.2 --username <user> --password <password> --platforms linux/amd64 --platforms linux/arm64
参数说明:
- args[0] violet create 命令后的第一个参数,表示指定一个待打包的目录(需要是不存在的目录,会自动创建)
--artifact指定待打包的主制品的 oci 地址,例子中表示的是 opensearch-operator 的 operator bundle 镜像地址--plain主制品所在镜像仓库以 http 访问时,指定此参数,例子中镜像仓库 harbor.demo.io 是需要 https 访问,所以未指定此参数--no-auth主制品所在镜像仓库未开启 basic 认证时,指定此参数,例子中镜像仓库 harbor.demo.io 需要用户名、密码认证,所以未指定此参数--username主制品所在镜像仓库开启 basic 认证时,指定此参数设置用户名--password主制品所在镜像仓库开启 basic 认证时,指定此参数设置密码--platforms期望导出的容器镜像所支持的系统架构,linux/amd64 表示 x86,linux/arm64 表示 ARM,不指定此参数默认表示以当前系统架构执行--skip-package-images表示打包时会忽略任何 oci 制品以及容器镜像(针对不需要镜像搬迁的场景,只需要生成配置文件,上架时只创建对应的cr资源)--debug打印 debug 日志信息
- 打包
通过 violet package 命令打包某个 Operator。打包命令将会把 Operator bundle 镜像、所有相关的容器镜像以及 manifest.yaml 文件打包成一个 tgz 文件。
-
violet package
violet package opensearch-operator --username <user> --password <password>
参数说明:
- args[0] violet package 命令后的第一个参数,指定通过 violet create 初始化生成的待打包目录
--plain镜像仓库以 http 访问时,指定此参数(保持与 violet create 命令相同即可)--no-auth镜像仓库未开启 basic 认证时,指定此参数(保持与 violet create 命令相同即可)--username镜像仓库开启 basic 认证时,指定此参数设置用户名(保持与 violet create 命令相同即可)--password镜像仓库开启 basic 认证时,指定此参数设置密码(保持与 violet create 命令相同即可)--output表示打包成功后生成的文件名称(指定名称时不需要携带 .tgz 后缀),当不指定该参数时,工具默认命名规则为:. .tgz --debug打印 debug 日志信息
上架
说明
上架前的准备工作:
- 参考上面的步骤安装 violet 工具
- 获取通过上述打包步骤制作的 tgz 包,存放到安装有 violet 工具环境的任意目录下
- 确保当前环境能够访问待上架的容器平台地址
操作
通过 violet push 命令,将自动解压 tgz 包,并将所有的制品和镜像都上传到平台的 global registry 镜像仓库中,并且将 operator 上架到 operatorhub 中。
提示
- violet 执行上架时,需要指定平台地址和用户信息,通过鉴权后会自动校验当前用户是否具备平台管理员权限
- 通过 violet 执行上架操作,包括推送制品,创建必要的cr资源,执行完成后可在平台 operatorhub 页面看到新上架的 operator
- violet 在推送 artifact 和镜像时,会检查对应的镜像是否在镜像仓库中存在,存在则提示当前镜像已存在(除非增加
--force参数,会强制推送覆盖镜像仓库中的当前制品) - 支持指定文件目录,循环处理并上架多个 tgz 包
- 支持指定第三方镜像仓库地址、用户名和密码,将镜像推送到指定的仓库中
- 上架时读取配置文件中的 targetCatalogSource 字段,自动将 Operator 上架到 platform 或 system catalogsource 中,否则默认上架到 custom catalogsource
上架至平台默认镜像仓库的场景(推荐)
-
violet push
violet push opensearch-operator.v3.14.2.tgz --platform-address https://192.168.0.1 --platform-username <user> --platform-password <password> or violet push opensearch-operator.v3.14.2.tgz --platform-address https://192.168.0.1 --platform-token <token>
自定义镜像仓库地址场景
-
violet push
violet push opensearch-operator.v3.14.2.tgz --platform-address https://192.168.0.1 --platform-username <user> --platform-password <password> --dst-repo 10.10.1.1:11443 --username <user> --password <password> or violet push opensearch-operator.v3.14.2.tgz --platform-address https://192.168.0.1 --platform-username <user> --platform-password <password> --dst-repo 10.10.1.1:11443 --no-auth --plain
参数说明:
- arg[0] 被 violet package 打包的 tgz 文件,支持包含 tgz 包的文件目录(批量上架)
--platform-address容器平台环境访问地址--platform-username容器平台环境以 basicAuth 方式登录的用户名--platform-password容器平台环境以 basicAuth 方式登录的用户密码--platform-token容器平台环境以 token 方式登录的 token 内容--skip-push表示忽略推送制品及相关镜像,默认为 false--force表示强制覆盖已经存在的制品和相关镜像,并强制更新已经存在的 cr 资源,默认为 false--dest-repo目标镜像仓库地址,自定义镜像仓库地址场景下指定此参数--plain自定义镜像仓库以 http 访问时,指定此参数--no-auth自定义镜像仓库未开启 basic 认证时,指定此参数--username自定义镜像仓库开启 basic 认证时,指定此参数设置用户名--password自定义镜像仓库开启 basic 认证时,指定此参数设置密码--image-pull-secret自定义镜像仓库拉取镜像 secret 名称,一般存放在 global 的 system 命名空间下,如果不存在需要手动创建(创建命令参考下面的示例)--target-chartrepo表示 operator 被期望上架到哪个 catalogsource 中,不指定该参数时,如果 violet 打包时记录的 targetCatalogSource 值存在,则以该值为准,不存在则默认上架到 custom catalogsource 中,指定该参数将以指定的参数值为准--clusters表示 operator 被期望上架到当前环境的哪些集群中,集群名称是以逗号隔开的字符串,比如:gloabl,cluster1,cluster2,默认仅上架到 gloabl 集群--debug打印 debug 日志信息
imagePullSecret 创建参考示例:
-
image pull secret create
kubectl create secret docker-registry <secretName> -n cpaas-system --docker-server=<registryAddress> --docker-username=<username> --docker-password=<password> --docker-email=<email>
violet push 命令执行成功后,进入平台 平台管理 -> 应用商店管理 -> Operators -> OperatorHub 页面,查验 operator 是否已在界面中展示。
打包上架 chart
打包
说明
Helm chart,需要导出的工件包括:
- 镜像仓库中存放的插件 OCI Chart
- chart 需要用到的相关容器镜像
例子:某个待打包的 chart,名称是 chartmuseum,在 harbor 仓库里存放的OCI路径是: harbor.demo.io/3rdparty/chart-chartmuseum:v3.16.1,
该chart用到的容器镜像是:harbor.demo.io/3rdparty/chartmuseum:v3.16.0,
打包时,需要将该 OCI Chart 和容器镜像一起导出,并打包到一个文件里,方便传输。
操作
以 chartmuseum chart 为例,打包步骤如下:
提示
- violet create 命令当前仅支持通过
--artifact参数指定一个 oci chart 地址,作为打包chart的来源 --username和--password指定的值,是当--artifact参数指定的镜像仓库开启 basic 认证时,被认证的用户名和密码
- 初始化
通过 violet create 命令对某个待打包的 chart 进行初始化。
-
violet create
violet create chartmuseum --artifact harbor.demo.io/3rdparty/chart-chartmuseum:v3.16.1 --username <user> --password <password> --platforms linux/amd64 --platforms linux/arm64
参数说明:
- args[0] violet create 命令后的第一个参数,表示指定一个待打包的目录(需要是不存在的目录,会自动创建)
--artifact指定待打包的主制品的 oci 地址,例子中表示的是 chart-chartmuseum 的 oci chart 地址--plain主制品所在镜像仓库以 http 访问时,指定此参数,例子中镜像仓库 harbor.demo.io 是需要 https 访问,所以未指定此参数--no-auth主制品所在镜像仓库未开启 basic 认证时,指定此参数,例子中镜像仓库 harbor.demo.io 需要用户名、密码认证,所以未指定此参数--username主制品所在镜像仓库开启 basic 认证时,指定此参数设置用户名--password主制品所在镜像仓库开启 basic 认证时,指定此参数设置密码--platforms期望导出的容器镜像所支持的系统架构,linux/amd64 表示 x86,linux/arm64 表示 ARM,不指定此参数默认表示以当前系统架构执行--skip-package-images表示打包时会忽略任何 oci 制品以及容器镜像(针对不需要镜像搬迁的场景,只需要生成配置文件,上架时只创建对应的 cr 资源)--debug打印 debug 日志信息
- 打包
通过 violet package 命令打包某个 chart,打包命令将会把 oci chart 制品、所有相关的容器镜像以及 manifest.yaml 文件打包成一个 tgz 文件。
-
violet package
violet package chartmuseum --username <user> --password <password>
参数说明:
- args[0] violet package 命令后的第一个参数,指定通过 violet create 初始化生成的待打包目录
--plain镜像仓库以 http 访问时,指定此参数(保持与 violet create 命令相同即可)--no-auth镜像仓库未开启 basic 认证时,指定此参数(保持与 violet create 命令相同即可)--username镜像仓库开启 basic 认证时,指定此参数设置用户名(保持与 violet create 命令相同即可)--password镜像仓库开启 basic 认证时,指定此参数设置密码(保持与 violet create 命令相同即可)--output表示打包成功后生成的文件名称(指定名称时不需要携带.tgz后缀),当不指定该参数时,工具默认命名规则为:. .tgz --debug打印 debug 日志信息
上架
说明
上架前的准备工作:
- 参考上面的步骤安装 violet 工具
- 获取通过上述打包步骤制作的 tgz 包,存放到安装有 violet 工具环境的任意目录下
- 确保当前环境能够访问待上架的容器平台地址
通过 violet push 命令,将自动解压 tgz 包,并将所有的制品和镜像都上传到平台的 global registry 镜像仓库中,并且自动同步目标模板仓库(当前仅支持 public-charts )。
提示
- violet 执行上架时,需要指定平台地址和用户信息,通过鉴权后会自动校验当前用户是否具备平台管理员权限
- 通过 violet 执行上架操作,包括推送制品,创建必要的cr资源,执行完成后可在平台的模板仓库详情页面看到新上架的 chart
- violet 在推送 artifact 和镜像时,会检查对应的镜像是否在镜像仓库中存在,存在则提示当前镜像已存在(除非增加
--force参数,会强制推送覆盖镜像仓库中的当前制品) - 支持指定文件目录,循环处理并上架多个 tgz 包
- 支持指定第三方镜像仓库地址、用户名和密码,将镜像推送到指定的仓库中
上架至平台默认镜像仓库的场景(推荐):
-
violet push
violet push chartmuseum-v3.16.1.tgz --platform-address https://192.168.0.1 --platform-username <user> --platform-password <password> or violet push chartmuseum-v3.16.1.tgz --platform-address https://192.168.0.1 --platform-token <token>
自定义镜像仓库地址场景:
-
violet push
violet push chartmuseum-v3.16.1.tgz --platform-address https://192.168.0.1 --platform-username <user> --platform-password <password> --dst-repo 10.10.1.1:11443 --username <user> --password <password> or violet push chartmuseum-v3.16.1.tgz --platform-address https://192.168.0.1 --platform-username <user> --platform-password <password> --dst-repo 10.10.1.1:11443 --no-auth --plain
参数说明:
- arg[0] 被 violet package 打包的 tgz 包,支持包含 tgz 包的文件目录(批量上架)
--platform-address容器平台环境访问地址--platform-username容器平台环境以 basicAuth 方式登录的用户名--platform-password容器平台环境以 basicAuth 方式登录的用户密码--platform-token容器平台环境以 token 方式登录的 token 内容--skip-push表示忽略推送制品及相关镜像,默认为 false--force表示强制覆盖已经存在的制品和相关镜像,并强制更新已经存在的cr资源,默认为 false--dest-repo目标镜像仓库地址,自定义镜像仓库地址场景下指定此参数--plain自定义镜像仓库以 http 访问时,指定此参数,--no-auth自定义镜像仓库未开启 basic 认证时,指定此参数--username自定义镜像仓库开启 basic 认证时,指定此参数设置用户名--password自定义镜像仓库开启 basic 认证时,指定此参数设置密码--image-pull-secret自定义镜像仓库拉取镜像 secret 名称,一般存放在 global 的 system 命名空间下,如果不存在需要手动创建(创建命令参考下面的示例)--target-chartrepo表示 chart 被期望上架到哪个模板仓库中,默认上架到 public-charts(该参数暂时不用,当前只支持 public-charts 模板仓库)--debug打印 debug 日志信息
imagePullSecret 创建参考示例:
-
image pull secret create
kubectl create secret docker-registry <secretName> -n cpaas-system --docker-server=<registryAddress> --docker-username=<username> --docker-password=<password> --docker-email=<email>
violet push 命令执行成功后,进入平台 平台管理 -> 应用商店管理 -> 模板仓库 名称为 public-charts 仓库的详情页面,查验 chart 是否已在界面中展示。
打包上架 集群插件
打包
说明
集群插件是一个特定的 Helm chart,相对于普通 chart,它的特别之处在于包含了一个被平台识别为集群插件的 ModulePlugin 资源,需要导出的工件包括:
- 镜像仓库中存放的插件 OCI Chart
- chart 需要用到的相关容器镜像
- 一个用来描述插件信息的 ModulePlugin 资源
例子:某个待打包的插件,名称是 cloudedge,在 harbor 仓库里存放的 OCI 路径是: harbor.demo.io/acp/chart-cloudedge:v3.16.2
该插件用到的容器镜像是:
- harbor.demo.io/acp/artifact-upload-processor:v3.16.2
- harbor.demo.io/acp/nubes:v3.16.55
描述该插件的 ModulePlugin 内容参考:
-
ModulePlugin yaml
kind: ModulePlugin metadata: annotations: cpaas.io/module-name: 'cloudedge' cpaas.io/display-name: '{"en": "Cloud Edge", "zh": "Yun bian xie tong"}' cpaas.io/built-in-plugin: 'true' labels: cpaas.io/module-catalog: "application" cpaas.io/module-type: 'plugin' cpaas.io/module-name: 'cloudedge' name: cloudedge spec: affinity: clusterAffinity: matchLabels: is-global: "true" matchExpressions: - key: cpaas.io/protocol-stack operator: NotIn values: - IPv6 name: cloudedge logo: "" description: en: "Realize distribution of helm chart to multiple edge clusters in batches" zh: "Shi xian jiang Helm chart pi liang fen fa zhi duo ge bian yuan ji qun" deleteable: true labelCluster: "false" crossClusterDependencies: [] appReleases: - name: cloudedge chartVersions: - name: acp/chart-cloudedge releaseName: cloudedge version: v3.16.2 mainChart: acp/chart-cloudedge upgradeRiskLevel: low upgradeRiskDescription: "Dui yi jing fen fa dao bian yuan ji qun de ying yong wu ying xiang." upgradeRiskDescriptionEn: "No impact on applications already distributed to edge clusters." deleteRiskDescription: "Xie zai hou, wu fa fang wen he shi yong yun bian xie tong xiang guan ye mian he gong neng." deleteRiskDescriptionEn: "Uninstallation prevents access and use of cloudedge collaboration related pages and features."
打包时,需要将上面插件 OCI Chart, 容器镜像和 ModulePlugin 资源一起导出,并打包到一个文件里,方便传输。
提示
- ModulePlugin yaml 资源可以携带到 chart 中,也可以在打包时通过参数额外指定。
- 打包工具会通过是否存在 ModulePlugin 资源来区分某个 Helm chart 是集群插件还是用户自定义 chart。
操作
以 cloudedge 插件为例,打包步骤如下:
提示
- violet create 命令当前仅支持通过
--artifact参数指定一个 oci chart 地址,作为打包 chart 的来源 --username和--password指定的值,是当--artifact参数指定的镜像仓库开启 basic 认证时,被认证的用户名和密码
- 初始化
通过 violet create 命令对某个待打包的插件进行初始化。
-
violet create
violet create cloudedge-plugin --artifact registry.demo.io:60080/acp/chart-cloudedge:v3.16.2 --plain --no-auth --module-plugin cloudedge-module-plugin.yaml --platforms linux/amd64 --platforms linux/arm64
参数说明:
- args[0] violet create 命令后的第一个参数,表示指定一个待打包的目录(需要是不存在的目录,会自动创建)
--artifact指定待打包的主制品的 oci 地址,例子中表示的是 chart-cloudedge 的 oci chart 地址--plain主制品所在镜像仓库以 http 访问时,指定此参数,例子中镜像仓库 registry.demo.io:60080 是需要 http 访问,否则不需要指定此参数--no-auth主制品所在镜像仓库未开启 basic 认证时,指定此参数,例子中镜像仓库 registry.demo.io:60080 不需要用户名、密码认证,否则不需要指定此参数--username主制品所在镜像仓库开启 basic 认证时,指定此参数设置用户名,例子中指定了--no-auth参数表明不需要认证,因此不需要指定此参数--password主制品所在镜像仓库开启 basic 认证时,指定此参数设置密码,例子中指定了--no-auth参数表明不需要认证,因此不需要指定此参数--platforms期望导出的容器镜像所支持的系统架构,linux/amd64 表示 x86,linux/arm64 表示 ARM,不指定此参数默认表示以当前系统架构执行--module-plugin指定待打包插件的 ModulePlugin yaml 文件,当通过该参数指定 ModulePlugin 时会覆盖 chart 中携带的 ModulePlugin(如果存在)--skip-package-images表示打包时会忽略任何oci 制品以及容器镜像(针对不需要镜像搬迁的场景,只需要生成配置文件,上架时只创建对应的 cr 资源)--debug打印 debug 日志信息
- 打包
通过 violet package 命令打包某个插件,打包命令将会把 oci chart 制品、所有相关的容器镜像以及 manifest.yaml 文件、moduleplugin.yaml 打包成一个 tgz 文件。
-
violet package
violet package cloudedge-plugin --no-auth --plain
参数说明:
- args[0] violet package 命令后的第一个参数,指定通过 violet create 初始化生成的待打包目录
--plain镜像仓库以 http 访问时,指定此参数(保持与 violet create 命令相同即可)--no-auth镜像仓库未开启 basic 认证时,指定此参数(保持与 violet create 命令相同即可)--username镜像仓库开启 basic 认证时,指定此参数设置用户名(保持与 violet create 命令相同即可)--password镜像仓库开启 basic 认证时,指定此参数设置密码(保持与 violet create 命令相同即可)--output表示打包成功后生成的文件名称(指定名称时不需要携带 .tgz 后缀),当不指定该参数时,工具默认命名规则为:. .tgz --debug打印 debug 日志信息
上架
说明
上架前的准备工作:
- 参考上面的步骤安装 violet 工具
- 获取通过上述打包步骤制作的 tgz 包,存放到安装有 violet 工具环境的任意目录下
- 确保当前环境能够访问待上架的 容器平台地址
操作
通过 violet push 命令,将自动解压 tgz 包,并将所有的制品和镜像都上传到平台的 global registry 镜像仓库中,并且自动创建 tgz 包中携带的 ModulePlugin 资源。
提示
- violet 执行上架时,需要指定平台地址和用户信息,通过鉴权后会自动校验当前用户是否具备平台管理员权限
- 通过 violet 执行上架操作,包括推送制品,创建必要的 cr 资源,执行完成后可在平台的集群插件页面看到新上架的插件
- violet 在推送 artifact 和镜像时,会检查对应的镜像是否在镜像仓库中存在,存在则提示当前镜像已存在(除非增加
--force参数,会强制推送覆盖镜像仓库中的当前制品) - 支持指定文件目录,循环处理并上架多个 tgz 包
- 支持指定第三方镜像仓库地址、用户名和密码,将镜像推送到指定的仓库中
上架至平台默认镜像仓库的场景(推荐):
-
violet push
violet push plugins-cloudedge-v0.3.16-hybrid.tgz --platform-address https://192.168.0.1 --platform-username <user> --platform-password <password> or violet push plugins-cloudedge-v0.3.16-hybrid.tgz --platform-address https://192.168.0.1 --platform-token <token>
自定义镜像仓库地址场景:
-
violet push
violet push plugins-cloudedge-v0.3.16-hybrid.tgz --platform-address https://192.168.0.1 --platform-username <user> --platform-password <password> --dst-repo 10.10.1.1:11443 --username <user> --password <password> or violet push plugins-cloudedge-v0.3.16-hybrid.tgz --platform-address https://192.168.0.1 --platform-username <user> --platform-password <password> --dst-repo 10.10.1.1:11443 --no-auth --plain
参数说明:
- arg[0] 被 violet package 打包的 tgz 包,支持包含 tgz 包的文件目录(批量上架)
--platform-address容器平台环境访问地址--platform-username容器平台环境以 basicAuth 方式登录的用户名--platform-password容器平台环境以 basicAuth 方式登录的用户密码--platform-token容器平台环境以 token 方式登录的 token 内容--skip-push表示忽略推送制品及相关镜像,默认为 false--force表示强制覆盖已经存在的制品和相关镜像,并强制更新已经存在的 cr 资源,默认为 false--dest-repo目标镜像仓库地址,自定义镜像仓库地址场景下指定此参数--plain自定义镜像仓库以 http 访问时,指定此参数,--no-auth自定义镜像仓库未开启 basic 认证时,指定此参数--username自定义镜像仓库开启 basic 认证时,指定此参数设置用户名--password自定义镜像仓库开启 basic 认证时,指定此参数设置密码--image-pull-secret自定义镜像仓库拉取镜像 secret 名称,一般存放在 global 的 system 命名空间下,如果不存在需要手动创建(创建命令参考下面的示例)--debug打印 debug 日志信息
imagePullSecret 创建参考示例:
-
image pull secret create
kubectl create secret docker-registry <secretName> -n cpaas-system --docker-server=<registryAddress> --docker-username=<username> --docker-password=<password> --docker-email=<email>
violet push 命令执行成功后,进入平台 平台管理 -> 应用商店管理 -> 集群插件 页面,查验插件是否已在界面中展示。
辅助操作
预览应用包
平台管理员拿到应用包后,准备上架前,想先确认下包中内容是否有问题,可以通过 violet show 命令查看应用包,确认无误后再选择上架到平台中使用。
-
violet show
$ violet show topolvm-operator.v2.3.0.tgz Name: NativeStor Type: bundle Arch: [linux/amd64] Version: 2.3.0 $ violet show topolvm-operator.v2.3.0.tgz --all Name: NativeStor Type: bundle Arch: [] Version: 2.3.0 Artifact: harbor.demo.io/acp/topolvm-operator-bundle:v3.11.0 RelateImages: [harbor.demo.io/acp/topolvm-operator:v3.11.0 harbor.demo.io/acp/topolvm:v3.11.0 harbor.demo.io/3rdparty/k8scsi/csi-provisioner:v3.0.0 harbor.demo.io/3rdparty/k8scsi/csi-provisioner:v2.1.1 harbor.demo.io/3rdparty/k8scsi/csi-resizer:v1.3.0 harbor.demo.io/3rdparty/k8scsi/csi-attacher:v3.3.0 harbor.demo.io/3rdparty/k8scsi/csi-snapshotter:v3.0.2 harbor.demo.io/3rdparty/k8scsi/csi-node-driver-registrar:v2.3.0 harbor.demo.io/3rdparty/k8scsi/livenessprobe:v2.4.0]