Обновление манифеста приложения#
Возьмите манифест приложения, с помощью которого производилось развертывание текущей платформы, или выгрузите актуальный манифест из кластера:
kubectl get aas aa-demo -n astra-automation -o yaml
Внесите в манифест изменения, описанные в этом разделе, и примените его.
Примечание
Состав и порядок изменений для базовой топологии и топологии уровня предприятия совпадают. Отличаются только значения полей, заданные при развертывании: количество реплик, параметры СУБД и тип хранилища Private Automation Hub.
Версии образов#
Переведите на новую версию все поля, в которых указан образ с тегом 2.0-upd2:
controller.control_plane_ee_image–registry.astra.ru/aa/aa-control-ee:2.1;hub.offline_content_loader.image_name–registry.astra.ru/aa/k8s-hub-content-importer:2.1;верхнеуровневые поля
image,image_proxy,postgres_image,redis_imageи соответствующие им поля*_version– только если они заданы в манифесте. Если эти поля не заданы, операторы новой версии используют версии образов из собственных значений по умолчанию.
Контент Private Automation Hub#
Если необходим импорт контента, загрузчик контента должен импортировать коллекции и образы новой версии в новое пространство имен aa-2.1 реестра Private Automation Hub.
Если в манифесте заданы блоки контента offline_content_loader, ee_images и decision_environments, как при развертывании без доступа в интернет, обновите пути контента:
замените
hub.offline_content_loader.namespaceнаaa-2.1;замените строки вида
controller.ee_images[].imageна<hostname>/aa-2.1/aa-full-ee:latestи<hostname>/aa-2.1/aa-minimal-ee:latest;задайте поле
controller.control_plane_execution_environment–<hostname>/aa-2.1/aa-control-ee:latest;замените
eda.decision_environments[].imageна<hostname>/aa-2.1/aa-full-de:latest.
Здесь <hostname> – доменное имя платформы.
Предупреждение
Операторы всегда регистрируют запись среды исполнения «Control Plane Execution Environment».
Если поле controller.control_plane_execution_environment не задано, после обновления запись указывает на публичный реестр hub.astra-automation.ru, недоступный в изолированном сегменте.
В этом случае задания, использующие эту среду в контейнерной группе (в том числе обновление сборных инвентарей), не запускаются: под задания остается в состоянии ImagePullBackOff.
Примечание
Новая установка платформы регистрирует записи по умолчанию через поля default_ee_image и default_de_image (см. состав записей).
При обновлении явно заданные списки ee_images и decision_environments заменяют такие записи, поэтому записи с прежними названиями продолжают использоваться.
Automation Dashboard#
Если необходимы средства аналитики в платформе, добавьте в блок spec секцию нового компонента Automation Dashboard:
dashboard:
disabled: false
name: dashboard-demo
dashboard:
replicas: 3
Вложенная секция dashboard задает параметры пода компонента.
Значение replicas: 3 рекомендуется для топологии уровня предприятия; для базовой топологии вложенную секцию можно не указывать.
Добавление компонента к уже развернутой платформе, включая вариант изменения манифеста командой kubectl patch, описано в инструкции по добавлению Automation Dashboard.
Примечание
В примерах манифестов из установочного пакета для масштабирования Automation Dashboard указано поле api.replicas.
Согласно известной проблеме оператор не применяет это поле.
Создавать новые секреты для Automation Dashboard не требуется, поскольку компонент использует собственную СУБД PostgreSQL, развернутую оператором в кластере (том PVC размером 8 ГиБ в классе StorageClass по умолчанию), а приложение OAuth и секрет <название ресурса AstraAutomation>-dashboard-aap-auth оператор aa-operator создает автоматически.
Оператор публикует для Automation Dashboard точку доступа /dashboard в API платформы и создает для этого объект Ingress при выполнении процесса Reconciliation.
Готовый манифест такого объекта есть в примерах установочного пакета (каталог examples/kubernetes/enterprise/); чтобы не зависеть от порядка выполнения Reconciliation, объект можно применить заранее:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: dashboard-demo
namespace: astra-automation
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$2
nginx.ingress.kubernetes.io/use-regex: "true"
spec:
ingressClassName: nginx
rules:
- host: <hostname>
http:
paths:
- path: /dashboard(/|$)(.*)
pathType: ImplementationSpecific
backend:
service:
name: dashboard-demo
port:
number: 8053
tls:
- secretName: <tls_secret>
hosts:
- <hostname>
Здесь:
<hostname>– доменное имя платформы;<tls_secret>– название секрета TLS платформы.
Применение манифеста#
Итоговый фрагмент измененных полей манифеста для топологии уровня предприятия:
spec:
controller:
# ...
ee_images:
- name: "Private Automation Hub Default execution environment"
image: "<hostname>/aa-2.1/aa-full-ee:latest"
- name: "Private Automation Hub aa-minimal-ee"
image: "<hostname>/aa-2.1/aa-minimal-ee:latest"
control_plane_execution_environment: "<hostname>/aa-2.1/aa-control-ee:latest"
control_plane_ee_image: registry.astra.ru/aa/aa-control-ee:2.1
hub:
# ...
offline_content_loader:
enabled: true
image_name: registry.astra.ru/aa/k8s-hub-content-importer:2.1
namespace: aa-2.1
eda:
# ...
decision_environments:
- name: "Private Automation Hub Default decision environment"
image: "<hostname>/aa-2.1/aa-full-de:latest"
dashboard:
disabled: false
name: dashboard-demo
dashboard:
replicas: 3
Примените обновленный манифест:
kubectl apply -f <path/to/application-manifest.yml>
Здесь <path/to/application-manifest.yml> – путь к файлу с обновленным манифестом приложения.