feat: Add Qdrant module#1149
Merged
HofmeisterAn merged 27 commits intotestcontainers:developfrom Mar 14, 2025
Merged
Conversation
This commit adds a qdrant container to the list of supported Testcontainers. The qdrant container allows configuration of: - an API key to authenticate to Qdrant - an x509 certificate used to secure communication to Qdrant with Transport Layer Security - a custom configuration file. See https://qdrant.tech/documentation/guides/configuration/ Closes testcontainers#992
Qdrant uses rustls for TLS, which does not accept IPv4 or IPv6 addresses as the hostname in SNI, adhering to RFC 6066: https://www.rfc-editor.org/rfc/rfc6066#page-7 Sending an IPv4 or IPv6 address as the hostname in SNI causes the handshake to be rejected and qdrant to log WARN rustls::msgs::handshake: Illegal SNI hostname received "127.0.0.1" By default, .NET on linux sends the DNS name in the URI in Server Name Indication (SNI), irrespective of whether it's an IP address or not. In order to resolve this, a custom Host request header is added, per dotnet/runtime#20876 (comment)
✅ Deploy Preview for testcontainers-dotnet ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
Closed
eerhardt
reviewed
Apr 4, 2024
eddumelendez
reviewed
Apr 6, 2024
This commit moves the wait for strategy to use the readyz endpoint. If a certificate has been specified, perform the check with TLS and allow any certificate to pass validation.
The qdrant gRPC client uses .NET Framework build of Grpc.Net.Client, which uses WinHttpHandler. The wiring up is easier on net462 if net462 is targeted specifically. Same reason why the Milvus container also targets net462 (testcontainers#1131 (comment)).
HofmeisterAn
reviewed
Apr 7, 2024
Collaborator
HofmeisterAn
left a comment
There was a problem hiding this comment.
Thank you for the PR 🙏. I have reviewed it and made some minor changes to align with the repository standards. I have a some suggestions regarding the certificates. I am happy to merge the PR after we have sorted them out.
Member
|
It will be nice to add some docs for the module and how to use it. |
This commit updates the version of the image and the official Qdrant client, and adds docs on how to use the container.
Contributor
Author
|
@HofmeisterAn @eddumelendez I've updated this PR with latest on develop and added documentation. Looking forward to seeing this merged. |
Collaborator
|
I'll try to review it by the end of this week. |
Contributor
Author
|
Thanks for merging @HofmeisterAn. Do you have a rough idea when this might be released? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #992
What does this PR do?
This commit adds a qdrant container to the list of supported Testcontainers, for use with the Qdrant vector database.
The qdrant container allows configuration of:
Why is it important?
Provides a qdrant test container for folks that need it
Related issues
#992
Supersedes #994
How to test this PR
Run tests in Testcontainers.Qdrant.Tests