chore: rename run.yaml to config.yaml

since we only have one config, lets call it config.yaml! this should be treated as the source of truth for starting a stack

change all file names, tests, etc.

Signed-off-by: Charlie Doern <cdoern@redhat.com>
This commit is contained in:
Charlie Doern 2025-11-25 12:56:57 -05:00
parent 4a3f9151e3
commit 0cd98c957e
64 changed files with 147 additions and 145 deletions

View file

@ -64,14 +64,14 @@ class StackListBuilds(Subcommand):
for name, (path, source_type) in sorted(distributions.items()):
row = [name, source_type, str(path)]
# Check for build and run config files
# For built-in distributions, configs are named build.yaml and run.yaml
# For custom distributions, configs are named {name}-build.yaml and {name}-run.yaml
# For built-in distributions, configs are named build.yaml and config.yaml
# For custom distributions, configs are named {name}-build.yaml and {name}-config.yaml
if source_type == "built-in":
build_config = "Yes" if (path / "build.yaml").exists() else "No"
run_config = "Yes" if (path / "run.yaml").exists() else "No"
run_config = "Yes" if (path / "config.yaml").exists() else "No"
else:
build_config = "Yes" if (path / f"{name}-build.yaml").exists() else "No"
run_config = "Yes" if (path / f"{name}-run.yaml").exists() else "No"
run_config = "Yes" if (path / f"{name}-config.yaml").exists() else "No"
row.extend([build_config, run_config])
rows.append(row)
print_table(rows, headers, separate_rows=True)

View file

