我正在尝试向附加到入口控制器的现有入口添加一个片段。但是,当尝试这个时,我收到一个错误:
for: "app-ingress.yml": error when patching "app-ingress.yml": admission webhook "validate.nginx.ingress.kubernetes.io" denied the request: nginx.ingress.kubernetes.io/server-snippet annotation cannot be used. Snippet directives are disabled by the Ingress administrator
入口已经存在,我正在尝试修补它以添加标头。更新后的ingress yaml如下:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: app-web-dev
namespace: application
annotations:
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/use-regex: "true"
nginx.ingress.kubernetes.io/server-snippet: |
expires 1M;
add_header Cache-Control "public";
spec:
ingressClassName: nginx
tls:
- hosts:
- dev.address.nl
secretName: app-wildcard
rules:
- host: dev.address.nl
http:
paths:
- path: /?(.*)
pathType: Prefix
backend:
service:
name: appwebsvc
port:
number: 80
我正在尝试使用 helm 更新我的入口控制器以启用片段,但我找不到正确的命令来执行此操作。
有什么想法吗?
我正在尝试这样的事情:
helm upgrade --namespace ingress-nginx --install --set controller.config.server-snippet=true,controller.service.annotations.nginx\.ingress\.kubernetes\.io/allow-snippet-annotations=true --wait ingress-nginx ingress-nginx/ingress-nginx
如果您的入口控制器之前是使用 Helm Chart 安装的,那么您可以使用 Helm Upgrade。
请注意,当且仅当您可以访问具有与之前安装 nginx ingress 相同的值文件的精确图表时,您才应该进行升级。您不能仅使用新图表来尝试升级现有安装,这将导致所有早期设置丢失。
我假设你的 nginx 入口 helm 图表是
https://github.com/kubernetes/ingress-nginx/blob/main/charts/ingress-nginx
allowSnippetAnnotations
是需要开启的设置。
选项1: 在值文件中设置
allowSnippetAnnotations=true
选项2: 尝试在 helm 升级命令中设置值“
--set allowSnippetAnnotations=true
”。
如果您需要更多帮助,请分享有关如何安装 nginx 入口控制器的更多详细信息,因为我的答案是基于上面提到的假设。