feat: refactor external providers dir

currently the "default" dir for external providers is `/etc/llama-stack/providers.d`

This dir is not used anywhere nor created.

Switch to a more friendly `~/.llama/providers.d/`

This allows external providers to actually create this dir and/or populate it upon installation, `pip` cannot create directories in `etc`.

If a user does not specify a dir, default to this one

see https://github.com/containers/ramalama-stack/issues/36

`llama stack build` and `llama stack run` needed to be modified to work with this change and with external providers dir in general.

`llama stack run --image-type container --image-name foobar` should _not_ require a `--config`. This is because the config is copied in during the build and accounts for the external providers dir.

forcing a run yaml at runtime breaks external providers because the host-system path to the external providers is used in the container which is wrong

Signed-off-by: Charlie Doern <cdoern@redhat.com>
This commit is contained in:
Charlie Doern 2025-04-28 10:53:17 -04:00
parent 8e7ab146f8
commit d52d40dafc
14 changed files with 166 additions and 90 deletions

View file

@ -47,8 +47,8 @@ jobs:
- name: Create provider configuration
run: |
mkdir -p /tmp/providers.d/remote/inference
cp tests/external-provider/llama-stack-provider-ollama/custom_ollama.yaml /tmp/providers.d/remote/inference/custom_ollama.yaml
mkdir -p /home/runner/.llama/providers.d/remote/inference
cp tests/external-provider/llama-stack-provider-ollama/custom_ollama.yaml /home/runner/.llama/providers.d/remote/inference/custom_ollama.yaml
- name: Build distro from config file
run: |
@ -66,7 +66,7 @@ jobs:
- name: Wait for Llama Stack server to be ready
run: |
for i in {1..30}; do
if ! grep -q "remote::custom_ollama from /tmp/providers.d/remote/inference/custom_ollama.yaml" server.log; then
if ! grep -q "remote::custom_ollama from /home/runner/.llama/providers.d/remote/inference/custom_ollama.yaml" server.log; then
echo "Waiting for Llama Stack server to load the provider..."
sleep 1
else