Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,24 @@ jobs:
file: score-k8s
version: latest
token: ${{ secrets.GITHUB_TOKEN }}
- name: set up docker-model-plugin (for llm-model)
run: |
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Update and Install
sudo apt-get update
sudo apt-get install -y docker-model-plugin
- name: setup-kind-cluster
run: |
.scripts/setup-kind-cluster.sh
Expand Down
19 changes: 16 additions & 3 deletions samples/aks-store-demo/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,14 @@ help:
.score-compose/state.yaml:
score-compose init \
--no-sample \
--provisioners https://raw.githubusercontent.com/score-spec/community-provisioners/refs/heads/main/service/score-compose/10-service.provisioners.yaml
--provisioners https://raw.githubusercontent.com/score-spec/community-provisioners/refs/heads/main/service/score-compose/10-service.provisioners.yaml \
--provisioners https://raw.githubusercontent.com/score-spec/community-provisioners/refs/heads/main/llm-model/score-compose/10-dmr-llm-model.provisioners.yaml

compose.yaml: order/score.yaml product/score.yaml store-front/score.yaml store-admin/score.yaml makeline/score.yaml .score-compose/state.yaml Makefile
compose.yaml: order/score.yaml product/score-ai.yaml store-front/score.yaml store-admin/score.yaml makeline/score.yaml .score-compose/state.yaml Makefile
score-compose generate \
order/score.yaml \
product/score.yaml \
ai/score.yaml \
product/score-ai.yaml \
store-front/score.yaml \
store-admin/score.yaml \
makeline/score.yaml
Expand All @@ -34,6 +36,7 @@ compose-up: compose.yaml
.PHONY: compose-test
compose-test: compose-up
curl $$(score-compose resources get-outputs 'dns.default#store-front.dns' --format '{{ .host }}:8080')
curl $$(score-compose resources get-outputs 'dns.default#store-admin.dns' --format '{{ .host }}:8080')

## Delete the containers running via compose down.
.PHONY: compose-down
Expand Down Expand Up @@ -65,6 +68,15 @@ k8s-up: manifests.yaml
kubectl apply \
-f manifests.yaml \
-n ${NAMESPACE}
kubectl wait deployments/store-admin \
-n ${NAMESPACE} \
--for condition=Available \
--timeout=90s
kubectl wait pods \
-n ${NAMESPACE} \
-l app.kubernetes.io/name=store-admin \
--for condition=Ready \
--timeout=90s
kubectl wait deployments/store-front \
-n ${NAMESPACE} \
--for condition=Available \
Expand All @@ -81,6 +93,7 @@ k8s-up: manifests.yaml
.PHONY: k8s-test
k8s-test: k8s-up
curl $$(score-k8s resources get-outputs dns.default#store-front.dns --format '{{ .host }}')
curl $$(score-k8s resources get-outputs dns.default#store-admin.dns --format '{{ .host }}')

## Delete the deployment of the local container in Kubernetes.
.PHONY: k8s-down
Expand Down
36 changes: 36 additions & 0 deletions samples/aks-store-demo/ai/score.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
apiVersion: score.dev/v1b1
metadata:
name: ai-service
annotations:
tags: "python,backend,ai,llm-model"
containers:
ai-service:
image: ghcr.io/azure-samples/aks-store-demo/ai-service:2.1.0
variables:
USE_LOCAL_LLM: "true"
LOCAL_LLM_ENDPOINT: "${resources.llm-model.url}"
livenessProbe:
httpGet:
path: /health
port: 5001
readinessProbe:
httpGet:
path: /health
port: 5001
resources:
limits:
memory: "128Mi"
cpu: "50m"
requests:
memory: "50Mi"
cpu: "20m"
service:
ports:
http:
port: 5001
targetPort: 5001
resources:
llm-model:
type: llm-model
params:
model: ai/smollm2:135M-Q2_K #ai/gpt-oss:latest
33 changes: 33 additions & 0 deletions samples/aks-store-demo/product/score-ai.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
apiVersion: score.dev/v1b1
metadata:
name: product-service
annotations:
tags: "rust,backend"
containers:
product-service:
image: ghcr.io/azure-samples/aks-store-demo/product-service:2.1.0
variables:
AI_SERVICE_URL: "http://${resources.ai-service.name}:5001"
livenessProbe:
httpGet:
path: /health
port: 3002
readinessProbe:
httpGet:
path: /health
port: 3002
resources:
limits:
memory: "10Mi"
cpu: "2m"
requests:
memory: "1Mi"
cpu: "1m"
service:
ports:
http:
port: 3002
targetPort: 3002
resources:
ai-service:
type: service
7 changes: 5 additions & 2 deletions samples/aks-store-demo/score-compose.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
```bash
score-compose init --no-sample \
--provisioners https://raw.githubusercontent.com/score-spec/community-provisioners/refs/heads/main/service/score-compose/10-service.provisioners.yaml
--provisioners https://raw.githubusercontent.com/score-spec/community-provisioners/refs/heads/main/service/score-compose/10-service.provisioners.yaml \
--provisioners https://raw.githubusercontent.com/score-spec/community-provisioners/refs/heads/main/llm-model/score-compose/10-dmr-llm-model.provisioners.yaml
```

```bash
score-compose generate \
order/score.yaml \
product/score.yaml \
ai/score.yaml \
product-ai/score.yaml \
store-front/score.yaml \
store-admin/score.yaml \
makeline/score.yaml
Expand All @@ -18,4 +20,5 @@ docker compose up --build -d --remove-orphans

```bash
curl $(score-compose resources get-outputs dns.default#store-front.dns --format '{{ .host }}:8080')
curl $(score-compose resources get-outputs dns.default#store-admin.dns --format '{{ .host }}:8080')
```
1 change: 1 addition & 0 deletions samples/aks-store-demo/score-k8s.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,5 @@ kubectl apply -f manifests.yaml

```bash
curl $(score-k8s resources get-outputs dns.default#store-front.dns --format '{{ .host }}:80')
curl $(score-k8s resources get-outputs dns.default#store-admin.dns --format '{{ .host }}:80')
```