#go #kubernetes #client-go
#Вперед #kubernetes #клиент-перейти
Вопрос:
Я пытаюсь написать контроллер k8s, внутри контроллера я хочу проанализировать файл YAML из Github unstructured. Unstructured
. После синтаксического анализа я хочу отследить статус примененного экземпляра unstructured. Unstructured
. Отслеживание попытается перехватить, есть ли определенное значение ключа.
Мне не удалось этого сделать, поскольку unstructured. Unstructured
у него нет метода для получения статуса. Затем я пытался преобразовать его в JSON и найти статус, также не удалось…
Если вы знаете способ добиться этого, это было бы здорово.
Ответ №1:
Неструктурированный пакет предоставляет «вложенные» функции. https://godoc.org/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured
Для статуса вы бы использовали:
unstructured.NestedStringMap(myunstruct.Object, "status")
Для сообщения о состоянии:
unstructured.NestedString(myunstruct.Object, "status", "message")
Подробнее о динамическом клиенте см. в главе 4 «Программирование Kubernetes» Стефана Шимански и Майкла Хаузенбласа.