Отражение статуса установки в CRD#
SYOP проставляет текущее состояние CRD, статус и результат установки компонент в загруженную CRD kind: SynapseOperator. Статусы установки компонент проставляются динамически по мере их обработки. Если конфигурация компоненты не изменялась, ее статус не изменится.
Проставление текущего состояния CRD необходимо, для того чтобы отслеживать изменения CRD и на основе этого производить обновление только тех компонент, для которых поменялись настройки в CRD. Если меняются общие настройки, то это приводит к обновлению всех компонент, заданных в CRD.
Пример CRD с проставленным статусом:
apiVersion: install.synapse.sber/v1alpha1
kind: SynapseOperator
metadata:
finalizers:
- synapseoperator.synapse.sber/finalizer
name: synapse-operator-test-components
namespace: project
spec:
components:
test-component:
enabled: true
namespace: project
release: synapse1
values:
image: >-
registry.ru/linux-9-x86_64-ubi:9.3.3-279_20240318.0
instance-1:
image: >-
registry.ru/linux-9-x86_64-ubi:9.3.3-279_20240318.0
tsText: 'Current Human Time:'
instance-2:
image: >-
registry.ru/linux-9-x86_64-ubi:9.3.3-279_20240318.0
tsText: 'Current Machine Time:'
tsText: 'Current Date Time:'
test-component-a:
enabled: true
namespace: project
release: synapse2
values:
image: >-
registry.ru/linux-9-x86_64-ubi:9.3.3-279_20240318.0
tsText: 'Current Human Time:'
test-component-b:
enabled: true
namespace: project
release: synapse3
values:
image: >-
registry.ru/linux-9-x86_64-ubi:9.3.3-279_20240318.0
tsText: 'Current Machine Time:'
profile: demo
namespace: asfdfdf
release: synapse
version: '0.0'
status:
componentsStatus:
test-component:
status: HEALTHY
test-component-a:
status: HEALTHY
test-component-b:
status: HEALTHY
configuration: >-
{"values":null,"components":{"test-component":{"enabled":true,"release":"test-component-synapse1","namespace":"smdl","values":{"image":"registry.ru/linux-9-x86_64-ubi:9.3.3-279_20240318.0","instance-1":{"image":"registry.ru/linux-9-x86_64-ubi:9.3.3-279_20240318.0","tsText":"Current
Human
Time:"},"instance-2":{"image":"registry.ru/linux-9-x86_64-ubi:9.3.3-279_20240318.0","tsText":"Current
Machine Time:"},"tsText":"Current Date
Time:"}},"test-component-a":{"enabled":true,"release":"test-component-a-synapse2","namespace":"smdl","values":{"image":"registry.ru/linux-9-x86_64-ubi:9.3.3-279_20240318.0","tsText":"Current
Human
Time:"}},"test-component-b":{"enabled":true,"installorder":10,"release":"test-component-b-synapse3","namespace":"smdl","values":{"image":"registry.ru/linux-9-x86_64-ubi:9.3.3-279_20240318.0","tsText":"Current
Machine Time:"}}},"version":"0.0","release":"synapse","namespace":"asfdfdf"}
status: HEALTHY
Пример CRD со статусом, содержащим ошибку:
status:
componentsStatus:
test-component:
status: HEALTHY
test-component-a:
status: HEALTHY
test-component-b:
error: >-
release test-component-b-test-release failed, and has been uninstalled
due to atomic being set: context deadline exceeded
status: ERROR
configuration: >-
{"values":null,"components":{"test-component":{"enabled":true,"installorder":3,"release":"test-component-test-release","namespace":"smdl-sy-devops-dev","values":{"image":"registry.ru/linux-9-x86_64-ubi:9.3.3-279_20240318.0","instance-1":{"image":"registry.ru/linux-9-x86_64-ubi:9.3.3-279_20240318.0","tsText":"Current
Human
Time:"},"instance-2":{"image":"registry.ru/linux-9-x86_64-ubi:9.3.3-279_20240318.0","tsText":"Current
Machine Time:"},"tsText":"Current Date
Time:"}},"test-component-a":{"enabled":true,"installorder":1,"release":"test-component-a-test-release","namespace":"smdl-sy-devops-dev","values":{"abs":"sddsd","image":"registry.ru/linux-9-x86_64-ubi:9.3.3-279_20240318.0","tsText":"Current
Human Time:
"}},"test-component-b":{"enabled":true,"installorder":2,"release":"test-component-b-test-release","namespace":"smdl-sy-devops-dev","values":{"image":"registry.ru/linux-9-x86_64-ubi:9.3.3-279_20240318.01213","tsText":"Current
Machine
Time:"}}},"version":"0.0","release":"test-release","namespace":"smdl-sy-devops-dev"}
error: >-
Error installation/updating component test-component-b
A detailed description of component installation/updating errors is
indicated in the component status block
status: ERROR
Пример CRD со статусом, во время установки компонент:
status:
componentsStatus:
test-component:
status: HEALTHY
test-component-a:
status: PROCESSING
configuration: >-
{"values":null,"components":{"test-component":{"enabled":true,"installorder":3,"release":"test-component-test-release","namespace":"smdl-sy-devops-dev","values":{"image":"registry.ru/linux-9-x86_64-ubi:9.3.3-279_20240318.0","instance-1":{"image":"registry.ru/linux-9-x86_64-ubi:9.3.3-279_20240318.0","tsText":"Current
Human
Time:"},"instance-2":{"image":"registry.ru/linux-9-x86_64-ubi:9.3.3-279_20240318.0","tsText":"Current
Machine Time:"},"tsText":"Current Date
Time:"}},"test-component-a":{"enabled":true,"installorder":1,"release":"test-component-a-test-release","namespace":"smdl-sy-devops-dev","values":{"abs":"sddsd","image":"registry.ru/linux-9-x86_64-ubi:9.3.3-279_20240318.0","tsText":"Current
Human Time:
"}},"test-component-b":{"enabled":true,"installorder":2,"release":"test-component-b-test-release","namespace":"smdl-sy-devops-dev","values":{"image":"registry.ru/linux-9-x86_64-ubi:9.3.3-279_20240318.01213","tsText":"Current
Machine
Time:"}}},"version":"0.0","release":"test-release","namespace":"smdl-sy-devops-dev"}
status: PROCESSING