我正在尝试为特定的环境示例构建 list 文件:-测试,并且我想按以下所述重新使用基本 list 文件。
k8s/kustomize/overlays/test/kustomization.yaml
commonLabels:
variant: test
app: test-app
resources:
- ../../base/deployment.yaml
- ../../base/service.yaml
- ../../base/configmap.yaml
- ../../base/secret.yaml
- namespace.yaml
namespace: app-test
patchesStrategicMerge:
- secret.yaml
- configmap.yaml
但是运行命令时出现以下错误-kustomize build k8s/kustomize/overlay/test
2020/02/19 16:04:36 got file 'deployment.yaml', but 'path/k8s/kustomize/base/deployment.yaml' must be a directory to be a root
Error: accumulating resources: accumulating resources from '../../base/deployment.yaml': security; file 'path/k8s/kustomize/base/deployment.yaml' is not in or below 'path/k8s/kustomize/overlay/test'
P.S: kustomize version is - Version: {KustomizeVersion:3.2.0 GitCommit:a3103f1e62ddb5b696daa3fd359bb6f2e8333b49 BuildDate:2019-09-18T18:31:04+01:00 GoOs:darwin GoArch:amd64}
我是kubernetes和kustomize的新手。可以帮我吗?
最佳答案
Kustomize不允许您直接包含不在kustomization.yml文件所在的目录或子目录中的资源文件。
在叠加层中使用基础的通常方法是在基础中添加kustomization.yml文件,并将基础目录包括在叠加层的kustomization.yml中。例如:k8s/kustomize/base/kustomization.yaml
:
resources:
- deployment.yaml
- service.yaml
- configmap.yaml
- secret.yaml
并在k8s/kustomize/overlays/test/kustomization.yaml
中:resources:
- ../../base
- namespace.yaml
namespace: app-test
commonLabels:
variant: test
app: test-app
patchesStrategicMerge:
- secret.yaml
- configmap.yaml
关于当我们在资源部分下的kustomization.yaml文件中指定基本 list 文件时,Kubernetes kustomize命令给出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60298445/