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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions