Upload Packages

平台提供了一个命令行工具 violet,用于将从 Custom Portal 的 Marketplace 下载的软件包上传到平台。

violet 支持上传以下类型的软件包:

  • Operator
  • Cluster Plugin
  • Helm Chart

Cluster PluginsOperatorHub 中的软件包状态显示为 Absent 时,需要使用该工具上传对应的软件包。

violet 的上传流程主要包括以下步骤:

  1. 解包并提取软件包信息
  2. 将镜像推送到镜像仓库
  3. 在平台上创建 ArtifactArtifactVersion 资源

目录

下载工具

支持的操作系统和架构

  • Linux、macOS、Windows
  • Linux 和 macOS 支持 x86ARM 架构

下载步骤

  1. 登录 global 集群的 Web Console,切换到 Administrator 视图。
  2. 进入 Marketplace > Upload Packages
  3. 点击 Download Packaging and Listing Tool
  4. 选择与您的操作系统和架构匹配的二进制文件。

下载完成后,将工具安装到服务器或 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

  1. 下载文件并重命名为 violet.exe,或者使用 PowerShell 重命名:

    # Windows x86
    mv -Force violet_windows_amd64.exe violet.exe
  2. 在 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 仓库。

更多详情,请运行:

violet --help