kubernetes - 覆盖自定义中基于忽略的自定义
问题描述
目前我有一个 Kubernetes 配置目录,如下所示:
├── base
│ ├── kustomization.yaml
| ├── main-ingress.yaml
│ └── sub-ingress.yaml
└── overlays
├── dev-1
│ ├── kustomization.yaml
│ ├── main-ingress.yaml
│ └── sub-ingress.yaml
├── dev-2
│ ├── kustomization.yaml
│ ├── main-ingress.yaml
│ └── sub-ingress.yaml
└── prod
├── main-ingress.yaml
└── kustomization.yaml
在/base/kustomization.yaml
:
apiVersion: [...]
kind: Kustomization
configMapGenerator:
[...]
resources:
- main-ingress.yaml
- sub-ingress.yaml
在/overlays/prod/kustomization.yaml
:
apiVersion: [...]
kind: Kustomization
patchesStrategicMerge:
- main-ingress.yaml
resources:
- ../../base
在/overlays/dev-1/kustomization.yaml
和/overlays/dev-2/kustomization.yaml
:
apiVersion: [...]
kind: Kustomization
patchesStrategicMerge:
- main-ingress.yaml
- sub-ingress.yaml
resources:
- ../../base
在/base/sub-ingress.yaml
:
apiVersion: [...]
kind: Ingress
metadata:
name: sub-ingress
annotations:
kubernetes.io/ingress.class: [...]
nginx.org/server-snippets: |
...nginx-rules...
spec:
在/overlays/dev-1/sub-ingress.yaml
:
apiVersion: [...]
kind: Ingress
metadata:
name: sub-ingress
spec:
rules:
- host: myname.com
http:
paths:
- backend:
serviceName: my-service
servicePort: 9999
path: /my-app
tls:
- hosts:
- myname.com
secretName: my-tls
在里面/overlays/dev-2/sub-ingress.yaml
apiVersion: [...]
kind: Ingress
metadata:
name: sub-ingress
spec:
rules:
- host: myname2.com
http:
paths:
- backend:
serviceName: my-service
servicePort: 9999
path: /my-app
tls:
- hosts:
- myname2.com
secretName: my-tls
现在,当我运行 build 命令kustomize build --enable_alpha_plugins prod/
时,将显示错误:
nil value at `spec.tls.secretName` ignored in mutation attempt
nil value at `spec.rules.http.paths.backend.serviceName` ignored in mutation attempt
nil value at `spec.backend.serviceName` ignored in mutation attempt
似乎 kustomize 插件在尝试构建sub-ingress.yaml
基于 based config 的结果时遇到了问题,但在 overlay 中没有相应的配置文件prod
。
解决方案
推荐阅读
- teechart - 使用 TChart activex 在 VBA Excel 中绘制 3D 不透明表面的奇怪行为
- discord.py - 来自上下文的参数返回空列表
- android - 签署 APK 时出现无效的密钥库格式错误
- concurrency - 接收目标列表作为输入的元谓词
- java - 是否可以更改 ViewPager Android 的默认方向?
- apache-spark - 为什么 Databricks 在其“驱动程序守护程序”中的单线程活动上会遇到瓶颈?
- alert - 如何使指标的值出现在警报消息中?
- javascript - 如何在 webpack 4/5 中配置 splitChunks 以获取单独的供应商文件?
- coffeescript - CoffeeScript 运算符优先级和函数调用
- matlab - 如何更改单元格数组中单个单元格的尺寸?(MATLAB)