charts icon indicating copy to clipboard operation
charts copied to clipboard

Helm waits forever

Open dpedu opened this issue 1 year ago • 1 comments

I am using this ingress controller in a manner similar to #23. I'm using controller.hostNetwork=true and thus do not require the Service resource that this chart creates. My values config is as follows:

controller:
  hostNetwork: true
  extraArgs:
    "watch-ingress-without-class":
  kind: DaemonSet
  stats:
    enabled: true
  daemonset:
    useHostPort: true
  nodeSelector:
    role: ingress-controller

When deploying with helm, with the --wait as I need the command to block until the controller is ready, causes Helm to wait forever on a condition that will never happen:

$ helm upgrade --install haproxy-ingress haproxy-ingress/haproxy-ingress  --create-namespace --namespace ingress-controller  --version 0.14.2  -f values.yaml --debug --wait
history.go:56: [debug] getting history for release haproxy-ingress
upgrade.go:142: [debug] preparing upgrade for haproxy-ingress
upgrade.go:150: [debug] performing update for haproxy-ingress
upgrade.go:322: [debug] creating upgraded release for haproxy-ingress
client.go:396: [debug] checking 11 resources for changes
client.go:684: [debug] Patch PodDisruptionBudget "haproxy-ingress" in namespace ingress-controller
client.go:675: [debug] Looks like there are no changes for ServiceAccount "haproxy-ingress"
client.go:675: [debug] Looks like there are no changes for ConfigMap "haproxy-ingress"
client.go:675: [debug] Looks like there are no changes for ConfigMap "haproxy-ingress-tcp"
client.go:675: [debug] Looks like there are no changes for ClusterRole "haproxy-ingress"
client.go:675: [debug] Looks like there are no changes for ClusterRoleBinding "haproxy-ingress"
client.go:675: [debug] Looks like there are no changes for Role "haproxy-ingress"
client.go:675: [debug] Looks like there are no changes for RoleBinding "haproxy-ingress"
client.go:684: [debug] Patch Service "haproxy-ingress" in namespace ingress-controller
client.go:675: [debug] Looks like there are no changes for Service "haproxy-ingress-stats"
client.go:684: [debug] Patch DaemonSet "haproxy-ingress" in namespace ingress-controller
upgrade.go:394: [debug] waiting for release haproxy-ingress resources (created: 0 updated: 11  deleted: 0)
wait.go:48: [debug] beginning wait for 11 resources with timeout of 5m0s
ready.go:258: [debug] Service does not have load balancer ingress IP address: ingress-controller/haproxy-ingress
ready.go:258: [debug] Service does not have load balancer ingress IP address: ingress-controller/haproxy-ingress
ready.go:258: [debug] Service does not have load balancer ingress IP address: ingress-controller/haproxy-ingress
ready.go:258: [debug] Service does not have load balancer ingress IP address: ingress-controller/haproxy-ingress
ready.go:258: [debug] Service does not have load balancer ingress IP address: ingress-controller/haproxy-ingress
ready.go:258: [debug] Service does not have load balancer ingress IP address: ingress-controller/haproxy-ingress
ready.go:258: [debug] Service does not have load balancer ingress IP address: ingress-controller/haproxy-ingress
... (message is repeated many times) ...
ready.go:258: [debug] Service does not have load balancer ingress IP address: ingress-controller/haproxy-ingress
upgrade.go:434: [debug] warning: Upgrade "haproxy-ingress" failed: timed out waiting for the condition
Error: UPGRADE FAILED: timed out waiting for the condition
helm.go:84: [debug] timed out waiting for the condition
UPGRADE FAILED
main.newUpgradeCmd.func2
	helm.sh/helm/v3/cmd/helm/upgrade.go:202
github.com/spf13/cobra.(*Command).execute
	github.com/spf13/[email protected]/command.go:916
github.com/spf13/cobra.(*Command).ExecuteC
	github.com/spf13/[email protected]/command.go:1044
github.com/spf13/cobra.(*Command).Execute
	github.com/spf13/[email protected]/command.go:968
main.main
	helm.sh/helm/v3/cmd/helm/helm.go:83
runtime.main
	runtime/proc.go:250
runtime.goexit
	runtime/asm_arm64.s:1172

This goes on for some time until Helm gives up and returns an error, despite everything working correctly.

Not using --wait is not an option here as I need to wait until the daemonset is actually up and healthy.

dpedu avatar Mar 30 '23 15:03 dpedu

Hi, you can try configuring controller's service as ClusterIP, here is one of the installation tips regarding that:

The default service type is `LoadBalancer`, add `--set controller.service.type=<type>`
command-line option to change to `ClusterIP` or `NodePort`

jcmoraisjr avatar May 28 '23 17:05 jcmoraisjr