prom3theu5 / aspirational-manifests

Handle deployments of .NET Aspire AppHost Projects
MIT License
545 stars 22 forks source link

Ingress resources. #85

Open prom3theu5 opened 6 months ago

prom3theu5 commented 6 months ago

🚀 Introduce ingress Generation

As an engineer I'd like to have an interactive menu that can allow setup of ingress for select services from the aspire manifest.

✔ Goals

🧰 technical

Offer support for nginx initially, then maybe allow deployment of traefik, yarp?

mohdali commented 3 months ago

I would be interested in this. My use case involves handling session affinity for SignalR communications.

Is there any ongoing work on this? Would be happy to try to contribute.

dotnetian commented 1 month ago

Any updates?

prom3theu5 commented 1 month ago

Not yet unfortunately in terms of ingress. We now have the aspirate run command which will launch anything with a public http endpoint as a NodePort and give you direct access etc,

The problem is its not going to work well locally for actual ingress. Docker Desktop doesn't come with an ingress controller, and while I could offer deployment of something like nginx, yarp of traefik, without a valid domain (and without patching a users hosts file which would require admin privileges) you'd require app changes to set base path etc as you'd be stuck exposing ingress hosts as things like http://localhost/aspire-dashboard http://localhost/apiservice

We can definitely implement for remote clusters though, as long as a domain is available to be used. Then comes the need to maybe also add cert-manager, for certificate generation, and that brings even more questions as we'd have to have the option to do things like use lets encrypt, zerossl, cloudflare dns verification etc

prom3theu5 commented 1 month ago

I would be interested in this. My use case involves handling session affinity for SignalR communications.

Is there any ongoing work on this? Would be happy to try to contribute.

Any input or contributions are always welcomed 😄

dotnetian commented 1 month ago

@prom3theu5 is Aspir8 currently deployable considering that public endpoint configuration is still not done?

If yes, could you please provide a brief explanation of how is that done?

prom3theu5 commented 1 month ago

Aspirate isn't deployable by itself, its a cli tool but the manifests it generates - Yeah absolutely

You'd either manually add it to the generated kustomize manifests, apply as patches or edit the generated helm chart to add in your extras / ingress rules etc if you have an ingress controller running in your cluster.

Or if using aspirate run it'll expose public endpoints as node ports and produce a table output with all the addresses

EwoutdBoer commented 1 month ago

nginx to start sounds like a good plan. I would like Yarp support later as well to keep all in the Microsoft stack