Я использую kubectl kustomize
команды для развертывания нескольких приложений (парсеры и приемники) с похожими конфигурациями, и у меня возникают проблемы с иерархией файлов kustomization.yaml (не понимаю, что возможно, а что нет).
Я запускаю команду kustomize из пользовательского каталога, как показано ниже: $ kubectl kustomize overlay/pipeline/parsers/commercial/dev
- это работает нормально, он дает ожидаемый результат, определенный в kustomization.yaml # 1 по желанию. Что не работает, так это то, что он НЕ выполняет автоматическую настройку # 2, которая находится в (уже пройденном) пути к каталогу на 2 уровня выше. # 2 kustomization.yaml содержит создание configMap, общее для всех сред парсеров. Я не хочу повторять это в каждом env. Когда я попытался сослаться на №1 из №2, я получил ошибку о циклической ссылке, но не смог запустить создание конфигурации.
У меня следующее дерево структуры каталогов:
custom
├── base
| ├── kustomization.yaml
│ ├── logstash-config.yaml
│ └── successful-vanilla-ls7.8.yaml
├── install_notes.txt
├── overlay
│ └── pipeline
│ ├── logstash-config.yaml
│ ├── parsers
│ │ ├── commercial
│ │ │ ├── dev
│ │ │ │ ├── dev-patches.yaml
│ │ │ │ ├── kustomization.yaml <====== #1 this works
│ │ │ │ ├── logstash-config.yaml
│ │ │ │ └── parser-config.yaml
│ │ │ ├── prod
│ │ │ ├── stage
│ │ ├── kustomization.yaml <============= #2 why won't this run automatically?
│ │ ├── logstash-config.yaml
│ │ ├── parser-config.yaml
│
Вот мой файл kustomization.yaml №1:
bases:
- ../../../../../base
namePrefix: dev-
commonLabels:
app: "ls-7.8-logstash"
chart: "logstash"
heritage: "Helm"
release: "ls-7.8"
patchesStrategicMerge:
- dev-patches.yaml
А вот мой файл kustomization.yaml №2:
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
configMapGenerator:
# generate a ConfigMap named my-generated-configmap-<some-hash> where each file
# in the list appears as a data entry (keyed by base filename).
- name: logstashpipeline-parser
behavior: create
files:
- parser-config.yaml
- name: logstashconfig
behavior: create
files:
- logstash-config.yaml