我正在使用 kustomize 二进制文件来制作特定的 kubernetes 部署 yaml 文件。
{版本:kustomize/v3.8.1 GitCommit:0b359d0ef0272e6545eda0e99aacd63aef99c4d0 BuildDate:2020-07-16T00:58:46Z GoOs:linux GoArch:amd64}
这是我的目录结构:
overlays
├── parser
│ ├── dev
│ │ └── nonsec
│ │ ├── dev-patches-parsers-tests.yaml
│ │ ├── dev-patches-parsers.yaml
│ │ └── kustomization.yaml
│ ├── prod
│ │ ├── nonsec
│ │ │ ├── kustomization.yaml
│ │ │ ├── prod-patches-parsers-tests.yaml
│ │ │ └── prod-patches-parsers.yaml
│ │ ├── sec
│ │ │ ├── kustomization.yaml
│ │ │ ├── prod-patches-parsers-sec-tests.yaml
│ │ │ ├── prod-patches-parsers-sec.yaml
│ │ │ ├── prod-patches-parsers-tests.yaml
│ │ │ └── prod-patches-parsers.yaml
│ │ └── v3r
│ │ └── empty.txt
│ ├── stage
│ └── suit
请注意,overlays/parser/prod/nonsec 和 /overlays/parser/prod/sec 包含两个相同的补丁文件集。我想将通用文件分解出来并将它们推到 prod 下的一个级别 - 我不希望在多个目录中复制相同的补丁。我希望 nonsec 和 sec 构建都使用相同的 prod 补丁集,但我不知道如何使用 kustomize 来做到这一点。我试图将它们放在上面的目录中,但是 kustomize 不允许对上面目录中的补丁文件进行任何引用——这是我需要做的。
如何避免在多个目录中重复这些 prod-patches*.yaml 文件?!
这是我的不安全的 kustomization.yaml
# Use this as the base code
resources:
- ../../../../base
# Decorate the base code with the following components
components:
- ../../../../components/common-all
- ../../../../components/common-prod
- ../../../../components/parser
# Then finally, patch the results from above with this:
patchesStrategicMerge:
- prod-patches-parsers.yaml
- prod-patches-parsers-tests.yaml
这是我的 sec kustomization.yaml:
# Use this as the base code
resources:
- ../../../../base
# Decorate the base code with the following components
components:
- ../../../../components/common-all
- ../../../../components/common-prod
- ../../../../components/parser
# Then finally, patch the results from above with this:
patchesStrategicMerge:
- prod-patches-parsers.yaml
- prod-patches-parsers-tests.yaml
- prod-patches-parsers-sec.yaml
- prod-patches-parsers-sec-tests.yaml