-
-
Notifications
You must be signed in to change notification settings - Fork 531
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
feat(azure)!: add Azurite, EventHubs and ServiceBus in the new Azure module, deprecating the old Azurite module #3008
base: main
Are you sure you want to change the base?
Conversation
✅ Deploy Preview for testcontainers-go ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
* main: docs: refine texts on how to set the module image (testcontainers#3012) feat(modules): add dind module (testcontainers#3004) docs: correct container variable (testcontainers#3010) chore: update Weaviate version to v1.29.0 and Weaviate Go client to v5.0.2 (testcontainers#3006)
This reverts commit fbf78a0.
* main: chore(deps)!: bump github.com/docker/docker from 27.1.1+incompatible to 28.0.1+incompatible (testcontainers#3017) chore!: export DockerCompose type in compose package (testcontainers#2953) chore(deps): bump golang.org/x/net from 0.33.0 to 0.36.0 in /modules (testcontainers#3033) chore(sonar): set main as default branch (testcontainers#3038) fix(sonar): run on ubuntu and the lowest Go version (testcontainers#3037) fix(ci): update core path in sonar build (testcontainers#3036) fix: use empty dir for the core (testcontainers#3035) fix: pass secret to the reusable workflow (testcontainers#3034) chore(ci): use new GH action for SonarQube (testcontainers#3007)
@eddumelendez I'd like to move forward and eventually add cosmosdb module: it "kind of works" on my side, but the TLS connection from my example get lost in the azure go SDK (it swaps the container host-port to the internal hostIP + well-known port of the emulator). I'll add a branch with this code to debug it together is possible. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
@eddumelendez I noticed the code for the |
Services are now internal
@stevenh I'm merging this one, want to add anything else before that? |
What does this PR do?
This PR is doing a few things:
azure
, in which the new Azure containers will live, each on its own subpackage. In examplemodules/azure/eventhubs
.modules/azurite
module, in favor ofmodules/azure/azurite
. The feature has been migrated to the new module, and the deprecated code is linking to the new module, including the imports. There is a breaking change (BC) because we are intentionally removing the access to the azurite container settings, as is an implementation detail.Regarding the new module containers, we are adding:
Azurite
As mentioned, deprecates the former Azurite module, using the same features. It also adds more robust wait strategies for the different service types (Bloc, Queue and Table).
EventHubs
The EventHubs emulator needs an Azurite container, so the module starts it under the hood. For that:
As a result, container communication happens using the aliases and the well-known ports. For the end-users, it's transparent, and they just have to talk to the EventHubs container using the provided API. The testable examples include how to connect to the container.
ServiceBus
The ServiceBus emulator needs a MSSQL Server container, so the module starts it under the hood. For that:
As a result, container communication happens using the aliases and the well-known ports. For the end-users, it's transparent, and they just have to talk to the ServiceBus container using the provided API. The testable examples include how to connect to the container.
Why is it important?
More cloud modules! this time to verify interactions with Azure Cloud.
Follow-ups
I'm not porting the CosmosDB emulator module, as it's broken in the upstream. I tried to run the tc-java implementation and it fails: