[PR #264] [MERGED] feat: deployment runtime #360

Closed
opened 2026-02-16 01:17:02 -05:00 by yindo · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/run-llama/llama_deploy/pull/264
Author: @masci
Created: 9/20/2024
Status: Merged
Merged: 9/23/2024
Merged by: @masci

Base: mainHead: massi/deploy


📝 Commits (10+)

📊 Changes

13 files changed (+429 additions, -8 deletions)

View changed files

llama_deploy/apiserver/deployment.py (+183 -0)
llama_deploy/apiserver/source_managers/__init__.py (+18 -0)
llama_deploy/apiserver/source_managers/git.py (+35 -0)
📝 poetry.lock (+44 -1)
📝 pyproject.toml (+1 -0)
tests/apiserver/conftest.py (+8 -0)
tests/apiserver/data/git_service.yaml (+11 -0)
tests/apiserver/data/workflow/__init__.py (+3 -0)
tests/apiserver/data/workflow/workflow_test.py (+7 -0)
tests/apiserver/source_managers/__init__.py (+0 -0)
tests/apiserver/source_managers/test_git.py (+34 -0)
📝 tests/apiserver/test_config_parser.py (+0 -7)
tests/apiserver/test_deployment.py (+85 -0)

📄 Description

This PR implements the concept of "deployment" that was introduced along with the "apiserver" in #259

Overview of the abstractions introduced:

  • Deployment: runs the control plane, the message queue and spawns the services defined in the configuration file
  • Manager: orchestrate multiple deployment instances
  • SourceManager: a family of components responsible for managing sources (docker/git) for each deployment
  • GitSourceManager: a concrete implementation of SourceManager specialized for dealing with git sources

Known limitations:

  • See the TODO and FIXME in code comments for the details
  • The message queue type is hardcoded, will be made configurable eventually
  • Several places in the code assume that all the services are "workflow services"

Next steps:

  • Create a thread pool to manage all the concurrent threads runnning different deployments
  • Introduce a HTTP-based API for the manager to expose its Python api to clients and CLIs

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/run-llama/llama_deploy/pull/264 **Author:** [@masci](https://github.com/masci) **Created:** 9/20/2024 **Status:** ✅ Merged **Merged:** 9/23/2024 **Merged by:** [@masci](https://github.com/masci) **Base:** `main` ← **Head:** `massi/deploy` --- ### 📝 Commits (10+) - [`55ba4a7`](https://github.com/run-llama/llama_deploy/commit/55ba4a7ced97580e626b81e00e1aac5069f7dd19) first commit - [`cd79aec`](https://github.com/run-llama/llama_deploy/commit/cd79aecea0020dae23b4946517ae8e9e7be3d9fd) wrap up - [`89964fc`](https://github.com/run-llama/llama_deploy/commit/89964fcf8d47901eacf7634c9dab150ac46ccde2) fix support for branch spec - [`a7e49ca`](https://github.com/run-llama/llama_deploy/commit/a7e49ca293fa1e91011826cbbc8333e23027359f) test git source manager - [`9c5dc0d`](https://github.com/run-llama/llama_deploy/commit/9c5dc0d697f99c487c24b90fd88b523cbf590821) add unit tests - [`3778c67`](https://github.com/run-llama/llama_deploy/commit/3778c6736529bc1fbabd2b6c6af9b8c1adb6f5ff) improve test coverage - [`5b3b921`](https://github.com/run-llama/llama_deploy/commit/5b3b9210e6a005c0fcce3398e2aadef43ad9a049) add docstrings - [`8cd15b4`](https://github.com/run-llama/llama_deploy/commit/8cd15b471fa509dbef6c2618ab198ddc39d44eb8) fix test - [`8aeb43d`](https://github.com/run-llama/llama_deploy/commit/8aeb43dd90a1a56ccf63a7fda72d4379520f762d) more docstrings - [`b1f5065`](https://github.com/run-llama/llama_deploy/commit/b1f506568fba3884c5d36ff6eebb17b6d8dc0da2) minor ### 📊 Changes **13 files changed** (+429 additions, -8 deletions) <details> <summary>View changed files</summary> ➕ `llama_deploy/apiserver/deployment.py` (+183 -0) ➕ `llama_deploy/apiserver/source_managers/__init__.py` (+18 -0) ➕ `llama_deploy/apiserver/source_managers/git.py` (+35 -0) 📝 `poetry.lock` (+44 -1) 📝 `pyproject.toml` (+1 -0) ➕ `tests/apiserver/conftest.py` (+8 -0) ➕ `tests/apiserver/data/git_service.yaml` (+11 -0) ➕ `tests/apiserver/data/workflow/__init__.py` (+3 -0) ➕ `tests/apiserver/data/workflow/workflow_test.py` (+7 -0) ➕ `tests/apiserver/source_managers/__init__.py` (+0 -0) ➕ `tests/apiserver/source_managers/test_git.py` (+34 -0) 📝 `tests/apiserver/test_config_parser.py` (+0 -7) ➕ `tests/apiserver/test_deployment.py` (+85 -0) </details> ### 📄 Description This PR implements the concept of "deployment" that was introduced along with the "apiserver" in #259 Overview of the abstractions introduced: - `Deployment`: runs the control plane, the message queue and spawns the services defined in the configuration file - `Manager`: orchestrate multiple deployment instances - `SourceManager`: a family of components responsible for managing sources (docker/git) for each deployment - `GitSourceManager`: a concrete implementation of `SourceManager` specialized for dealing with git sources Known limitations: - See the `TODO` and `FIXME` in code comments for the details - The message queue type is hardcoded, will be made configurable eventually - Several places in the code assume that all the services are "workflow services" Next steps: - Create a thread pool to manage all the concurrent threads runnning different deployments - Introduce a HTTP-based API for the manager to expose its Python api to clients and CLIs --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
yindo added the pull-request label 2026-02-16 01:17:02 -05:00
yindo closed this issue 2026-02-16 01:17:02 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: run-llama/llama_deploy#360