ingress-nginx: nginx-ingress-controller 0.9.0-beta.10 not updating configuration

Hi guys, I have just deployed the 0.9.0-beta.10 nginx controller on my cluster, but I see the same problem as was described before here.

When I create a new ingress, I can see that the controller notice the event:

[kindled-rabbit-nginx-ingress-controller-f6mxf] I0710 21:29:49.433953       5 event.go:218] Event(v1.ObjectReference{Kind:"Ingress", Namespace:"hosting", Name:"hosting-eswqklnm-custom", UID:"caf35bfc-65b4-11e7-90
ed-06a0d248057a", APIVersion:"extensions", ResourceVersion:"16928428", FieldPath:""}): type: 'Normal' reason: 'UPDATE' Ingress hosting/hosting-eswqklnm-custom
[kindled-rabbit-nginx-ingress-controller-8x848] I0710 21:29:49.442867       5 event.go:218] Event(v1.ObjectReference{Kind:"Ingress", Namespace:"hosting", Name:"hosting-eswqklnm-custom", UID:"caf35bfc-65b4-11e7-90
ed-06a0d248057a", APIVersion:"extensions", ResourceVersion:"16928428", FieldPath:""}): type: 'Normal' reason: 'UPDATE' Ingress hosting/hosting-eswqklnm-custom
[kindled-rabbit-nginx-ingress-controller-13tdd] I0710 21:29:49.441041       5 event.go:218] Event(v1.ObjectReference{Kind:"Ingress", Namespace:"hosting", Name:"hosting-eswqklnm-custom", UID:"caf35bfc-65b4-11e7-90
ed-06a0d248057a", APIVersion:"extensions", ResourceVersion:"16928428", FieldPath:""}): type: 'Normal' reason: 'UPDATE' Ingress hosting/hosting-eswqklnm-custom

But no ingress backend successfully reloaded... message is logged and the new host block is not present in the nginx.conf.

I have to kill all the nginx-controller pods to get the ingress reflected in the nginx.conf.

I have the controller deployed as daemonset, if that is useful information.

I’m not sure if RBAC is involved in this somehow? I have not configured that for nginx controller yet, I have to take a look what it is about, quite a few new things here since I last visited 😃

Thanks for help! 💯

About this issue

  • Original URL
  • State: closed
  • Created 7 years ago
  • Comments: 20 (17 by maintainers)

Most upvoted comments

Could you try these steps to reproduce the problem?

  • create a new ingress with one host rule, for example:
spec:
  rules:
  - host: somedomain.cz
    http:
      paths:
      - backend:
          serviceName: some-service
          servicePort: 80
        path: /
  • nginx controller should reload correctly and the domain is working, accessible through the controller
  • add another host rule, with different domain, example:
spec:
  rules:
  - host: somedomain.cz
    http:
      paths:
      - backend:
          serviceName: some-service
          servicePort: 80
        path: /
  - host: anotherdomain.cz
    http:
      paths:
      - backend:
          serviceName: some-service
          servicePort: 80
        path: /
  • now here the reload is not happening on my side, you can add as much rules as you want, but no reload
  • the only way to trigger the sync & reload is to modify the first domain

I was digging in the code, I have some idea how it all works now, so I did this patch: https://github.com/stibi/ingress/commit/299d4c373c06e2bd5fb549b83573eece4667c9bb

It fixed the problem, the reload is triggered as expected…but I’m not really sure I have fixed the root cause. I’m trying to cover this with tests, because I still don’t have the “aha” moment 😃