question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Ingress to Mapping "best effort" conversion tooling

See original GitHub issue

Please describe your use case / problem.

I have several large clusters and dozens of applications (deployed with Helm) where Ingress is heavily used and Traefik is the default ingress controller.

I would like to convert these clusters and their applications to Ambassador as the default to leverage the speed improvements of Envoy and utilize the Mapping API for its robustness.

I need to minimize the upfront time it takes to migrate my apps and clusters and automate as much of the process as possible so that I can easily do this for my existing apps and any future apps I inherit.

Describe the solution you’d like

Right now I’m considering that a ingress to mapping conversion tool in the form of a Go library and accompanying CLI could be a good fit.

Since Mapping is very different from Ingress and exists because Ingress doesn’t have the same features it’s understood that inherently not all Ingress resources will actually convert cleanly to Mapping. It is understood that this tool would be “best effort” and may either need to be flagged to allow for imperfect conversions and/or error out when the conversion can’t be done cleanly.

This would be helpful for automating the procedure and adding tests to cover converted apps.

Describe alternatives you’ve considered

I’ve considered doing the conversion by hand which wouldn’t be a big deal except that I expect to receive more apps and have to repeat this process continually over the coming years.

Additional context

At the time of writing this originally I’m not sure this is the best approach, I’m very open to alternative suggestions.

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Comments:9 (7 by maintainers)

github_iconTop GitHub Comments

2reactions
GoelDeepakcommented, Oct 22, 2020

@shaneutt Since you mention Traefik, one challenge that you might have to face is converting those annotations to proper mapping configuration

2reactions
cakuroscommented, Oct 22, 2020

@shaneutt, One thing I’ve discovered with Ingresses is that they are very namespace-restrictive. I think any kind of conversion tool should make sure that all generated config remains in and references the same namespace that the Ingress is set to be part of to make sure the resulting config exactly mimics the behavior of the Ingress.

Another thing is that I believe Ambassador already translates Ingress to Mapping+Host internally, so I think that type of code exists somewhere, @kflynn will probably be able to give you better guidance on where that code lives though.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Configure Ingress for external load balancing - Google Cloud
For more information about path limitations and pattern matching, see the URL Maps documentation. For GKE clusters running versions earlier than 1.21.3-gke.1600 ...
Read more >
Configuring Ingress for Internal HTTP(S) Load Balancing
During this time, the Ingress controller creates items such as forwarding rules, backend services, URL maps, and NEGs. To retrieve the status of...
Read more >
ingress-nginx/Changelog.md at main - GitHub
#7656 Changelog.md: Update references to sigs.k8s.io/promo-tools (#7656); #7603 additional info for the custom-headers documentation page (#7603); #7630 images/ ...
Read more >
Campus QoS Design - Simplified - Cisco Live
Campus QoS Design Considerations and Best Practices ... and queuing (egress and/or ingress) policies to switch ports ... Best Effort (DSCP 0).
Read more >
How to convert k8s yaml to helm chart - Stack Overflow
There is no unambiguous way to map k8s YAML to a Helm chart. ... letsencrypt-prod kubernetes.io/ingress.class: nginx ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found