Модуль stronghold переключается с базового Stronghold на Stronghold EE указанием лицензионного ключа в параметре spec.settings.license ресурса ModuleConfig stronghold. Переустанавливать модуль и переносить данные не требуется: секреты, политики, механизмы секретов и настроенные методы аутентификации сохраняются.
Stronghold EE лицензируется отдельно и доступен для использования только в коммерческих редакциях DKP. В DKP CE переключение на Stronghold EE невозможно. Подробнее — в разделе «Редакции».
После применения лицензионного ключа поды stronghold-* пересоздаются на образе Stronghold EE по очереди, поэтому доступность сервиса остаётся прежней. Тем не менее выполняйте переключение строго в окне обслуживания.
Перед переключением
Убедитесь, что в кластере используется коммерческая редакция DKP:
d8 k -n d8-system get configmap d8-deckhouse-version-info -o jsonpath='{.data.data\.json}'В
jsonобъекте должна быть указана редакция, отличная отCE. Пример вывода:{ "channel":"Stable", "version":"v1.72.5", "edition":"EE" }Также редакцию и версию DKP можно посмотреть в веб-интерфейсе Deckhouse на главной странице панели управления кластером (
https://console.<CLUSTER_DOMAIN>).Если требуется сменить редакцию DKP, воспользуйтесь инструкцией по переключению редакции DKP.
Убедитесь, что модуль
strongholdвключён и находится в рабочем состоянии:d8 k get module stronghold d8 k get moduleconfig stronghold -o yamlПроверьте, что:
- для модуля
strongholdзначенияEnabledиReadyравныTrue; - объект ModuleConfig
strongholdсуществует.
- для модуля
Сохраните unseal-ключи и root-токен в защищённое хранилище:
d8 k -n d8-stronghold get secret stronghold-keys -o yaml > stronghold-keys.yaml chmod 600 stronghold-keys.yamlСоздайте снимок хранилища:
export STRONGHOLD_ADDR=https://$(d8 k -n d8-stronghold get ing stronghold -o json | jq -r '.spec.rules[0].host') d8 stronghold login -method=oidc -path=oidc_deckhouse # Либо через root-токен: ## d8 stronghold login -method=token d8 stronghold operator raft snapshot save stronghold-$(date +%F_%H-%M).snapПроверить снимок можно с помощью команды:
ls -lh ./stronghold-*.snapПолученные файлы храните за пределами кластера DKP.
Указание лицензионного ключа
Получите лицензионный ключ Stronghold EE у поставщика продукта.
Добавьте ключ в параметр
spec.settings.licenseресурса ModuleConfigstronghold:d8 k patch moduleconfig stronghold --type merge --patch '{"spec":{"version":1,"settings":{"license":"<STRONGHOLD_EE_LICENSE_KEY>"}}}'Тот же результат можно получить, отредактировав ModuleConfig командой
d8 k edit mc stronghold. Пример итогового манифеста:apiVersion: deckhouse.io/v1alpha1 kind: ModuleConfig metadata: name: stronghold spec: enabled: true version: 1 settings: license: <STRONGHOLD_EE_LICENSE_KEY> management: mode: Automatic administrators: - type: Group name: adminsЛицензионный ключ хранится в ModuleConfig в открытом виде. При необходимости ограничьте доступ к ресурсу средствами ролевой модели.
Дождитесь пересоздания подов Stronghold:
d8 k -n d8-stronghold get po -w
Проверка переключения
Убедитесь, что ключ сохранился в конфигурации модуля:
d8 k get moduleconfig stronghold -o jsonpath='{.spec.settings.license}'Проверьте поды
stronghold:d8 k -n d8-stronghold get poПроверьте, что:
- отсутствуют состояния
ImagePullBackOff,ErrImagePull,CrashLoopBackOff; - поды
stronghold-*находятся в состоянииRunningи имеют готовность2/2.
- отсутствуют состояния
Проверьте редакцию в стартовых строках баннера:
d8 k -n d8-stronghold logs stronghold-0 | head -20В выводе должна быть указана версия с суффиксом
ee. Например:Version: Stronghold v1.19.0+eeУбедитесь, что хранилище разблокировано:
export STRONGHOLD_ADDR=https://$(d8 k -n d8-stronghold get ing stronghold -o json | jq -r '.spec.rules[0].host') d8 stronghold statusВ выводе значение
Sealedдолжно быть равноfalse.
После переключения станут доступны возможности Stronghold EE: журнал аудита, пространства имён, репликация между кластерами, автоматические снимки, Managed Keys, управление ролями и политиками доступа через веб-интерфейс. Полный перечень отличий — в разделе «Редакции».
Возврат к базовому Stronghold CE
После удаления лицензионного ключа возможности Stronghold EE перестанут работать. Заранее отключите их использование, иначе модуль может не запуститься. В частности, установите enableAuditLog: false, остановите репликацию между кластерами и удалите созданные пространства имён.
Удалите параметр
spec.settings.licenseцеликом:d8 k patch moduleconfig stronghold --type json --patch '[{"op":"remove","path":"/spec/settings/license"}]'Дождитесь пересоздания подов и убедитесь, что в баннере указана версия без суффикса
ee:d8 k -n d8-stronghold logs stronghold-0 | head -20