Я пытаюсь реализовать свой первый оператор Kubernetes. Я хочу, чтобы операторский контроллер имел возможность сравнивать конфигурацию в работающем модуле с ожидаемой конфигурацией, определенной в пользовательском определении ресурса.
Например: Пользовательский ресурс
apiVersion: test.com/v1alpha1
kind: TEST
metadata::
name: example-test
spec:
replicas: 3
version: 20:03
config:
valueA: true
valueB: 123
Вышеупомянутый настраиваемый ресурс развернут и работают 3 модуля. Внесено такое изменение, что конфигурация "valueA" изменена на false.
В функции согласования контроллера GO я могу получить экземпляр TEST и увидеть «новую» версию конфигурации:
instance := &testv1alpha1.TEST{}
log.Info("New value : " + instance.Spec.Config.valueA)
Мне интересно, как я могу получить доступ к тому, какое значение «valueA» находится в моих работающих модулях, чтобы я мог сравнивать и воссоздавать модули, если оно изменилось?
Также второстепенный вопрос: нужно ли мне перебрать все запущенные модули в функции согласования, чтобы проверить каждый, или я могу сделать это как одну операцию?