![](/img/trans.png)
[英]Setup Ingress whith Helm using the chart stable/nginx-ingress
[英]Helm [stable/nginx-ingress] Getting issue while passing headers
Helm 和 Kubernetes 的版本:客户端: &version.Version{SemVer:"v2.14.1" 和 1.13.7-gke.24
哪个图表: stable/nginx-ingress [v0.24.1]
发生了什么:尝试使用 --set-string 覆盖标头,但它没有按预期工作。 它总是给出解析问题
/usr/sbin/helm install --name cx-nginx-1 --set controller.name=cx-nginx-1 --set controller.kind=Deployment --set controller.service.loadBalancerIP= --set controller.metrics.enabled=true --set-string 'controller.headers={"X-Different-Name":"true","X-Request-Start":"test-header","X-Using-Nginx-Controller":"true"}'. Error: release cx-nginx-1 failed: ConfigMap in version "v1" cannot be handled as a ConfigMap: v1.ConfigMap.Data: ReadMapCB: expect { or n, but found [, error found in #10 byte of...|","data":["\"X-Diffe|..., bigger context...|{"apiVersion":"v1","data":["\"X-Different-Name\":\"true\"","\"X-Request-Start|...
您期望发生的事情:我想覆盖 header 默认情况下在 values.yam 中使用自定义标头
如何重现它(尽可能最小和精确):我提供了重现的评论, helm install --name cx-nginx-1 --set controller.name=cx-nginx-1 --set controller.kind=Deployment --set controller.service.loadBalancerIP= --set controller.metrics.enabled=true --set-string 'controller.headers={"X-Different-Name":"true","X-Request-Start":"test-header","X-Using-Nginx-Controller":"true"}'.
我尝试在调试模式下运行(--dry-run --debug),它显示如下配置图,
apiVersion: v1
kind: ConfigMap
metadata:
labels:
app: nginx-ingress
chart: nginx-ingress-1
component: "cx-nginx-1"
heritage: Tiller
release: foiled-coral
name: foiled-coral-nginx-ingress-custom-headers
namespace: cx-ingress
data:
- X-Different-Name:true
- X-Request-Start:test-header
- X-Using-Nginx-Controller:true
似乎它添加了意图 4 而不是意图 2。我也收到了以下警告, Warning: Merging destination map for chart 'nginx-ingress'. Cannot overwrite table item 'headers', with non table value: map[X-Different-Name:true X-Request-Start:test-header X-Using-Nginx-Controller:true]
Warning: Merging destination map for chart 'nginx-ingress'. Cannot overwrite table item 'headers', with non table value: map[X-Different-Name:true X-Request-Start:test-header X-Using-Nginx-Controller:true]
请帮助我以正确的方式传递标题。
注意: controller.headers
已弃用,请确保使用controller.proxySetHeaders
代替。
Helm --set
有一些限制。
您最好的选择是避免使用--set
,而使用--values
。
您可以在这样的文件中声明所有自定义值:
# values.yaml
controller:
name: "cx-nginx-1"
kind: "Deployment"
service:
loadBalancerIP: ""
metrics:
enable: true
proxySetHeaders:
X-Different-Name: "true"
X-Request-Start: "true"
X-Using-Nginx-Controller: "true"
然后在安装时使用它:
helm install --name cx-nginx-1 stable/nginx-ingress \
--values=values.yaml
如果你想使用--set
,你应该使用这个符号:
helm install --name cx-nginx-1 stable/nginx-ingress \
--set controller.name=cx-nginx-1 \
--set controller.kind=Deployment \
--set controller.service.loadBalancerIP= \
--set controller.metrics.enabled=true \
--set-string controller.proxySetHeaders.X-Different-Name="true" \
--set-string controller.proxySetHeaders.X-Request-Start="true" \
--set-string controller.proxySetHeaders.X-Using-Nginx-Controller="true"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.