Description
What happened:
During an helm update with this command
helm upgrade -f ../values/ppr-values.yaml --namespace ingress --timeout 5m --wait ingress ingress/
Returns this error
Error: UPGRADE FAILED: cannot patch "ingress-controller" with kind Deployment: Deployment.apps "ingress-controller" is invalid: spec.progressDeadlineSeconds: Invalid value: 0: must be greater than minReadySeconds
What you expected to happen:
Just update the kubernetes ingress
Maybe the issue is being cased by spec.progressDeadlineSeconds not matching the values in valuse.yaml
NGINX Ingress controller version (exec into the pod and run /nginx-ingress-controller --version
):v1.5.1
Kubernetes version (use kubectl version
): v1.33.1
Environment:
-
Cloud provider or hardware configuration: GCP
-
OS (e.g. from /etc/os-release): Alpine Linux
-
Kernel (e.g.
uname -a
):
Linux ingress-controller-7fb4796969-f5rvt 6.6.87+ Basic structure #1 SMP PREEMPT_DYNAMIC Sat May 31 09:37:58 UTC 2025 x86_64 Linux -
Install tools: GKE
Please mention how/where was the cluster created like kubeadm/kops/minikube/kind etc.
-
Basic cluster related info:
kubectl version
v1.33.1kubectl get nodes -o wide
gke-alpenite-jenk-ppr-c1-pool1-e6c14cc3-5gst Ready 28h v1.32.4-gke.1603000 10.0.20.39 Container-Optimized OS from Google 6.6.87+ containerd://1.7.27
-
How was the ingress-nginx-controller installed: helm
- If helm was used then please show output of
helm ls -A | grep -i ingress
ingress ingress 17 2025-06-20 12:47:24.965444419 +0200 CEST failed ingress-0.0.1
- If helm was used then please show output of
-
Current State of the controller:
kubectl describe ingressclasses
Name: nginx
Labels: app.kubernetes.io/component=controller
app.kubernetes.io/instance=ingress
app.kubernetes.io/managed-by=Helm
app.kubernetes.io/name=ingress-nginx-ppr
app.kubernetes.io/part-of=ingress-nginx-ppr
app.kubernetes.io/version=1.12.3
helm.sh/chart=ingress-nginx-ppr-4.12.3
Annotations: meta.helm.sh/release-name: ingress
meta.helm.sh/release-namespace: ingress
Controller: k8s.io/ingress-nginx
Events:kubectl -n <ingresscontrollernamespace> get all -A -o wide
kubectl -n <ingresscontrollernamespace> describe po <ingresscontrollerpodname>
Name: ingress-controller-7fb4796969-f5rvt
Namespace: ingress
Priority: 1000000000
Priority Class Name: high
Service Account: ingress
Node: gke-alpenite-jenk-ppr-c1-pool1-e6c14cc3-5gst/10.0.20.39
Start Time: Thu, 19 Jun 2025 10:21:40 +0200
Labels: app.kubernetes.io/component=controller
app.kubernetes.io/instance=ingress
app.kubernetes.io/name=ingress-nginx-ppr
pod-template-hash=7fb4796969
Annotations: cloud.google.com/cluster_autoscaler_unhelpable_since: 2025-06-18T15:30:35+0000
cloud.google.com/cluster_autoscaler_unhelpable_until: Inf
cni.projectcalico.org/containerID: a783d61ca89cc26f347c17c059993a492c8032445bc21e65b9e9ef29d8e1fec3
cni.projectcalico.org/podIP: 10.20.0.10/32
cni.projectcalico.org/podIPs: 10.20.0.10/32
Status: Running
IP: 10.20.0.10
IPs:
IP: 10.20.0.10
Controlled By: ReplicaSet/ingress-controller-7fb4796969
Containers:
controller:
Container ID: containerd://382839df3be24812bcb1ef2bed25c3ef80f5727bdd78d1f99a14f6c26ac0bc81
Image: registry.k8s.io/ingress-nginx/controller:v1.5.1@sha256:4ba73c697770664c1e00e9f968de14e08f606ff961c76e5d7033a4a9c593c629
Image ID: registry.k8s.io/ingress-nginx/controller@sha256:4ba73c697770664c1e00e9f968de14e08f606ff961c76e5d7033a4a9c593c629
Ports: 80/TCP, 443/TCP
Host Ports: 0/TCP, 0/TCP
Args:
/nginx-ingress-controller
--publish-service=$(POD_NAMESPACE)/ingress-controller
--election-id=ingress-leader
--controller-class=k8s.io/ingress-nginx
--ingress-class=nginx
--configmap=$(POD_NAMESPACE)/ingress-controller
State: Running
Started: Thu, 19 Jun 2025 10:22:00 +0200
Ready: True
Restart Count: 0
Limits:
cpu: 200m
memory: 200Mi
Requests:
cpu: 100m
memory: 100Mi
Liveness: http-get http://:10254/healthz delay=10s timeout=1s period=10s #success=1 #failure=5
Readiness: http-get http://:10254/healthz delay=10s timeout=1s period=10s #success=1 #failure=3
Environment:
POD_NAME: ingress-controller-7fb4796969-f5rvt (v1:metadata.name)
POD_NAMESPACE: ingress (v1:metadata.namespace)
LD_PRELOAD: /usr/local/lib/libmimalloc.so
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-jjr2j (ro)
Conditions:
Type Status
PodReadyToStartContainers True
Initialized True
Ready True
ContainersReady True
PodScheduled True
Volumes:
kube-api-access-jjr2j:
Type: Projected (a volume that contains injected data from multiple sources)
TokenExpirationSeconds: 3607
ConfigMapName: kube-root-ca.crt
Optional: false
DownwardAPI: true
QoS Class: Burstable
Node-Selectors: kubernetes.io/os=linux
Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
-
Current state of ingress object, if applicable:
kubectl -n <appnamespace> get all,ing -o wide
kubectl -n <appnamespace> describe ing <ingressname>
- If applicable, then, your complete and exact curl/grpcurl command (redacted if required) and the reponse to the curl/grpcurl command with the -v flag
-
Others:
- Any other related information like ;
- copy/paste of the snippet (if applicable)
kubectl describe ...
of any custom configmap(s) created and in use- Any other related information that may help
- Any other related information like ;
How to reproduce this issue:
helm upgrade ingress with helm version 4.12.3 on a 1.32.4 GKE cluster
Anything else we need to know:
Metadata
Metadata
Assignees
Labels
Type
Projects
Status