Как я могу использовать MutatingWebhook для добавления контейнера в модуль Kubernetes при создании? - PullRequest
2 голосов
/ 24 октября 2019

Используя инъекцию MutatingWebhook / sidecar, я пытаюсь добавить контейнер в мое развертывание Kubernetes при его создании. Я понимаю, что должен сделать JSON-патч, но мне неясно, какой синтаксис мне нужен для добавления контейнера. (Я успешно добавил метки к развертыванию, FWIW.)

Я знаю, что объект исправления JSON выглядит примерно так, но мне неясно, что поместить в поле "значение".

}
  "op":    "add",
  "path":  "/spec/containers",
  "value": "containerName",
}

Вот пример одного из сообщений об ошибках, которые я получаю, которые указывают, что что-то с моим синтаксисом неверно.

Error creating: Internal error occurred: Internal error occurred: v1.Pod.Spec: v1.PodSpec.Containers: []v1.Container: readObjectStart: expect { or n, but found ", error found in #10 byte of ...|160000}},"{\"name\":|..., bigger context ...|OD","SETGID","SETUID"]},"runAsUser":1000160000}},"{\"name\":\"fluentd\"}"],"dnsPolicy":"ClusterFirst|...

1 Ответ

0 голосов
/ 24 октября 2019

Я бы добавил это как комментарий, но моя репутация слишком низкая.

https://kubernetes.io/docs/tasks/run-application/update-api-object-kubectl-patch/

Показывает примеры использования kubectl для исправления развертывания. Тот же JSON может использоваться в вашем MWH для исправления развертывания.

В Kubernetes имеются обширные библиотеки go, которые инкапсулируют все свои объекты Kubernetes в виде структур go. Вот пример того, как кто-то вводит контейнер, используя MWH.

https://github.com/morvencao/kube-mutating-webhook-tutorial/blob/master/main.go#L26 <- они загружают YAML, который они будут исправлять, из файла (заполненного картой конфигурации) </p>

https://github.com/morvencao/kube-mutating-webhook-tutorial/blob/master/deployment/configmap.yaml <- Содержимое YAML, которое они вводят (заполняется картой конфигурации) </p>

https://github.com/morvencao/kube-mutating-webhook-tutorial/blob/master/webhook.go#L132 <- Где они перебирают контейнеры в развертывании и добавляют контейнер (через патч JSON) </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...