Replies: 7 comments 4 replies
-
As a side note, I created my own tool to create a pair of certificates: a true CA and a web TLS certificate based on that CA. |
Beta Was this translation helpful? Give feedback.
-
Luckily all 3 of these things are on our radar. We'll be using feedback like this to prioritize which gets done in what order. PS: Are you planning to build custom deployment tooling? |
Beta Was this translation helpful? Give feedback.
-
HI David, great to hear that. Now I am slamming my head on the wall because Aspire forces my projects to listen only to localhost. This makes every diagnostics very complicated. For the next step I was investigating the possibility to build the CI yaml and this is why I was asking about deserializing the manifest. I don't want of course put any effort where you already planned something as it would be wasted time. |
Beta Was this translation helpful? Give feedback.
-
FYI @karolz-ms @danegsta |
Beta Was this translation helpful? Give feedback.
-
Thank you for the details @danegsta From the development perspective the AddDockerfile is a pure development feature which, before or later, will consolidate to an image with a specific tag. In other words, I would merge the two extension methods to a single one where the dockerfile (if specified), is just the recipe to cook a new image when the trigger tell the AppHost to do it. Does it sounds that bad? |
Beta Was this translation helpful? Give feedback.
-
On TLS: https://anthonysimmon.com/dotnet-aspire-containers-trust-self-signed-certificates/ |
Beta Was this translation helpful? Give feedback.
-
Thank you David. I need a full chain to run the local services on localhost but with different DNS names, in order to simulate an oauth exchange with Keycloak and other services. The problem comes from Aspire that doesn't let me use anything else than localhost when I start the services. Thanks! |
Beta Was this translation helpful? Give feedback.
-
Hi, I love Aspire for the inner loop, it definitely resolves a number of headaches, anyway I believe it can bring more value.
Working with TLS / certificates is still too hard
In theory, I should not need to work with TLS on localhost during the development. But when you work on authentication-related features, this is a must. The difficulties with Keycloak enforcing HSTS on localhost is a clear example.
The certificates created by
dotnet dev-certs
are good for a single app, but are not accepted by Python and cannot be used to fully test an authentication scenario with Keycloak as there is the need to validate the handshake with different dns names.Same pain when deploying a service in a container.
Dockerfile
The
AddDockerfile
support in Aspire is very useful to validate the settings and the true isolation of a service from the host. Anyway, you cannot use it continuosly as the image is re-created from scratch every time you run Aspire which is very time-consuming.There is the need to switch from
.AddDockerfile
to.AddContainer
to avoid the continuous re-depoloyment.This is an interesting example of what you need to prepare the distributed app to the deployment.
OTEL and docker
In the inner loop everything is localhost, but when using a container creted by a Dockerfile, you need to specify
.WithEnvironment("OTEL_EXPORTER_OTLP_ENDPOINT", "http://host.docker.internal:port"
to make the service contribute to the OpenTelemetry data. By default the addresses is localhost and this makes the OTEL calls fail.This is another example of the problem you get when going in production.
Prepare to deployment
As for the previous point, I am not arguing that Aspire should enter the business of deployment, but it should smooth the rough edges that we still have when an Aspire distributed application should be deployed.
The Aspirate project is a clear example of the 'piece' needed to do that.
I do not expect Aspire to absorb Aspirate, but IMO it should make it easier to build tools that ease the phases post-development.
For example Aspirate has its own deserializer for the model manifest, but this should be offered by Aspire so that other tools can use it and provide other ways to deploy the solution.
I may have missed other points. I may also have missed some Aspire capabilities resolving one or more of these issues.
In any case I think that the great success of Aspirate is a clear sign that any development in this direction would be welcomed.
Thanks
Beta Was this translation helpful? Give feedback.
All reactions