Upload Packages
平台提供了一个命令行工具 violet
,用于将从 Custom Portal 的 Marketplace 下载的软件包上传到平台。
violet
支持上传以下类型的软件包:
- Operator
- Cluster Plugin
- Helm Chart
当 Cluster Plugins 或 OperatorHub 中的软件包状态显示为 Absent
时,需要使用该工具上传对应的软件包。
violet
的上传流程主要包括以下步骤:
- 解包并提取软件包信息
- 将镜像推送到镜像仓库
- 在平台上创建 Artifact 和 ArtifactVersion 资源
目录
下载工具
支持的操作系统和架构
- Linux、macOS、Windows
- Linux 和 macOS 支持 x86 和 ARM 架构
下载步骤
- 登录 global 集群的 Web Console,切换到 Administrator 视图。
- 进入 Marketplace > Upload Packages。
- 点击 Download Packaging and Listing Tool。
- 选择与您的操作系统和架构匹配的二进制文件。
下载完成后,将工具安装到服务器或 PC 上。
Linux 或 macOS
非 root 用户:
# Linux x86
sudo mv -f violet_linux_amd64 /usr/local/bin/violet && sudo chmod +x /usr/local/bin/violet
# Linux ARM
sudo mv -f violet_linux_arm64 /usr/local/bin/violet && sudo chmod +x /usr/local/bin/violet
# macOS x86
sudo mv -f violet_darwin_amd64 /usr/local/bin/violet && sudo chmod +x /usr/local/bin/violet
# macOS ARM
sudo mv -f violet_darwin_arm64 /usr/local/bin/violet && sudo chmod +x /usr/local/bin/violet
root 用户:
# Linux x86
mv -f violet_linux_amd64 /usr/bin/violet && chmod +x /usr/bin/violet
# Linux ARM
mv -f violet_linux_arm64 /usr/bin/violet && chmod +x /usr/bin/violet
# macOS x86
mv -f violet_darwin_amd64 /usr/bin/violet && chmod +x /usr/bin/violet
# macOS ARM
mv -f violet_darwin_arm64 /usr/bin/violet && chmod +x /usr/bin/violet
Windows
-
下载文件并重命名为 violet.exe
,或者使用 PowerShell 重命名:
# Windows x86
mv -Force violet_windows_amd64.exe violet.exe
-
在 PowerShell 中运行该工具。
注意:如果工具路径未添加到环境变量,运行命令时必须指定完整路径。
前置条件
权限要求
- 必须提供有效的平台用户账号(用户名和密码)。
- 账号的 role 属性必须设置为
System
,且角色名称必须为 platform-admin-system
。
注意: 如果账号的 role 属性设置为 Custom
,则无法使用该工具。
使用工具
以下示例展示了常见的使用场景。
查看软件包信息
上传软件包前,可以使用 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.00 ...]
上传 Operator 到多个集群
使用 --clusters
参数指定目标集群。
violet push opensearch-operator.v3.14.2.tgz \
--platform-address https://192.168.0.1 \
--platform-username <user> \
--platform-password <password> \
--clusters region1,region2
注意: 如果未指定 --clusters
,Operator 默认上传到 global 集群。
上传 Cluster Plugin
violet push plugins-cloudedge-v0.3.16-hybrid.tgz \
--platform-address https://192.168.0.1 \
--platform-username <user> \
--platform-password <password>
注意: 上传 Cluster Plugin 时无需指定 --clusters
,平台会根据其 affinity 配置自动分发。如果指定了 --clusters
,该参数会被忽略。
上传目录下所有软件包
当从 Marketplace 下载多个软件包时,可以将它们放在同一目录下,一次性上传:
violet push <packages_dir_name> \
--platform-address https://192.168.0.1 \
--platform-username <user> \
--platform-password <password>
工具会自动检测目录中的软件包类型。
上传 Helm Chart
将 Helm Chart 上传到 chart 仓库:
violet push plugins-cloudedge-v0.3.16-hybrid.tgz \
--platform-address https://192.168.0.1 \
--platform-username <user> \
--platform-password <password>
注意: Helm Chart 只能上传到平台提供的默认 public-charts
仓库。
更多详情,请运行: