You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The ingress resources in the Helm chart contain numerous configurations (annotations) specific to the Kubernetes ingress-nginx controller (ingress-nginx GitHub repository) and are not universally compatible with other ingress controllers.
For individuals using a different ingress controller, the current options are:
Disable all ingress and create them manually
Override all the defaults in values.yaml
Both methods require considerable effort, initially and also before each update of Ditto. I think the aim should be that someone who uses the helm chart should have as little effort as possible with installation and updates.
Proposal:
I believe we can achieve a big improvement if we manage to remove the ingress-nginx specific annotations to create a "neutral" ingress configuration. This ingress will align with typical ingress configurations in other charts, allowing operators to add their specific settings for whatever they want to achieve.
While I was validating this approach, I discovered that this should be quiety easy. Ditto-nginx already serves as entry point to ditto and the specific annotations in the current ingress resources are already present in the ditto-nginx config.
See ditto-nginx:
etc/nginx/nginx.conf
etc/nginx/nginx-cors.conf
Current ingress annotations:
nginx.ingress.kubernetes.io/server-snippet
nginx.ingress.kubernetes.io/configuration-snippet
If everything aligns well, the necessary changes might be minimal and simplifies the current ingress resources.
I welcome feedback if I've missed any points. I know, of course, that many things are not as easy as they seem at first.
Btw. I think there is something odd with the current setup anyway.
The Ingress ressources apply nginx configurations that are already applied by ditto-nginx. So there are two almost identical configurations that are applied twice.
flowchart LR
subgraph chart [Helm-Chart]
ingress_controller --> ditto-nginx
headers_chart((nginx.config from ingress)) --> ingress_controller
headers_ditto((nginx.config included in ditto-nginx)) --> ditto-nginx
ditto-nginx --> ui(ui)
ditto-nginx --> swagger(swagger)
ditto-nginx --> any(...)
ingress_controller --> gateway
end
client --> ingress_controller(Ingress Controller)
Current Situation:
The ingress resources in the Helm chart contain numerous configurations (annotations) specific to the Kubernetes ingress-nginx controller (ingress-nginx GitHub repository) and are not universally compatible with other ingress controllers.
For individuals using a different ingress controller, the current options are:
Both methods require considerable effort, initially and also before each update of Ditto. I think the aim should be that someone who uses the helm chart should have as little effort as possible with installation and updates.
Proposal:
I believe we can achieve a big improvement if we manage to remove the ingress-nginx specific annotations to create a "neutral" ingress configuration. This ingress will align with typical ingress configurations in other charts, allowing operators to add their specific settings for whatever they want to achieve.
While I was validating this approach, I discovered that this should be quiety easy. Ditto-nginx already serves as entry point to ditto and the specific annotations in the current ingress resources are already present in the ditto-nginx config.
See ditto-nginx:
Current ingress annotations:
If everything aligns well, the necessary changes might be minimal and simplifies the current ingress resources.
I welcome feedback if I've missed any points. I know, of course, that many things are not as easy as they seem at first.
Btw. I think there is something odd with the current setup anyway.
The Ingress ressources apply nginx configurations that are already applied by ditto-nginx. So there are two almost identical configurations that are applied twice.