Откат обновления#
Возможность отката зависит от того, выполнены ли миграции схемы баз данных:
до стадии обновления операторов изменения обратимы; для этого достаточно вернуть манифесты исходной версии;
после обновления операторов запускаются необратимые миграции схемы баз данных, и полноценный откат возможен только с восстановлением баз данных из резервной копии, созданной на стадии подготовки.
Предупреждение
Не используйте команду kubectl delete -f с манифестами из каталога operators/ установочного пакета.
Каждый такой манифест содержит не только оператор, но и общие ресурсы платформы, в том числе пространство имен astra-automation.
Команда kubectl delete -f по такому манифесту удалит пространство имен вместе со всей платформой и ее данными.
Удаляйте объекты только адресно, по виду и названию.
Возврат манифестов#
Если миграции схемы баз данных еще не выполнялись, для отката выполните следующие действия:
Сравните текущее состояние ресурсов с манифестами, сохраненными на стадии подготовки.
Примените сохраненные определения собственных ресурсов (CRD) и объекты
Deploymentоператоров исходной версии:kubectl apply -f ~/preupgrade-exports/crds.yaml kubectl apply -f ~/preupgrade-exports/operators.yaml
Если сохранился установочный пакет версии 2.0-upd2, вместо сохраненных манифестов можно применить каталог
operators/из этого пакета.Примените исходный манифест приложения.
При необходимости восстановите исходные поля ресурсов компонентов (
AutomationController,PrivateAutomationHub,EDA) из файлаcustom-resources.yaml.Убедитесь, что объекты
Deployment,StatefulSet,ServiceиIngressвернулись к состоянию, сохраненному в файлеworkloads.yaml.
Восстановление баз данных#
Если миграции схемы уже выполнены (создано задание миграции, компоненты работали на новой версии), возврат манифестов вернет поды на образы исходной версии, однако схема баз данных останется новой, и компоненты могут не запуститься.
Для отката с восстановлением баз данных выполните следующие действия:
Остановите операторы, чтобы исключить запуск процесса Reconciliation во время восстановления:
kubectl scale deploy aa-operator-aa-manager ac-operator-ac-manager \ pah-operator-pah-manager eda-operator-eda-manager dashboard-operator-dashboard-manager \ -n astra-automation --replicas=0
Остановите компоненты платформы:
kubectl scale deploy --all -n astra-automation --replicas=0 kubectl scale sts --all -n astra-automation --replicas=0
Если СУБД PostgreSQL развернута в кластере, верните ее
StatefulSetв работу – он необходим для восстановления данных:kubectl scale sts <название StatefulSet СУБД> -n astra-automation --replicas=1
Здесь
<название StatefulSet СУБД>– название объектаStatefulSetСУБД, которое выводит командаkubectl get sts -n astra-automation.Восстановите базы данных компонентов из дампов, созданных на стадии подготовки, штатными средствами СУБД PostgreSQL, например утилитами
pg_restoreилиpsql. Для СУБД, развернутой в кластере, выполните восстановление через подStatefulSetСУБД с помощью командыkubectl exec.Убедитесь, что секреты шифрования соответствуют сохраненным в файле
encryption-secrets.yaml, так как без них компоненты не смогут расшифровать восстановленные данные.Примените сохраненные CRD и объекты
Deploymentоператоров исходной версии, затем исходный манифест приложения, как описано в инструкции по возврату манифестов. Операторы запустятся и пересоздадут компоненты на образах исходной версии.Убедитесь, что платформа вернулась в состояние
Successful, отвечает по API и все компоненты используют образы с тегом2.0-upd2; команды приведены в инструкции по проверке работоспособности.
Удаление Automation Dashboard#
Ресурс Dashboard и оператор dashboard-operator при откате можно удалить.
Удаляйте объекты адресно:
kubectl delete dashboard dashboard-demo -n astra-automation
kubectl delete deployment dashboard-operator-dashboard-manager -n astra-automation
Примечание
Том PVC собственной СУБД PostgreSQL компонента Automation Dashboard при удалении ресурса сохраняется. Если том больше не нужен, удалите его отдельно.