Я разрабатываю нового оператора для управления CRD объектов моей бизнес-логики. Мои бизнес-объекты хранятся в Mongo, и поэтому нам нужен этот BSON ID (GUID длиной 12 букв), чтобы вносить в этот объект последующие изменения.
Вопрос в том, как связать CR, который оператор должен создать, с этим вышестоящим объектом? Где я могу сохранить этот уникальный BSON ID
способ K8S, чтобы использовать его для дальнейших поисков.
Пример, вот CRD для одного из моих восходящих объектов:
apiVersion: my.custom.object/v1alpha1
kind: ApiDefinition
metadata:
name: httpbin
spec:
description: my first api
use_keyless: true
protocol: http
Когда я делаю kubectl apply -f
этот CRD, он создается.
kubectl apply -f "the_above_yaml.yaml"
ApiDefinition created!
Затем мой оператор берет его в цикле согласования, где затем создает этот объект на моем сервере. Сервер генерирует идентификатор BSON. Мне нужно использовать этот идентификатор BSON для дальнейших поисков.
Как я могу сохранить BSON ID
, специфичный для сервера, чтобы разработчикам просто нужно было использовать уникальное metadata
имя в спецификации, в то время как под капотом мой оператор позаботится о связывании этих двух?