我正在使用kubectl kustomize
命令来部署具有类似配置的多个应用程序(解析器和接收器),并且我遇到了 kustomization.yaml 文件的层次结构问题(不了解什么是可能的,什么不是)。
我从自定义目录运行 kustomize 命令,如下所示:
$ kubectl kustomize overlay/pipeline/parsers/commercial/dev
- 这工作正常,它会根据需要产生在 kustomization.yaml #1 中定义的预期输出。不起作用的是它不会自动执行 #2 kustomization,它位于(已经遍历的)目录路径 2 级以上。#2 kustomization.yaml 包含所有解析器环境通用的 configMap 创建。我不想在每个环境中重复这些。当我尝试从 #2 引用 #1 时,我收到有关循环引用的错误,但它无法运行配置创建。
我有以下目录结构树:
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
│
这是我的 #1 kustomization.yaml:
bases:
- ../../../../../base
namePrefix: dev-
commonLabels:
app: "ls-7.8-logstash"
chart: "logstash"
heritage: "Helm"
release: "ls-7.8"
patchesStrategicMerge:
- dev-patches.yaml
这是我的#2 kustomization.yaml 文件:
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