如何使用 Helm 在 Nginx Ingress 中设置服务器片段配置

Dha*_*ake 2 kubernetes kubernetes-helm azure-aks nginx-ingress azure-front-door

相关 Github 问题:https://github.com/kubernetes/ingress-nginx/issues/6519

apiVersion: v1
data:
  server-snippet: |
    if ($http_x_azure_fdid !~* "55ce4ed1-4b06-4bf1-b40e-4638452104da" ) {
        return 403;
    }
  use-forwarded-headers: "true"
kind: ConfigMap
Run Code Online (Sandbox Code Playgroud)

在以下方法中设置值时如何使用 helm 实现上述配置?

helm upgrade --install nginx-ingress-controller ingress-nginx/ingress-nginx \
    --namespace "${namespace}" \
    --version "${chart_version}" \
    --set controller.replicaCount="${replicas}" \
    --set-string controller.config.use-forwarded-headers=true \
    --set-string controller.config.server-snippet=<?> \
    --debug
Run Code Online (Sandbox Code Playgroud)

小智 5

您可以定义一个多行环境变量,如下所示,

\n
read -d '' conf << EOF\nif ($http_x_azure_fdid !~* "55ce4ed1-4b06-4bf1-b40e-4638452104da" ) {\n       return 403;\n}\n\xe2\x80\xa8EOF\n
Run Code Online (Sandbox Code Playgroud)\n

定义环境变量后,请在 helm --set-string controller.config.server-snippet=arg 中引用它,如下所示,

\n
helm upgrade --install nginx-ingress-controller ingress-nginx/ingress-nginx \\\n    --namespace "${namespace}" \\\n    --version "${chart_version}" \\\n    --set controller.replicaCount="${replicas}" \\\n    --set-string controller.config.use-forwarded-headers=true \\\n    --set-string controller.config.server-snippet=$conf \\\n    --debug\n
Run Code Online (Sandbox Code Playgroud)\n