入口控制器不允许片段

问题描述 投票:0回答:1

我正在尝试向附加到入口控制器的现有入口添加一个片段。但是,当尝试这个时,我收到一个错误:

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

kubernetes-helm azure-aks ingress-controller
1个回答
0
投票

如果您的入口控制器之前是使用 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 入口控制器的更多详细信息,因为我的答案是基于上面提到的假设。

© www.soinside.com 2019 - 2024. All rights reserved.