Skip to content

haproxy reloading every minute #366

Description

@alexraitz-ship-it

k8s: AKS, version 1.33.8
chart: kubernetes-ingress version 1.52.0

I have installed kubernetes-ingress via helm (namespace haproxy). The deployment is successful.

$ helm list -n haproxy
NAME    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                           APP VERSION
haproxy haproxy         1               2026-06-15 08:24:25.8675661 -0400 EDT   deployed        kubernetes-ingress-1.52.0       3.2.9
$ kk get all -n haproxy
NAME                                             READY   STATUS    RESTARTS   AGE
pod/haproxy-kubernetes-ingress-5c89b5899-2dwdn   1/1     Running   0          13m
pod/haproxy-kubernetes-ingress-5c89b5899-zh8d6   1/1     Running   0          13m

NAME                                 TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)                                                                  AGE
service/haproxy-kubernetes-ingress   LoadBalancer   10.0.154.143   10.253.2.10   80:31644/TCP,443:31658/TCP,443:31658/UDP,1024:30204/TCP,6060:31156/TCP   13m

NAME                                         READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/haproxy-kubernetes-ingress   2/2     2            2           13m

NAME                                                   DESIRED   CURRENT   READY   AGE
replicaset.apps/haproxy-kubernetes-ingress-5c89b5899   2         2  

I have an ingress configured for argocd. It uses an external Azure load balancer with a private IP:

$ kk get ingress -n argocd -o yaml
apiVersion: v1
items:
- apiVersion: networking.k8s.io/v1
  kind: Ingress
  metadata:
    annotations:
      haproxy.org/ssl-passthrough: "true"
      meta.helm.sh/release-name: argocd
      meta.helm.sh/release-namespace: argocd
      service.beta.kubernetes.io/azure-load-balancer-internal: "true"
      service.beta.kubernetes.io/azure-load-balancer-ipv4: 10.253.2.10
    creationTimestamp: "2026-06-12T18:27:32Z"
    generation: 1
    labels:
      app.kubernetes.io/managed-by: Helm
    name: argocd-server-ingress
    namespace: argocd
    resourceVersion: "39788614"
    uid: b5ae6186-257f-4a6e-98e3-e5997676df79
  spec:
    ingressClassName: haproxy
    rules:
    - host: <redacted>
      http:
        paths:
        - backend:
            service:
              name: argocd-server
              port:
                number: 443
          path: /
          pathType: Prefix
  status:
    loadBalancer:
      ingress:
      - ip: 10.253.2.10
kind: List
metadata:
  resourceVersion: "" 

My values.yaml:

controller:
  service:
    type: LoadBalancer
    loadBalancerIP: "10.253.2.10"
    annotations:
      service.beta.kubernetes.io/azure-load-balancer-internal: "true"
      service.beta.kubernetes.io/azure-load-balancer-ipv4: "10.253.2.10"
      service.beta.kubernetes.io/azure-load-balancer-internal-subnet: "<redacted>"

The external load balancer is deployed and healthy.

There is no umbrella chart, custom configMap, custom CRDs, etc.

Haproxy reloads every minute as follows:

2026/06/15 12:44:07 INFO    controller/global.go:91 [transactionID=00c5f28d-afd8-477a-9699-06c8ca6bf243] reload required : Global config updated: map[LogTargetList:[[] [0x16314de223c0]]]
[NOTICE]   (69) : Reloading HAProxy
[NOTICE]   (69) : Initializing new worker (685)
[NOTICE]   (685) : haproxy version is 3.2.19-06868cd6e
[WARNING]  (685) : config : parsing [/etc/haproxy/haproxy.cfg:77] : defaults section 'haproxytech' (declared at /etc/haproxy/haproxy.cfg:20) is explicitly referenced by another proxy and implicitly used here. To avoid any ambiguity don't mix both usage. Add a last defaults section not explicitly used or always use explicit references.
[WARNING]  (685) : config : parsing [/etc/haproxy/haproxy.cfg:90] : defaults section 'haproxytech' (declared at /etc/haproxy/haproxy.cfg:20) is explicitly referenced by another proxy and implicitly used here. To avoid any ambiguity don't mix both usage. Add a last defaults section not explicitly used or always use explicit references.
[WARNING]  (685) : config : parsing [/etc/haproxy/haproxy.cfg:102] : defaults section 'haproxytech' (declared at /etc/haproxy/haproxy.cfg:20) is explicitly referenced by another proxy and implicitly used here. To avoid any ambiguity don't mix both usage. Add a last defaults section not explicitly used or always use explicit references.
[WARNING]  (685) : config : parsing [/etc/haproxy/haproxy.cfg:150] : defaults section 'haproxytech' (declared at /etc/haproxy/haproxy.cfg:20) is explicitly referenced by another proxy and implicitly used here. To avoid any ambiguity don't mix both usage. Add a last defaults section not explicitly used or always use explicit references.
[WARNING]  (685) : config : parsing [/etc/haproxy/haproxy.cfg:199] : defaults section 'haproxytech' (declared at /etc/haproxy/haproxy.cfg:20) is explicitly referenced by another proxy and implicitly used here. To avoid any ambiguity don't mix both usage. Add a last defaults section not explicitly used or always use explicit references.
[WARNING]  (685) : log format ignored for frontend 'healthz' since it has no log address.
[WARNING]  (685) : log format ignored for frontend 'stats' since it has no log address.
[NOTICE]   (69) : Loading success.
[WARNING]  (676) : Proxy healthz stopped (cumulated conns: FE: 3, BE: 0).
[WARNING]  (676) : Proxy http stopped (cumulated conns: FE: 6, BE: 0).
[WARNING]  (676) : Proxy ssl stopped (cumulated conns: FE: 6, BE: 0).
[WARNING]  (676) : Proxy stats stopped (cumulated conns: FE: 8, BE: 0).
[WARNING]  (676) : Proxy https stopped (cumulated conns: FE: 6, BE: 0).
[WARNING]  (676) : Proxy argocd_svc_argocd-server_https stopped (cumulated conns: FE: 0, BE: 0).
[WARNING]  (676) : Proxy haproxy_svc_default-local-service_http stopped (cumulated conns: FE: 0, BE: 12).
[WARNING]  (676) : Proxy ssl-backend stopped (cumulated conns: FE: 0, BE: 6).
2026/06/15 12:44:07 INFO    controller/controller.go:229 [transactionID=00c5f28d-afd8-477a-9699-06c8ca6bf243] HAProxy reloaded
[NOTICE]   (69) : haproxy version is 3.2.19-06868cd6e
[WARNING]  (69) : Former worker (676) exited with code 0 (Exit)

Expected behavior: A clean deployment should not reload every minute.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions