Загрузка пакетов
Платформа предоставляет инструмент командной строки violet, который используется для загрузки пакетов, скачанных из Marketplace в Customer Portal, на платформу.
violet поддерживает загрузку следующих типов пакетов:
- Operator
- Cluster Plugin
- Helm Chart
Если статус пакета в Cluster Plugins или OperatorHub отображается как Absent, необходимо использовать этот инструмент для загрузки соответствующего пакета.
Процесс загрузки с помощью violet включает следующие основные шаги:
- Распаковка и извлечение информации из пакета
- Отправка образов в реестр образов
- Создание ресурсов Artifact и ArtifactVersion на платформе
Содержание
Загрузка инструмента
Войдите в Customer Portal, перейдите на страницу Downloads и выберите CLI Tools. Скачайте бинарный файл, соответствующий вашей операционной системе и архитектуре.
После загрузки установите инструмент на ваш сервер или ПК.
Для 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 для предварительного просмотра его деталей.
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 ...]
violet push
Ниже приведены примеры типичных сценариев использования.
Перед изучением примеров обратите внимание на некоторые распространённые НЕОБЯЗАТЕЛЬНЫЕ параметры команд:
--platform-address <platform access URL> # URL доступа к платформе, например, "https://example.com"
--platform-username <platform user> # Имя пользователя платформы
--platform-password <platform password> # Пароль пользователя платформы
--clusters <cluster names> # Указание целевых кластеров через запятую (например, region1,region2)
--dest-repo <image repository URL> # Указание URL репозитория образов назначения. ОБЯЗАТЕЛЬНО при загрузке расширений в резервный кластер.
При указании `--dest-repo` необходимо также предоставить либо данные аутентификации реестра образов, либо `--no-auth`.
--username <registry user> # Имя пользователя указанного реестра образов.
--password <registry password> # Пароль указанного реестра образов.
--no-auth # Указать, если реестр образов не требует аутентификации.
--plain # Указать, если реестр образов использует HTTP вместо HTTPS.
--skip-crs # Пропустить создание ресурсов `Artifact` и `ArtifactVersion`, только отправить образы.
Это предотвращает преждевременное обновление Operators или Cluster Plugins во время процесса обновления <Term name="productShort" />.
--skip-push # Только создать ресурсы `Artifact` и `ArtifactVersion`, образы не отправлять.
Загрузка Operator в несколько кластеров
violet push opensearch-operator.v3.14.2.tgz \
--platform-address "https://example.com" \
--platform-username "<platform_user>" \
--platform-password "<platform_password>" \
--clusters region1,region2
INFO
- Если параметр
--clusters не указан, Operator загружается по умолчанию в глобальный кластер.\
Загрузка Operator в резервный глобальный кластер
violet push opensearch-operator.v3.14.2.tgz \
--platform-address "https://example.com" \
--platform-username "<platform_user>" \
--platform-password "<platform_password>" \
--dest-repo "<standby-cluster-VIP>:11443" --username "<registry-username>" --password "<registry-password>"
Загрузка Cluster Plugin
violet push plugins-cloudedge-v0.3.16-hybrid.tgz \
--platform-address "https://example.com" \
--platform-username "<platform_user>" \
--platform-password "<platform_password>"
INFO
- При загрузке Cluster Plugin параметр
--clusters указывать не нужно, так как платформа автоматически распределит его согласно конфигурации affinity.
Если --clusters указан, параметр будет проигнорирован.\
Загрузка Helm Chart в репозиторий чартов
violet push plugins-cloudedge-v0.3.16-hybrid.tgz \
--platform-address "https://example.com" \
--platform-username "<platform_user>" \
--platform-password "<platform_password>"
INFO
- Helm Charts можно загружать только в репозиторий по умолчанию
public-charts, предоставляемый платформой.\
Только отправить образы из всех пакетов в каталоге
Если из Marketplace скачано несколько пакетов, их можно поместить в один каталог и загрузить все сразу:
violet push <packages_dir_name> \
--skip-crs \
--platform-address "https://example.com" \
--platform-username "<platform_user>" \
--platform-password "<platform_password>"
Только создать CR из всех пакетов в каталоге
Если из Marketplace скачано несколько пакетов, их можно поместить в один каталог и загрузить все сразу:
violet push <packages_dir_name> \
--skip-push \
--platform-address "https://example.com" \
--platform-username "<platform_user>" \
--platform-password "<platform_password>"
--clusters "<cluster_name>"
WARNING
Если целью обновления является глобальный кластер, параметр --clusters можно опустить, так как по умолчанию загрузка происходит в глобальный кластер.
Однако если целью обновления является кластер нагрузки, необходимо обязательно указать параметр --clusters <workload_cluster_name>.