Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dapr migration #408

Merged
merged 14 commits into from
Jan 31, 2025
Merged

Dapr migration #408

merged 14 commits into from
Jan 31, 2025

Conversation

aaronpowell
Copy link
Member

Closes #375
Closes #349

This is the culmination of a ser of different bits of work to migrate the Dapr integration from the dotnet/aspire repo to the Community Toolkit, as well as introduce some Dapr integrations with Azure (#349).

The merging of this PR needs to be sync'ed with the work from dotnet/aspire#7049 to ensure that deprecation happens at the right time.

For the Dapr integration, there is only minor changes to the code from the original one (some namespace changes for internal types), with the most notable point being adding PATH lookup for Dapr rather than just hard-coded paths or user-provided.

aaronpowell and others added 6 commits January 15, 2025 02:38
* Dropping files from Aspire repo

* Moving to the right namespace/folder naming

* Adding to solution and getting it to compile

* Adding in the Dapr tests from the Aspire repo

Had to remove the DaprSchemaTests file as we can't do schema tests (missing a lot of infrastructure from the Aspire repo).

Had to edit the DaprTests to not use EnvironmentVariableEvaluator, which we can't leverage as it uses some internal types from Aspire.Hosting. This means that our testing of the environment variables is slightly different, and the values we assert against are not the docker internal host endpoints, but the public endpoints
* Create Dap Azure extensions project
Create Dapr Azure Redis project
Create Example AppHost + ApiService

* Work in progress
Create Dapr resource for provisioning

* Remove specific resource as not generating properly
Use AddAzureInfrastructure

* Updated to use secret refs

* Fix - Remove code used for testing
Add AzureDaprComponentResource
Start of unit tests

* Unit tests +
Fixes based on unit tests

* remove bicep file

* Tests for AzureRedis

* Add Readme and perform small cleanup tasks

* Update src/CommunityToolkit.Aspire.Hosting.Dapr.AzureExtensions/ApplicationModel/AzureDaprComponentResource.cs

Co-authored-by: Aaron Powell <[email protected]>

* Apply suggestions from code review

Co-authored-by: Aaron Powell <[email protected]>

* Revert unintentional change to Java.AppHost

* Update tests/CommunityToolkit.Aspire.Hosting.Dapr.AzureRedis.Tests/ResourceCreationTests.cs

Co-authored-by: Aaron Powell <[email protected]>

* Updated azure redis documentation also added missing xmldocs for api

* correct unit test approach

* remove unnecessary comment

* null checking

* More null checking

* Update Azure redis readme

* Update AzureExtension readme

* move extensions to shared files
remove Dapr Azure extensions project
make dapr azure extensions internal
include extensions in dapr redis package
include extensions in dapr extensions tests
make dapr redis internals visible to dapr redis tests

* change redisCache to infra rename source to redisBuilder

---------

Co-authored-by: Aaron Powell <[email protected]>
* Migrating sample from dotnet/aspire repo

* Adding dapr tests

* Adding dapr setup to CI workflow

* Following the setup-dapr instructions

* Debugging CI

* Falling back to looking at PATH

* Fixing line endings replacement

* Added PATH lookup to Windows

* Adding some diagnostic info

* Changing log level

* init was only running on linux, which I think is wrong

* Turning up logging

* Bypass logging

* Interpolated strings

* Adding resource logger service

* Java app build extension (#348)

* Adding the ability to do a maven build in the app host

This uses an event to run the mvnw build (or it can be customised via options), so it is only used when the app host is running the resource

Fixes #339

* Adding a 'build with maven' command

Allows you to rebuild the java app without having to restart the whole app host.

* Expanding test coverage

* Some more tests

* Windows exe needs a file extension

* Rolling back some changes

* Renaming step

* Tidying up the tests

* Requiring docker for dapr tests
@aaronpowell
Copy link
Member Author

Looks like there's some latent test coverage against Aspire packages being detected, will have to dig into that

@aaronpowell aaronpowell marked this pull request as ready for review January 23, 2025 05:05
@FullStackChef
Copy link
Contributor

Code looks good to me - by which I mean it looks very similar to what was in the aspire repo + my extensions 😅
Only thing I just realised is neither package has been added to the main readme file

@aaronpowell
Copy link
Member Author

Code looks good to me - by which I mean it looks very similar to what was in the aspire repo + my extensions 😅 Only thing I just realised is neither package has been added to the main readme file

Ah yes, I best add them

@aaronpowell aaronpowell enabled auto-merge (squash) January 31, 2025 03:05
@aaronpowell aaronpowell merged commit 199b90f into main Jan 31, 2025
6 checks passed
@aaronpowell aaronpowell deleted the dapr-migration branch January 31, 2025 03:06
Copy link

Code Coverage

Package Line Rate Branch Rate Complexity Health
CommunityToolkit.Aspire.EventStore 100% 100% 46
CommunityToolkit.Aspire.Hosting.ActiveMQ 70% 27% 144
CommunityToolkit.Aspire.Hosting.ActiveMQ.MassTransit 1% 0% 14
CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder 100% 100% 22
CommunityToolkit.Aspire.Hosting.Azure.StaticWebApps 100% 100% 28
CommunityToolkit.Aspire.Hosting.Bun 81% 71% 54
CommunityToolkit.Aspire.Hosting.Dapr 60% 51% 560
CommunityToolkit.Aspire.Hosting.Dapr.AzureRedis 93% 71% 54
CommunityToolkit.Aspire.Hosting.Deno 84% 75% 72
CommunityToolkit.Aspire.Hosting.EventStore 90% 71% 62
CommunityToolkit.Aspire.Hosting.Golang 94% 50% 16
CommunityToolkit.Aspire.Hosting.Java 69% 72% 120
CommunityToolkit.Aspire.Hosting.Meilisearch 61% 27% 94
CommunityToolkit.Aspire.Hosting.Ngrok 59% 50% 58
CommunityToolkit.Aspire.Hosting.NodeJS.Extensions 90% 68% 92
CommunityToolkit.Aspire.Hosting.Ollama 65% 64% 198
CommunityToolkit.Aspire.Hosting.Python.Extensions 69% 50% 86
CommunityToolkit.Aspire.Hosting.Rust 94% 83% 16
CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects 74% 61% 114
CommunityToolkit.Aspire.Hosting.Sqlite 96% 96% 38
CommunityToolkit.Aspire.MassTransit.RabbitMQ 100% 100% 30
CommunityToolkit.Aspire.Meilisearch 97% 92% 68
CommunityToolkit.Aspire.Microsoft.Data.Sqlite 89% 85% 52
CommunityToolkit.Aspire.Microsoft.EntityFrameworkCore.Sqlite 50% 50% 88
CommunityToolkit.Aspire.OllamaSharp 87% 82% 68
Summary 73% (3889 / 5330) 60% (1115 / 1872) 2194

Minimum allowed line rate is 60%

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.

Migrate Dapr from dotnet/Aspire [Feature] Dapr - Azure extensions + Redis configuration
2 participants