【发布时间】:2021-04-30 11:09:17
【问题描述】:
我有一个 GKE/GCE 入口文件,它有 2 个主机。
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: my-ingress
spec:
rules:
- host: myfirstdomain # <-------- override this via kustomize
http:
paths:
- path: /abc
backend:
serviceName: abc
servicePort: abc
- path: /def
backend:
serviceName: def
servicePort: def
- path: /ghi
backend:
serviceName: ghi
servicePort: ghi
- host: myseconddomain # <-------- override this via kustomize
http:
paths:
- backend:
serviceName: xyz
servicePort: xyz
我想通过 kustomize 声明 host 值,以便我可以为不同的环境指定不同的 host 值。
我的开发环境覆盖补丁文件如下所示:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: my-ingress
spec:
rules:
- host: dev1.example.com
- host: dev2.example.com
但是,运行kustomize build overlays/dev 的输出如下所示:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: my-ingress
spec:
rules:
- host: dev1.example.com
- host: dev2.example.com
所有其他规格都丢失了。
它最终替换了 整个 host 块,而不是仅替换 host 行。
我该如何解决这个问题?我正在使用:
-
自定义版本
v4.1.2 -
kubectl 版本
v1.21.0
【问题讨论】:
标签: kubernetes google-kubernetes-engine overlay kubernetes-ingress kustomize