'Nginx.ingress.kubernetes.io/proxy-body-size not working

I want to increase size of post body of each request in Ingress. So I add the

nginx.ingress.kubernetes.io/proxy-body-size: 8m

in yaml file ingress(in view/edit yaml file of rancher) but it doesn’t work. When I get the describe of ingress with kubectl I dont see the added annotation but i see the new added mapping. Hereis the configs:

YAML file:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    ingress.kubernetes.io/configuration-snippet: |-
      set $test_host "testdms.test.com"
      if ($host == $test_host) {
        return 301 $scheme://$test_host/webui/;
      }
    nginx.ingress.kubernetes.io/proxy-body-size: 8m
  creationTimestamp: 2018-09-11T12:19:02Z
  generation: 116
  name: test-dms
  namespace: test-dms
  resourceVersion: "95490045"
  selfLink: /apis/extensions/v1beta1/namespaces/test-dms/ingresses/test-dms
  uid: de7c4c1b-b5bc-11e8-84c0-005056bf6431
spec:
  rules:
  - host: testdms.test.com
    http:
      paths:
      - backend:
          serviceName: ingress-e5a45b0dc688c653b79d4b5942ebbe7c
          servicePort: 80
        path: /test
status:
  loadBalancer:
    ingress:
    - {}
    - ip: 198.100.101.171
    - ip: 198.100.101.172
    - ip: 198.100.101.173
    - ip: 198.100.101.61

describe result:

Annotations:
  configuration-snippet:  set $test_host "testdms.test.com"
if ($host == $test_host) {
  return 301 $scheme://$test_host/webui/;
}
Events:
  Type    Reason  Age                       From                      Message
  ----    ------  ----                      ----                      -------
  Normal  UPDATE  36s (x38 over 2h)         nginx-ingress-controller  Ingress test-dms/test-dms
  Normal  UPDATE  21s (x47 over 23d)        nginx-ingress-controller  Ingress test-dms/test-dms
  Normal  UPDATE  <invalid> (x47 over 23d)  nginx-ingress-controller  Ingress test-dms/test-dms
  Normal  UPDATE  <invalid> (x84 over 64d)  nginx-ingress-controller  Ingress test-dms/test-dms
  Normal  UPDATE  <invalid> (x39 over 12d)  nginx-ingress-controller  Ingress test-dms/test-dms


Solution 1:[1]

Amendment of the ingress objects in K8s sometimes misbehave, so it's recommended to re-create rather than edit.

If it still didn't work, try to set this value globally for all ingress rules using a configmap

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: nginx
      namespace: ingress-nginx
      labels:
        app: ingress-nginx
    data:
      proxy-body-size: "8m"

Solution 2:[2]

You need to add quotes (e.g. "8m"), like this:

nginx.ingress.kubernetes.io/proxy-body-size: "8m"

Solution 3:[3]

The annotation

nginx.ingress.kubernetes.io/proxy-body-size: 8m

being ignored could be the result of using the wrong implementation of nginx-ingress controller. Not sure if this is the case, here. Which implementation did you use?

See this answer by ololoepepe for details.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 A_Suh
Solution 2 segFault
Solution 3 Carni