3131PGVECTOR_USER = os .getenv ("LLS_VECTOR_IO_PGVECTOR_USER" , "vector_user" )
3232PGVECTOR_PASSWORD = os .getenv ("LLS_VECTOR_IO_PGVECTOR_PASSWORD" , "yourpassword" )
3333
34+ # qdrant v1 unprivileged latest
3435QDRANT_IMAGE = os .getenv (
3536 "LLS_VECTOR_IO_QDRANT_IMAGE" ,
3637 (
3738 "docker.io/qdrant/qdrant@sha256:"
38- "26509b92c44ded1ad344e18a005383c20bb3fbf9dbf4d337265a230b2aa89e79 " # pragma: allowlist secret"
39+ "9dfabc51ededc48158899a288a19a04de1ab54a11d8c512e1c40eebbd5e2bc92 " # pragma: allowlist secret
3940 ),
4041)
4142
43+ QDRANT_API_KEY = os .getenv ("LLS_VECTOR_IO_QDRANT_API_KEY" , "yourapikey" )
44+ QDRANT_URL = os .getenv ("LLS_VECTOR_IO_QDRANT_URL" , "http://vector-io-qdrant-service:6333" )
45+
4246
4347@pytest .fixture (scope = "class" )
4448def vector_io_provider_deployment_config_factory (
49+ unprivileged_client : DynamicClient ,
50+ unprivileged_model_namespace : Namespace ,
51+ vector_io_secret : Secret ,
4552 request : FixtureRequest ,
46- ) -> Callable [[str ], list [Dict [str , str ]]]:
53+ ) -> Callable [[str ], list [Dict [str , Any ]]]:
4754 """
4855 Factory fixture for deploying vector I/O providers and returning their configuration.
4956
@@ -85,17 +92,25 @@ def test_with_milvus(vector_io_provider_deployment_config_factory):
8592 env_vars = vector_io_provider_deployment_config_factory("milvus-remote")
8693 # env_vars contains MILVUS_ENDPOINT, MILVUS_TOKEN, etc.
8794 """
95+ _ = unprivileged_client
96+ _ = unprivileged_model_namespace
97+ _ = vector_io_secret
8898
89- def _factory (provider_name : str ) -> list [Dict [str , str ]]:
90- env_vars : list [dict [str , str ]] = []
99+ def _factory (provider_name : str ) -> list [Dict [str , Any ]]:
100+ env_vars : list [dict [str , Any ]] = []
91101
92102 if provider_name is None or provider_name == "milvus" :
93103 # Default case - no additional environment variables needed
94104 pass
95105 elif provider_name == "milvus-remote" :
96106 request .getfixturevalue (argname = "milvus_service" )
97107 env_vars .append ({"name" : "MILVUS_ENDPOINT" , "value" : "http://vector-io-milvus-service:19530" })
98- env_vars .append ({"name" : "MILVUS_TOKEN" , "value" : MILVUS_TOKEN })
108+ env_vars .append (
109+ {
110+ "name" : "MILVUS_TOKEN" ,
111+ "valueFrom" : {"secretKeyRef" : {"name" : "vector-io-secret" , "key" : "milvus-token" }},
112+ },
113+ )
99114 env_vars .append ({"name" : "MILVUS_CONSISTENCY_LEVEL" , "value" : "Bounded" })
100115 elif provider_name == "faiss" :
101116 env_vars .append ({"name" : "ENABLE_FAISS" , "value" : "faiss" })
@@ -108,23 +123,54 @@ def _factory(provider_name: str) -> list[Dict[str, str]]:
108123 env_vars .append ({"name" : "ENABLE_PGVECTOR" , "value" : "true" })
109124 env_vars .append ({"name" : "PGVECTOR_HOST" , "value" : "vector-io-pgvector-service" })
110125 env_vars .append ({"name" : "PGVECTOR_PORT" , "value" : "5432" })
111- env_vars .append ({"name" : "PGVECTOR_USER" , "value" : PGVECTOR_USER })
112- env_vars .append ({"name" : "PGVECTOR_PASSWORD" , "value" : PGVECTOR_PASSWORD })
126+ env_vars .append (
127+ {
128+ "name" : "PGVECTOR_USER" ,
129+ "valueFrom" : {"secretKeyRef" : {"name" : "vector-io-secret" , "key" : "pgvector-user" }},
130+ },
131+ )
132+ env_vars .append (
133+ {
134+ "name" : "PGVECTOR_PASSWORD" ,
135+ "valueFrom" : {"secretKeyRef" : {"name" : "vector-io-secret" , "key" : "pgvector-password" }},
136+ },
137+ )
113138 env_vars .append ({"name" : "PGVECTOR_DB" , "value" : "pgvector" })
114139 elif provider_name == "qdrant-remote" :
115140 request .getfixturevalue (argname = "qdrant_service" )
116141 env_vars .append ({"name" : "ENABLE_QDRANT" , "value" : "true" })
117- env_vars .append ({"name" : "QDRANT_URL" , "value" : "http://vector-io-qdrant-service:6333" })
142+ env_vars .append ({"name" : "QDRANT_URL" , "value" : QDRANT_URL })
118143 env_vars .append ({
119144 "name" : "QDRANT_API_KEY" ,
120- "valueFrom" : {"secretKeyRef" : {"name" : "qdrant- secret" , "key" : "api-key" }},
145+ "valueFrom" : {"secretKeyRef" : {"name" : "vector-io- secret" , "key" : "qdrant- api-key" }},
121146 })
122147
123148 return env_vars
124149
125150 return _factory
126151
127152
153+ @pytest .fixture (scope = "class" )
154+ def vector_io_secret (
155+ unprivileged_client : DynamicClient ,
156+ unprivileged_model_namespace : Namespace ,
157+ ) -> Generator [Secret , Any , Any ]:
158+ """Create a secret for the vector I/O providers"""
159+ with Secret (
160+ client = unprivileged_client ,
161+ namespace = unprivileged_model_namespace .name ,
162+ name = "vector-io-secret" ,
163+ type = "Opaque" ,
164+ string_data = {
165+ "qdrant-api-key" : QDRANT_API_KEY ,
166+ "pgvector-user" : PGVECTOR_USER ,
167+ "pgvector-password" : PGVECTOR_PASSWORD ,
168+ "milvus-token" : MILVUS_TOKEN ,
169+ },
170+ ) as secret :
171+ yield secret
172+
173+
128174@pytest .fixture (scope = "class" )
129175def etcd_deployment (
130176 unprivileged_client : DynamicClient ,
@@ -346,8 +392,14 @@ def get_pgvector_deployment_template() -> Dict[str, Any]:
346392 "ports" : [{"containerPort" : 5432 }],
347393 "env" : [
348394 {"name" : "POSTGRES_DB" , "value" : "pgvector" },
349- {"name" : "POSTGRES_USER" , "value" : PGVECTOR_USER },
350- {"name" : "POSTGRES_PASSWORD" , "value" : PGVECTOR_PASSWORD },
395+ {
396+ "name" : "POSTGRES_USER" ,
397+ "valueFrom" : {"secretKeyRef" : {"name" : "vector-io-secret" , "key" : "pgvector-user" }},
398+ },
399+ {
400+ "name" : "POSTGRES_PASSWORD" ,
401+ "valueFrom" : {"secretKeyRef" : {"name" : "vector-io-secret" , "key" : "pgvector-password" }},
402+ },
351403 {"name" : "PGDATA" , "value" : "/var/lib/postgresql/data/pgdata" },
352404 ],
353405 "lifecycle" : {
@@ -377,7 +429,6 @@ def get_pgvector_deployment_template() -> Dict[str, Any]:
377429def qdrant_deployment (
378430 unprivileged_client : DynamicClient ,
379431 unprivileged_model_namespace : Namespace ,
380- qdrant_secret : Secret ,
381432) -> Generator [Deployment , Any , Any ]:
382433 """Deploy a Qdrant instance for vector I/O provider testing."""
383434 with Deployment (
@@ -402,6 +453,8 @@ def qdrant_service(
402453 qdrant_deployment : Deployment ,
403454) -> Generator [Service , Any , Any ]:
404455 """Create a service for the Qdrant deployment."""
456+ _ = qdrant_deployment
457+
405458 with Service (
406459 client = unprivileged_client ,
407460 namespace = unprivileged_model_namespace .name ,
@@ -424,28 +477,11 @@ def qdrant_service(
424477 yield service
425478
426479
427- @pytest .fixture (scope = "class" )
428- def qdrant_secret (
429- unprivileged_client : DynamicClient ,
430- unprivileged_model_namespace : Namespace ,
431- ) -> Generator [Secret , Any , Any ]:
432- """Return a Kubernetes Secret for Qdrant"""
433- with Secret (
434- client = unprivileged_client ,
435- namespace = unprivileged_model_namespace .name ,
436- name = "qdrant-secret" ,
437- type = "Opaque" ,
438- string_data = {"api-key" : "yourapikey" },
439- ) as secret :
440- yield secret
441-
442-
443480def get_qdrant_deployment_template () -> Dict [str , Any ]:
444481 """Return a Kubernetes deployment for Qdrant"""
445482 return {
446483 "metadata" : {"labels" : {"app" : "qdrant" }},
447484 "spec" : {
448- "securityContext" : {"runAsNonRoot" : True , "seccompProfile" : {"type" : "RuntimeDefault" }},
449485 "containers" : [
450486 {
451487 "name" : "qdrant" ,
@@ -465,8 +501,8 @@ def get_qdrant_deployment_template() -> Dict[str, Any]:
465501 "name" : "QDRANT__SERVICE__API_KEY" ,
466502 "valueFrom" : {
467503 "secretKeyRef" : {
468- "name" : "qdrant -secret" ,
469- "key" : "api-key" ,
504+ "name" : "vector-io -secret" ,
505+ "key" : "qdrant- api-key" ,
470506 },
471507 },
472508 },
0 commit comments