@ -57,7 +57,7 @@ def generate_run_config(
image_name: str,
) -> Path:
"""
Generate a run.yaml template file for user to edit from a build.yaml file
Generate a config.yaml template file for user to edit from a build.yaml file
"""
apis = list(build_config.distribution_spec.providers.keys())
distro_dir = DISTRIBS_BASE_DIR / image_name
@ -123,7 +123,7 @@ def generate_run_config(
)
run_config.providers[api].append(p_spec)
run_config_file = build_dir / f"{image_name}-run.yaml"
run_config_file = build_dir / f"{image_name}-config.yaml"
with open(run_config_file, "w") as f:
to_write = json.loads(run_config.model_dump_json())
@ -131,7 +131,7 @@ def generate_run_config(
# Only print this message for non-container builds since it will be displayed before the
# container is built
# For non-container builds, the run.yaml is generated at the very end of the build process so it
# For non-container builds, the config.yaml is generated at the very end of the build process so it
# makes sense to display this message
if build_config.image_type != LlamaStackImageType.CONTAINER.value:
cprint(f"You can now run your stack with `llama stack run {run_config_file}`", color="green", file=sys.stderr)

View file

@ -9,8 +9,8 @@ from typing import Any
from llama_stack.core.datatypes import (
AccessRule,
RoutedProtocol,
StackConfig,
)
from llama_stack.core.datatypes import StackConfig
from llama_stack.core.store import DistributionRegistry
from llama_stack.providers.utils.inference.inference_store import InferenceStore
from llama_stack_api import Api, RoutingTable

View file

@ -224,7 +224,7 @@ class ModelsRoutingTable(CommonRoutingTableImpl, Models):
existing_models = await self.get_all_with_type("model")
# we may have an alias for the model registered by the user (or during initialization
# from run.yaml) that we need to keep track of
# from config.yaml) that we need to keep track of
model_ids = {}
for model in existing_models:
if model.provider_id != provider_id:

View file

@ -500,7 +500,7 @@ async def refresh_registry_task(impls: dict[Api, Any]):
def get_stack_run_config_from_distro(distro: str) -> StackConfig:
distro_path = importlib.resources.files("llama_stack") / f"distributions/{distro}/run.yaml"
distro_path = importlib.resources.files("llama_stack") / f"distributions/{distro}/config.yaml"
with importlib.resources.as_file(distro_path) as path:
if not path.exists():

View file

@ -111,7 +111,7 @@ def get_distribution_template() -> DistributionTemplate:
container_image=None,
providers=providers,
run_configs={
"run.yaml": RunConfigSettings(
"config.yaml": RunConfigSettings(
provider_overrides={
"inference": [inference_provider, embedding_provider],
"vector_io": [chromadb_provider],

View file

@ -141,14 +141,14 @@ docker run \
--pull always \
-p $LLAMA_STACK_PORT:$LLAMA_STACK_PORT \
-v $HOME/.llama:/root/.llama \
-v ./llama_stack/distributions/tgi/run-with-safety.yaml:/root/my-run.yaml \
-v ./llama_stack/distributions/tgi/run-with-safety.yaml:/root/my-config.yaml \
-e INFERENCE_MODEL=$INFERENCE_MODEL \
-e DEH_URL=$DEH_URL \
-e SAFETY_MODEL=$SAFETY_MODEL \
-e DEH_SAFETY_URL=$DEH_SAFETY_URL \
-e CHROMA_URL=$CHROMA_URL \
llamastack/distribution-{{ name }} \
--config /root/my-run.yaml \
--config /root/my-config.yaml \
--port $LLAMA_STACK_PORT
```
@ -157,16 +157,16 @@ docker run \
You can also run the Docker container with a custom run configuration file by mounting it into the container:
```bash
# Set the path to your custom run.yaml file
CUSTOM_RUN_CONFIG=/path/to/your/custom-run.yaml
# Set the path to your custom config.yaml file
CUSTOM_RUN_CONFIG=/path/to/your/custom-config.yaml
docker run -it \
--pull always \
--network host \
-p $LLAMA_STACK_PORT:$LLAMA_STACK_PORT \
-v $HOME/.llama:/root/.llama \
-v $CUSTOM_RUN_CONFIG:/app/custom-run.yaml \
-e RUN_CONFIG_PATH=/app/custom-run.yaml \
-v $CUSTOM_RUN_CONFIG:/app/custom-config.yaml \
-e RUN_CONFIG_PATH=/app/custom-config.yaml \
-e INFERENCE_MODEL=$INFERENCE_MODEL \
-e DEH_URL=$DEH_URL \
-e CHROMA_URL=$CHROMA_URL \

View file

@ -73,8 +73,8 @@ docker run \
You can also run the Docker container with a custom run configuration file by mounting it into the container:
```bash
# Set the path to your custom run.yaml file
CUSTOM_RUN_CONFIG=/path/to/your/custom-run.yaml
# Set the path to your custom config.yaml file
CUSTOM_RUN_CONFIG=/path/to/your/custom-config.yaml
LLAMA_STACK_PORT=8321
docker run \
@ -83,8 +83,8 @@ docker run \
--gpu all \
-p $LLAMA_STACK_PORT:$LLAMA_STACK_PORT \
-v ~/.llama:/root/.llama \
-v $CUSTOM_RUN_CONFIG:/app/custom-run.yaml \
-e RUN_CONFIG_PATH=/app/custom-run.yaml \
-v $CUSTOM_RUN_CONFIG:/app/custom-config.yaml \
-e RUN_CONFIG_PATH=/app/custom-config.yaml \
llamastack/distribution-{{ name }} \
--port $LLAMA_STACK_PORT
```
@ -105,7 +105,7 @@ Make sure you have the Llama Stack CLI available.
```bash
llama stack list-deps meta-reference-gpu | xargs -L1 uv pip install
INFERENCE_MODEL=meta-llama/Llama-3.2-3B-Instruct \
llama stack run distributions/{{ name }}/run.yaml \
llama stack run distributions/{{ name }}/config.yaml \
--port 8321
```

View file

@ -105,7 +105,7 @@ def get_distribution_template() -> DistributionTemplate:
template_path=Path(__file__).parent / "doc_template.md",
providers=providers,
run_configs={
"run.yaml": RunConfigSettings(
"config.yaml": RunConfigSettings(
provider_overrides={
"inference": [inference_provider, embedding_provider],
"vector_io": [vector_io_provider],

View file

@ -128,8 +128,8 @@ docker run \
You can also run the Docker container with a custom run configuration file by mounting it into the container:
```bash
# Set the path to your custom run.yaml file
CUSTOM_RUN_CONFIG=/path/to/your/custom-run.yaml
# Set the path to your custom config.yaml file
CUSTOM_RUN_CONFIG=/path/to/your/custom-config.yaml
LLAMA_STACK_PORT=8321
docker run \
@ -137,8 +137,8 @@ docker run \
--pull always \
-p $LLAMA_STACK_PORT:$LLAMA_STACK_PORT \
-v ~/.llama:/root/.llama \
-v $CUSTOM_RUN_CONFIG:/app/custom-run.yaml \
-e RUN_CONFIG_PATH=/app/custom-run.yaml \
-v $CUSTOM_RUN_CONFIG:/app/custom-config.yaml \
-e RUN_CONFIG_PATH=/app/custom-config.yaml \
-e NVIDIA_API_KEY=$NVIDIA_API_KEY \
llamastack/distribution-{{ name }} \
--port $LLAMA_STACK_PORT
@ -162,7 +162,7 @@ INFERENCE_MODEL=meta-llama/Llama-3.1-8B-Instruct
llama stack list-deps nvidia | xargs -L1 uv pip install
NVIDIA_API_KEY=$NVIDIA_API_KEY \
INFERENCE_MODEL=$INFERENCE_MODEL \
llama stack run ./run.yaml \
llama stack run ./config.yaml \
--port 8321
```

View file

@ -81,7 +81,7 @@ def get_distribution_template(name: str = "nvidia") -> DistributionTemplate:
template_path=Path(__file__).parent / "doc_template.md",
providers=providers,
run_configs={
"run.yaml": RunConfigSettings(
"config.yaml": RunConfigSettings(
provider_overrides={
"inference": [inference_provider],
"datasetio": [datasetio_provider],

View file

@ -74,7 +74,7 @@ def get_distribution_template(name: str = "oci") -> DistributionTemplate:
template_path=Path(__file__).parent / "doc_template.md",
providers=providers,
run_configs={
"run.yaml": RunConfigSettings(
"config.yaml": RunConfigSettings(
provider_overrides={
"inference": [inference_provider],
"vector_io": [vector_io_provider],

View file

@ -261,7 +261,7 @@ def get_distribution_template() -> DistributionTemplate:
providers=providers,
available_models_by_provider=available_models,
run_configs={
"run.yaml": RunConfigSettings(
"config.yaml": RunConfigSettings(
provider_overrides={
"inference": inference_providers,
"vector_io": vector_io_providers,

View file

@ -276,7 +276,7 @@ def get_distribution_template(name: str = "starter") -> DistributionTemplate:
template_path=None,
providers=providers,
run_configs={
"run.yaml": base_run_settings,
"config.yaml": base_run_settings,
"run-with-postgres-store.yaml": postgres_run_settings,
},
run_config_env_vars={

View file

@ -69,7 +69,7 @@ def get_distribution_template(name: str = "watsonx") -> DistributionTemplate:
template_path=None,
providers=providers,
run_configs={
"run.yaml": RunConfigSettings(
"config.yaml": RunConfigSettings(
provider_overrides={
"inference": [inference_provider],
"files": [files_provider],

View file

@ -92,10 +92,10 @@ def config_to_category_levels(category: str, level: str):
def parse_yaml_config(yaml_config: LoggingConfig) -> dict[str, int]:
"""
Helper function to parse a yaml logging configuration found in the run.yaml
Helper function to parse a yaml logging configuration found in the config.yaml
Parameters:
yaml_config (Logging): the logger config object found in the run.yaml
yaml_config (Logging): the logger config object found in the config.yaml
Returns:
Dict[str, int]: A dictionary mapping categories to their log levels.

View file

@ -16,7 +16,7 @@ class MetaReferenceInferenceConfig(BaseModel):
# this is a placeholder to indicate inference model id
# the actual inference model id is dtermined by the moddel id in the request
# Note: you need to register the model before using it for inference
# models in the resouce list in the run.yaml config will be registered automatically
# models in the resouce list in the config.yaml config will be registered automatically
model: str | None = None
torch_seed: int | None = None
max_seq_len: int = 4096

View file

@ -51,7 +51,9 @@ class _HfAdapter(OpenAIMixin):
class TGIAdapter(_HfAdapter):
async def initialize(self, config: TGIImplConfig) -> None:
if not config.base_url:
raise ValueError("You must provide a URL in run.yaml (or via the TGI_URL environment variable) to use TGI.")
raise ValueError(
"You must provide a URL in config.yaml (or via the TGI_URL environment variable) to use TGI."
)
log.info(f"Initializing TGI client with url={config.base_url}")
# Extract base URL without /v1 for HF client initialization
base_url_str = str(config.base_url).rstrip("/")

View file

@ -46,7 +46,7 @@ class VLLMInferenceAdapter(OpenAIMixin):
async def initialize(self) -> None:
if not self.config.base_url:
raise ValueError(
"You must provide a URL in run.yaml (or via the VLLM_URL environment variable) to use vLLM."
"You must provide a URL in config.yaml (or via the VLLM_URL environment variable) to use vLLM."
)
async def health(self) -> HealthResponse: