diff --git a/.changeset/llm-stack-fix-config-updates.md b/.changeset/llm-stack-fix-config-updates.md new file mode 100644 index 00000000..3b287542 --- /dev/null +++ b/.changeset/llm-stack-fix-config-updates.md @@ -0,0 +1,5 @@ +--- +"llm-stack": patch +--- + +Made the digest header for the apisix config update variable so that config updates are accepted by apisix \ No newline at end of file diff --git a/charts/llm-stack/bin/test-request-scaleway.sh b/charts/llm-stack/bin/test-request-scaleway.sh index 2815e882..da73ad40 100755 --- a/charts/llm-stack/bin/test-request-scaleway.sh +++ b/charts/llm-stack/bin/test-request-scaleway.sh @@ -1,7 +1,7 @@ PORT=${PORT:-80} HOST=${HOST:-llm-stack.localhost} -curl http://$HOST:$PORT/v1/chat/completions \ +curl http://$HOST:$PORT/v1/chat/completions -v \ -H "Content-Type: application/json" \ -H "Authorization: Bearer sk-client-v1-abcdef123456" \ -d '{ diff --git a/charts/llm-stack/examples/scaleway.yaml b/charts/llm-stack/examples/scaleway.yaml index d41ab69b..34a7434a 100644 --- a/charts/llm-stack/examples/scaleway.yaml +++ b/charts/llm-stack/examples/scaleway.yaml @@ -4,11 +4,6 @@ apisixInitialConfig: provider: openai-compatible # retrieve the project id from the scaleway project dashboard baseURL: "https://api.scaleway.ai//v1/chat/completions" # ignored if vllm is enabled - models: - - name: qwen3.6-35b-a3b - provider: scaleway - - name: gemma-4-26b-a4b-it - provider: scaleway apisix: metrics: diff --git a/charts/llm-stack/templates/apisix-config-seeder-configmap.yaml b/charts/llm-stack/templates/apisix-config-seeder-configmap.yaml index d7b06f09..1ee21a33 100644 --- a/charts/llm-stack/templates/apisix-config-seeder-configmap.yaml +++ b/charts/llm-stack/templates/apisix-config-seeder-configmap.yaml @@ -18,12 +18,13 @@ data: import sys import json import os + from datetime import datetime url = "http://{{ include "common.names.fullname" . }}-apisix-admin-headless:9180/apisix/admin/configs" headers = { "X-API-KEY": os.getenv("ADMIN_API_KEY", ""), "Content-Type": "application/json", - "X-DIGEST": "initial-config" + "X-DIGEST": str(datetime.now()) } # Wait for APISIX Admin API to be ready @@ -62,7 +63,8 @@ data: "ai-rate-limiting": { "limit": {{ .Values.apisixInitialConfig.consumerUsageLimits.numTokens}}, "time_window": {{ .Values.apisixInitialConfig.consumerUsageLimits.timeWindowSeconds }}, - "limit_strategy": {{ .Values.apisixInitialConfig.consumerUsageLimits.limitStrategy | quote }} + "limit_strategy": {{ .Values.apisixInitialConfig.consumerUsageLimits.limitStrategy | quote }}, + "rejected_code": 429 }, } } for consumer in consumer_data diff --git a/charts/llm-stack/values.yaml b/charts/llm-stack/values.yaml index 2ebb3d46..70588a61 100644 --- a/charts/llm-stack/values.yaml +++ b/charts/llm-stack/values.yaml @@ -11,8 +11,16 @@ apisixInitialConfig: provider: scaleway - name: gemma-4-26b-a4b-it provider: scaleway + - name: glm-5.2 + provider: scaleway + - name: deepseek-v4-flash-0731 + provider: scaleway + - name: qwen3.5-397b-a17b + provider: scaleway + - name: mistral-medium-3.5-128b + provider: scaleway consumerUsageLimits: - numTokens: 10000000 + numTokens: 50000000 timeWindowSeconds: 86400 # 24h limitStrategy: total_tokens secrets: