我得到了这个ingress.yaml的基本配置:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
labels:
sia: aza
app: asap-ingress-internal
name: asap-ingress-internal
annotations:
kubernetes.io/ingress.class: "nginx-external"
nginx.ingress.kubernetes.io/use-regex: "true"
spec:
rules:
- host: the-host-value
http:
paths:
- path: /asap-srv-template/(.*)
backend:
serviceName: asap-srv-template
servicePort: 8080
并且只想替换spec.rules.host值(并保持所有http. path不变)。
所以我创建了一个env-var.yaml,如下所示:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: asap-ingress-internal
spec:
rules:
- host: the.real.hostname
但结果如下:
$ kustomize build
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx-external
nginx.ingress.kubernetes.io/use-regex: "true"
labels:
app: asap-ingress-internal
env: dev
sia: aza
name: asap-ingress-internal
namespace: aza-72461-dev
spec:
rules:
- host: the.real.hostname
我已经失去了所有的http.paths配置,我不能找到如何做。
我试着用补丁:或kustomization.yaml中的patchesStrategicMerge,但结果总是相同的。
任何帮助将不胜感激
3条答案
按热度按时间a9wyjsp71#
你可以使用json补丁,下面是一个例子。
下面是一个例子
kustomization.yaml
。它将在patches
部分调用一个补丁:下面是一个示例
ingress-patch.json
:ffx8fchx2#
另一个选择是做内联补丁。这与mroma提供的方法相同,但没有文件。我觉得更简单。
bjg7j2ky3#
如果你使用的是kubernetes的最新版本(我认为从18年开始),Ingres API版本不再是beta版本
apiVersion: extensions/v1beta1
,现在是apiVersion: networking.k8s.io/v1
。我已经测试了波纹管样品和它的工作:
ingress.yaml
ingress-patch.yaml
kustomization.yaml
使用
kubectl kustomize
(kubectl版本为v1.19.7
)和kustomize build
(独立kustomize版本为v3.5.4
)进行测试