Skip to content

Add Traefik support alongside nginx-specific ingress annotations - #634

Open
rajeshkio wants to merge 2 commits into
neuvector:masterfrom
rajeshkio:master
Open

Add Traefik support alongside nginx-specific ingress annotations#634
rajeshkio wants to merge 2 commits into
neuvector:masterfrom
rajeshkio:master

Conversation

@rajeshkio

Copy link
Copy Markdown
Contributor

As nginx has been deprecated and SUSE have been moving to traefik. We should add support for traefik. The PR does the following:

  • Add ServersTransport CRD template (traefik-serverstransport.yaml)
    to trust NeuVector's self-signed backend certs when using Traefik
  • Only auto-inject nginx.ingress.kubernetes.io/backend-protocol when
    ingressClassName is explicitly "nginx", instead of always adding it
    (manager, controller, registry-adapter ingress templates)
  • Remove hardcoded nginx annotation defaults from values.yaml for
    controller, federation, and registry-adapter ingress blocks
  • Document Traefik usage and the new traefik.serversTransport.*
    values in README.md, including the Service-vs-Ingress annotation
    distinction (backend scheme/transport annotations belong on the
    Kubernetes Service, not the Ingress)

- Add ServersTransport CRD template (traefik-serverstransport.yaml)
  to trust NeuVector's self-signed backend certs when using Traefik
- Only auto-inject nginx.ingress.kubernetes.io/backend-protocol when
  ingressClassName is explicitly nginx, instead of always adding it
  (manager, controller, registry-adapter ingress templates)
- Remove hardcoded nginx annotation defaults from values.yaml for
  controller, federation, and registry-adapter ingress blocks
@rajeshkio
rajeshkio requested a review from a team as a code owner August 5, 2026 14:52
@rajeshkio
rajeshkio requested review from holyspectral and removed request for a team August 5, 2026 14:52
@esther-suse

Copy link
Copy Markdown
Contributor

I have verified the PR. Traefik ingress works.

helm install neuvector ./charts/core -n neuvector \
    --set traefik.serversTransport.enabled=true \
    --set controller.ingress.enabled=true \
    --set controller.ingress.ingressClassName=traefik \
    --set controller.ingress.host=neuvector-api.local \
    --set controller.svc.annotations."traefik\.ingress\.kubernetes\.io/service\.serversscheme"=https \
    --set controller.svc.annotations."traefik\.ingress\.kubernetes\.io/service\.serverstransport"=neuvector-neuvector-backend-transport@kubernetescrd \
    --set manager.ingress.enabled=true \
    --set manager.ingress.ingressClassName=traefik \
    --set manager.ingress.host=neuvector.test \
    --set manager.svc.annotations."traefik\.ingress\.kubernetes\.io/service\.serversscheme"=https \
    --set manager.svc.annotations."traefik\.ingress\.kubernetes\.io/service\.serverstransport"=neuvector-neuvector-backend-transport@kubernetescrd
NAME: neuvector
LAST DEPLOYED: Sat Aug  8 00:59:15 2026
NAMESPACE: neuvector
STATUS: deployed
REVISION: 1
DESCRIPTION: Install complete
TEST SUITE: None
NOTES:
From outside the cluster, the NeuVector URL is:
http://neuvector.test

kubectl get ingress -n neuvector 
NAME                        CLASS     HOSTS                 ADDRESS         PORTS   AGE
neuvector-restapi-ingress   traefik   neuvector-api.local   10.115.52.172   80      23s
neuvector-webui-ingress     traefik   neuvector.test        10.115.52.172   80      23s
root@esther-k3s-flannel:~/neuvector-helm# 

kubectl get serverstransport -n neuvector
NAME                          AGE
neuvector-backend-transport   32s

@Martin-Weiss

Copy link
Copy Markdown

I had a quick look at this PR and ask myself if it wouldn´t make more sense to add one global variable for ingresscontroller where one can say rke2-nginx-ingress or rke2-traefik and then the helm chart automatically renders the required annotations on ingress and service objects.. - what do you think?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants