@@ -16,85 +16,93 @@ The service includes comprehensive user data collection capabilities for various
1616<!-- vim-markdown-toc GFM -->
1717
1818* [ lightspeed-stack] ( #lightspeed-stack )
19- * [ About The Project] ( #about-the-project )
19+ * [ About The Project] ( #about-the-project )
2020* [ Architecture] ( #architecture )
2121* [ Prerequisites] ( #prerequisites )
2222* [ Installation] ( #installation )
2323* [ Run LCS locally] ( #run-lcs-locally )
2424* [ Configuration] ( #configuration )
25- * [ LLM Compatibility] ( #llm-compatibility )
26- * [ Set LLM provider and model] ( #set-llm-provider-and-model )
27- * [ Selecting provider and model] ( #selecting-provider-and-model )
28- * [ Provider and model selection in REST API request] ( #provider-and-model-selection-in-rest-api-request )
29- * [ Default provider and model] ( #default-provider-and-model )
30- * [ Supported providers] ( #supported-providers )
31- * [ Integration with Llama Stack] ( #integration-with-llama-stack )
32- * [ Llama Stack as separate server] ( #llama-stack-as-separate-server )
33- * [ MCP Server and Tool Configuration] ( #mcp-server-and-tool-configuration )
34- * [ Configuring MCP Servers] ( #configuring-mcp-servers )
35- * [ Configuring MCP Headers] ( #configuring-mcp-headers )
36- * [ Llama Stack project and configuration] ( #llama-stack-project-and-configuration )
37- * [ Check connection to Llama Stack] ( #check-connection-to-llama-stack )
38- * [ Llama Stack as client library] ( #llama-stack-as-client-library )
39- * [ Llama Stack version check] ( #llama-stack-version-check )
40- * [ User data collection] ( #user-data-collection )
41- * [ System prompt] ( #system-prompt )
42- * [ System Prompt Path] ( #system-prompt-path )
43- * [ System Prompt Literal] ( #system-prompt-literal )
44- * [ Custom Profile] ( #custom-profile )
45- * [ Control model/provider overrides via authorization] ( #control-modelprovider-overrides-via-authorization )
46- * [ Safety Shields] ( #safety-shields )
47- * [ Authentication] ( #authentication )
48- * [ CORS] ( #cors )
49- * [ Default values] ( #default-values )
50- * [ Allow credentials] ( #allow-credentials )
25+ * [ LLM Compatibility] ( #llm-compatibility )
26+ * [ Set LLM provider and model] ( #set-llm-provider-and-model )
27+ * [ Selecting provider and model] ( #selecting-provider-and-model )
28+ * [ Provider and model selection in REST API request] ( #provider-and-model-selection-in-rest-api-request )
29+ * [ Default provider and model] ( #default-provider-and-model )
30+ * [ Supported providers] ( #supported-providers )
31+ * [ Integration with Llama Stack] ( #integration-with-llama-stack )
32+ * [ Llama Stack as separate server] ( #llama-stack-as-separate-server )
33+ * [ MCP Server and Tool Configuration] ( #mcp-server-and-tool-configuration )
34+ * [ Configuring MCP Servers] ( #configuring-mcp-servers )
35+ * [ Configuring MCP Server Authentication] ( #configuring-mcp-server-authentication )
36+ * [ 1. Static Tokens from Files (Recommended for Service Credentials)] ( #1-static-tokens-from-files-recommended-for-service-credentials )
37+ * [ 2. Kubernetes Service Account Tokens (For K8s Deployments)] ( #2-kubernetes-service-account-tokens-for-k8s-deployments )
38+ * [ 3. Client-Provided Tokens (For Per-User Authentication)] ( #3-client-provided-tokens-for-per-user-authentication )
39+ * [ Combining Authentication Methods] ( #combining-authentication-methods )
40+ * [ Authentication Method Comparison] ( #authentication-method-comparison )
41+ * [ Important: Automatic Server Skipping] ( #important-automatic-server-skipping )
42+ * [ Llama Stack project and configuration] ( #llama-stack-project-and-configuration )
43+ * [ Check connection to Llama Stack] ( #check-connection-to-llama-stack )
44+ * [ Llama Stack as client library] ( #llama-stack-as-client-library )
45+ * [ Llama Stack version check] ( #llama-stack-version-check )
46+ * [ User data collection] ( #user-data-collection )
47+ * [ System prompt] ( #system-prompt )
48+ * [ System Prompt Path] ( #system-prompt-path )
49+ * [ System Prompt Literal] ( #system-prompt-literal )
50+ * [ Custom Profile] ( #custom-profile )
51+ * [ Control model/provider overrides via authorization] ( #control-modelprovider-overrides-via-authorization )
52+ * [ Safety Shields] ( #safety-shields )
53+ * [ Authentication] ( #authentication )
54+ * [ CORS] ( #cors )
55+ * [ Default values] ( #default-values )
56+ * [ Allow credentials] ( #allow-credentials )
5157* [ RAG Configuration] ( #rag-configuration )
52- * [ Example configurations for inference] ( #example-configurations-for-inference )
58+ * [ Example configurations for inference] ( #example-configurations-for-inference )
5359* [ Usage] ( #usage )
54- * [ Make targets] ( #make-targets )
55- * [ Running Linux container image] ( #running-linux-container-image )
56- * [ Building Container Images] ( #building-container-images )
57- * [ Llama-Stack as Separate Service (Server Mode)] ( #llama-stack-as-separate-service-server-mode )
58- * [ macOS (arm64)] ( #macos-arm64 )
59- * [ Llama-Stack as Library (Library Mode)] ( #llama-stack-as-library-library-mode )
60- * [ macOS] ( #macos )
61- * [ Verify it's running properly] ( #verify-its-running-properly )
62- * [ Custom Container Image] ( #custom-container-image )
60+ * [ Make targets] ( #make-targets )
61+ * [ Running Linux container image] ( #running-linux-container-image )
62+ * [ Building Container Images] ( #building-container-images )
63+ * [ Llama-Stack as Separate Service (Server Mode)] ( #llama-stack-as-separate-service-server-mode )
64+ * [ macOS (arm64)] ( #macos-arm64 )
65+ * [ Llama-Stack as Library (Library Mode)] ( #llama-stack-as-library-library-mode )
66+ * [ macOS] ( #macos )
67+ * [ Verify it's running properly] ( #verify-its-running-properly )
68+ * [ Custom Container Image] ( #custom-container-image )
6369* [ Endpoints] ( #endpoints )
64- * [ OpenAPI specification] ( #openapi-specification )
65- * [ Readiness Endpoint] ( #readiness-endpoint )
66- * [ Liveness Endpoint] ( #liveness-endpoint )
70+ * [ OpenAPI specification] ( #openapi-specification )
71+ * [ Readiness Endpoint] ( #readiness-endpoint )
72+ * [ Liveness Endpoint] ( #liveness-endpoint )
6773* [ Database structure] ( #database-structure )
6874* [ Publish the service as Python package on PyPI] ( #publish-the-service-as-python-package-on-pypi )
69- * [ Generate distribution archives to be uploaded into Python registry] ( #generate-distribution-archives-to-be-uploaded-into-python-registry )
70- * [ Upload distribution archives into selected Python registry] ( #upload-distribution-archives-into-selected-python-registry )
71- * [ Packages on PyPI and Test PyPI] ( #packages-on-pypi-and-test-pypi )
75+ * [ Generate distribution archives to be uploaded into Python registry] ( #generate-distribution-archives-to-be-uploaded-into-python-registry )
76+ * [ Upload distribution archives into selected Python registry] ( #upload-distribution-archives-into-selected-python-registry )
77+ * [ Packages on PyPI and Test PyPI] ( #packages-on-pypi-and-test-pypi )
7278* [ Contributing] ( #contributing )
7379* [ Testing] ( #testing )
7480* [ License] ( #license )
7581* [ Additional tools] ( #additional-tools )
76- * [ Utility to generate OpenAPI schema] ( #utility-to-generate-openapi-schema )
77- * [ Path] ( #path )
78- * [ Usage] ( #usage-1 )
79- * [ Makefile target to generate OpenAPI specification] ( #makefile-target-to-generate-openapi-specification )
80- * [ Utility to generate documentation from source code] ( #utility-to-generate-documentation-from-source-code )
81- * [ Path] ( #path-1 )
82- * [ Usage] ( #usage-2 )
82+ * [ Utility to generate OpenAPI schema] ( #utility-to-generate-openapi-schema )
83+ * [ Path] ( #path )
84+ * [ Usage] ( #usage-1 )
85+ * [ Makefile target to generate OpenAPI specification] ( #makefile-target-to-generate-openapi-specification )
86+ * [ Utility to generate documentation from source code] ( #utility-to-generate-documentation-from-source-code )
87+ * [ Path] ( #path-1 )
88+ * [ Usage] ( #usage-2 )
8389* [ Data Export Integration] ( #data-export-integration )
84- * [ Quick Integration] ( #quick-integration )
85- * [ Documentation] ( #documentation )
90+ * [ Quick Integration] ( #quick-integration )
91+ * [ Documentation] ( #documentation )
8692* [ Project structure] ( #project-structure )
87- * [ Configuration classes] ( #configuration-classes )
88- * [ REST API] ( #rest-api )
89- * [ Sequence diagrams] ( #sequence-diagrams )
90- * [ Query endpoint REST API handler] ( #query-endpoint-rest-api-handler )
91- * [ Streaming query endpoint REST API handler] ( #streaming-query-endpoint-rest-api-handler )
92- * [ Versioning] ( #versioning )
93+ * [ Configuration classes] ( #configuration-classes )
94+ * [ REST API] ( #rest-api )
95+ * [ Sequence diagrams] ( #sequence-diagrams )
96+ * [ Query endpoint REST API handler] ( #query-endpoint-rest-api-handler )
97+ * [ Streaming query endpoint REST API handler] ( #streaming-query-endpoint-rest-api-handler )
98+ * [ Versioning] ( #versioning )
99+ * [ Development Tools] ( #development-tools )
100+ * [ MCP Mock Server] ( #mcp-mock-server )
93101* [ Konflux] ( #konflux )
94- * [ Updating Dependencies for Hermetic Builds] ( #updating-dependencies-for-hermetic-builds )
95- * [ When to Update Dependency Files] ( #when-to-update-dependency-files )
96- * [ Updating Python Dependencies] ( #updating-python-dependencies )
97- * [ Updating RPM Dependencies] ( #updating-rpm-dependencies )
102+ * [ Updating Dependencies for Hermetic Builds] ( #updating-dependencies-for-hermetic-builds )
103+ * [ When to Update Dependency Files] ( #when-to-update-dependency-files )
104+ * [ Updating Python Dependencies] ( #updating-python-dependencies )
105+ * [ Updating RPM Dependencies] ( #updating-rpm-dependencies )
98106
99107<!-- vim-markdown-toc -->
100108
@@ -421,13 +429,13 @@ mcp_servers:
421429 url: " http://weather-api:8080"
422430 authorization_headers:
423431 X-API-Key: " /var/secrets/weather-api-key"
424-
432+
425433 # Kubernetes auth for internal services
426434 - name: " internal-db"
427435 url: " http://db-mcp.cluster.local:8080"
428436 authorization_headers:
429437 Authorization: " kubernetes"
430-
438+
431439 # Mixed: static API key + per-user token
432440 - name: " multi-tenant-service"
433441 url: " http://multi-tenant:8080"
@@ -1176,10 +1184,14 @@ Update these files when you:
11761184make konflux-requirements
11771185```
11781186
1179- This generates three platform-specific requirements files:
1180- - `requirements.x86_64.txt` - x86_64 packages (excludes torch)
1181- - `requirements.aarch64.txt` - ARM64 packages (excludes torch)
1182- - `requirements.torch.txt` - CPU variant of torch (shared by both platforms)
1187+ This compiles Python dependencies from `pyproject.toml` using `uv`, splits packages by their source index (PyPI vs Red Hat' s internal registry), and generates hermetic requirements files with pinned versions and hashes for Konflux builds.
1188+
1189+ ** Files produced:**
1190+ - ` requirements.hashes.source.txt` – PyPI packages with hashes
1191+ - ` requirements.hashes.wheel.txt` – Red Hat registry packages with hashes
1192+ - ` requirements-build.txt` – Build-time dependencies for source packages
1193+
1194+ The script also updates the Tekton pipeline configurations (` .tekton/lightspeed-stack-* .yaml` ) with the list of pre-built wheel packages.
11831195
11841196# ## Updating RPM Dependencies
11851197
0 commit comments