I have deployed a nginx ingress controller which works fine when there is no firewall. With the firewall (all egress blocked) the nginx controller seems to be struck. It immediately starts working when the firewall is removed. Not able to find any useful logs on the pod. my ingress config :-
- --default-backend-service=kube-system/nginx-ingress-default-backend
- --election-id=ingress-controller-leader-apps
- --enable-ssl-passthrough
- --ingress-class=nginx-apps
- --configmap=kube-system/nginx-ingress-controller
It's working as designed, when you create a firewall rule blocking all egress connections you are preventing everything that is behind it to talk with the outside world.
To achieve what you want you need to use priority on your firewall rules By using it you can create a rule to allow traffic to specific ports and block everything else.
Here you can find a document describing how to achieve that.