Совместное использование патчей между оверлеями Kustomize - не распознает трансформаторы - PullRequest
1 голос
/ 30 марта 2020

Я пытаюсь разделить JSON патчей между оверлеями. Я мог бы сделать что-то вроде:

bases:
- ../bases
patchesJson6902:
- target:
  ...

Но мне пришлось бы копировать полную цель для каждого оверлея. Я бы предпочел описать цель и патч в одном месте, а затем включить его в нужные оверлеи.

Поэтому я попытался использовать этот подход , где у вашего kustomization.yaml есть transformers директива , указывающая на файл , явно запускающий плагин .

Из документов похоже, это должно работать в моем оверлее kustomization.yaml:

bases:
- ../bases

transformers:
- ../transformers/example

но когда я запускаю kubectl apply -k, я получаю:

Error: json: unknown field "transformers"

Может кто-нибудь указать мне на то, что я делаю неправильно? Есть ли лучший способ сделать это?

Ответы [ 2 ]

1 голос
/ 30 марта 2020

Вам нужно установить двоичный файл kustomize вместо использования kubectl для генерации этих манифестов. Как упоминал @coderanger, версия Kustomize, входящая в комплект kubectl, взята из выпуска, предшествующего Transformers.

После установки kustomize вы можете создавать свои манифесты следующим образом:

kustomize build >dir<

Затем будет создан поток STDOUT, аналогичный kubectl kustomize >dir<

Если вы вместо sh непосредственно примените результирующие манифесты к вашему API-серверу, вы можете труба STDOUT прямо в kubectl apply. Например:

kustomize build >dir< | kubectl apply -f-

0 голосов
/ 30 марта 2020

Встроенная версия Kustomize довольно старая, 2.0.3. Это задолго до того, как была добавлена ​​система трансформаторов. Вам придется использовать независимую версию Kustomize.

...