Enable Blue Jay profile: init container, ConfigMap volumes, tools, extensions, theme
This commit is contained in:
@@ -1,21 +1,25 @@
|
|||||||
# =============================================================================
|
# =============================================================================
|
||||||
# Agent Zero AI Stack — NUC Deployment (RKE2 Bare-Metal)
|
# Agent Zero AI Stack — NUC Deployment (RKE2 Bare-Metal)
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
# Deploys: AgentZero (agent UI) on RKE2 cluster
|
# Deploys: AgentZero (agent UI) on RKE2 cluster with Blue Jay profile
|
||||||
# Ollama: edge1 Pi 5 at 10.0.57.17:11434 (qwen2.5-coder:7b, CPU)
|
# Ollama: edge1 Pi 5 at 10.0.57.17:11434 (qwen2.5-coder:7b + nomic-embed-text)
|
||||||
# Target: RKE2 bare-metal cluster, namespace: agent-zero
|
# Target: RKE2 bare-metal cluster, namespace: agent-zero
|
||||||
|
# Profile: Blue Jay (21 tools, 3 prompts, 4 extensions, theme)
|
||||||
#
|
#
|
||||||
# Differences from LOCAL (WSL K3s):
|
# Differences from LOCAL (WSL K3s):
|
||||||
# - Uses Longhorn StorageClass (not local-path)
|
# - Uses Longhorn StorageClass (not local-path)
|
||||||
# - Connects to edge1 Pi 5 Ollama (not workstation R9700)
|
# - Connects to edge1 Pi 5 Ollama (not workstation R9700)
|
||||||
# - NO Anthropic API key (free/local models only)
|
# - NO Anthropic API key (free/local models only)
|
||||||
# - NO Piper TTS or Kiwix (edge1 handles TTS, no Wikipedia needed)
|
# - NO Piper TTS or Kiwix (edge1 handles TTS, no Wikipedia needed)
|
||||||
# - NO hostPath volumes (no access to Windows filesystem)
|
# - NO hostPath volumes — profile/tools/extensions loaded via ConfigMaps
|
||||||
# - Traefik IngressRoute for LAN access at agent-zero.iamworkin.lan
|
# - Traefik IngressRoute for LAN access at agent-zero.iamworkin.lan
|
||||||
# - Knowledge base loaded via ConfigMap (not hostPath)
|
|
||||||
#
|
#
|
||||||
# Available Ollama models on edge1:
|
# ConfigMaps (defined in configmaps-bluejay.yaml):
|
||||||
# - qwen2.5-coder:7b ~4.7 GB Code generation (CPU, Q4_K_M)
|
# bluejay-tools 21 Python tool modules (~520K)
|
||||||
|
# bluejay-profile agent.json, agent.yaml, system_prompt.md (~20K)
|
||||||
|
# bluejay-prompts 3 prompt templates (~11K)
|
||||||
|
# flowercore-extensions 5 Python extension modules (~76K)
|
||||||
|
# bluejay-theme CSS theme (~7K)
|
||||||
#
|
#
|
||||||
# Apply: KUBECONFIG=~/.kube/rke2.yaml kubectl apply -f agent-zero-nuc.yaml
|
# Apply: KUBECONFIG=~/.kube/rke2.yaml kubectl apply -f agent-zero-nuc.yaml
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
@@ -84,10 +88,10 @@ subjects:
|
|||||||
namespace: agent-zero
|
namespace: agent-zero
|
||||||
|
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
# Agent Zero — AI Agent Web UI (NUC Edition)
|
# Agent Zero — AI Agent Web UI (NUC Edition, Blue Jay Profile)
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
# Connects to edge1 Pi 5 Ollama (free, local models only)
|
# Connects to edge1 Pi 5 Ollama (free, local models only)
|
||||||
# No paid API keys — uses qwen2.5-coder:7b for everything
|
# Blue Jay profile with 21 tools, 3 prompts, 4 extensions
|
||||||
|
|
||||||
---
|
---
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
@@ -99,6 +103,7 @@ metadata:
|
|||||||
app: agent-zero
|
app: agent-zero
|
||||||
annotations:
|
annotations:
|
||||||
agent-zero/deployment: "nuc"
|
agent-zero/deployment: "nuc"
|
||||||
|
agent-zero/profile: "bluejay"
|
||||||
agent-zero/ollama: "edge1 Pi 5 (10.0.57.17:11434)"
|
agent-zero/ollama: "edge1 Pi 5 (10.0.57.17:11434)"
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: 1
|
||||||
@@ -115,8 +120,6 @@ spec:
|
|||||||
serviceAccountName: agent-zero
|
serviceAccountName: agent-zero
|
||||||
initContainers:
|
initContainers:
|
||||||
# Wait for edge1 Pi 5 Ollama to be reachable before starting Agent Zero.
|
# Wait for edge1 Pi 5 Ollama to be reachable before starting Agent Zero.
|
||||||
# Without this, the FAISS memory system crashes on embed_query()
|
|
||||||
# and Agent Zero enters a broken state on every message.
|
|
||||||
- name: wait-for-ollama
|
- name: wait-for-ollama
|
||||||
image: busybox:1.37
|
image: busybox:1.37
|
||||||
command: ["sh", "-c"]
|
command: ["sh", "-c"]
|
||||||
@@ -128,6 +131,45 @@ spec:
|
|||||||
sleep 5
|
sleep 5
|
||||||
done
|
done
|
||||||
echo "edge1 Ollama is reachable!"
|
echo "edge1 Ollama is reachable!"
|
||||||
|
# Assemble the Blue Jay profile directory structure from ConfigMaps.
|
||||||
|
# ConfigMaps can't create nested dirs, so we copy into the workspace PVC.
|
||||||
|
- name: setup-bluejay
|
||||||
|
image: busybox:1.37
|
||||||
|
command: ["sh", "-c"]
|
||||||
|
args:
|
||||||
|
- |
|
||||||
|
echo "Setting up Blue Jay profile..."
|
||||||
|
# Profile root files
|
||||||
|
mkdir -p /a0/work/.bluejay/agents/bluejay/tools
|
||||||
|
mkdir -p /a0/work/.bluejay/agents/bluejay/prompts
|
||||||
|
cp /tmp/bluejay-profile/* /a0/work/.bluejay/agents/bluejay/
|
||||||
|
# Tools
|
||||||
|
cp /tmp/bluejay-tools/* /a0/work/.bluejay/agents/bluejay/tools/
|
||||||
|
# Prompts
|
||||||
|
cp /tmp/bluejay-prompts/* /a0/work/.bluejay/agents/bluejay/prompts/
|
||||||
|
# Extensions
|
||||||
|
mkdir -p /a0/work/.bluejay/extensions/flowercore
|
||||||
|
cp /tmp/flowercore-extensions/* /a0/work/.bluejay/extensions/flowercore/
|
||||||
|
# Theme
|
||||||
|
mkdir -p /a0/work/.bluejay/theme
|
||||||
|
cp /tmp/bluejay-theme/* /a0/work/.bluejay/theme/
|
||||||
|
echo "Blue Jay profile ready:"
|
||||||
|
echo " Tools: $(ls /a0/work/.bluejay/agents/bluejay/tools/*.py | wc -l)"
|
||||||
|
echo " Prompts: $(ls /a0/work/.bluejay/agents/bluejay/prompts/*.md | wc -l)"
|
||||||
|
echo " Extensions: $(ls /a0/work/.bluejay/extensions/flowercore/*.py | wc -l)"
|
||||||
|
volumeMounts:
|
||||||
|
- name: workspace
|
||||||
|
mountPath: /a0/work
|
||||||
|
- name: bluejay-tools
|
||||||
|
mountPath: /tmp/bluejay-tools
|
||||||
|
- name: bluejay-profile
|
||||||
|
mountPath: /tmp/bluejay-profile
|
||||||
|
- name: bluejay-prompts
|
||||||
|
mountPath: /tmp/bluejay-prompts
|
||||||
|
- name: flowercore-extensions
|
||||||
|
mountPath: /tmp/flowercore-extensions
|
||||||
|
- name: bluejay-theme
|
||||||
|
mountPath: /tmp/bluejay-theme
|
||||||
containers:
|
containers:
|
||||||
- name: agent-zero
|
- name: agent-zero
|
||||||
image: agent0ai/agent-zero:latest
|
image: agent0ai/agent-zero:latest
|
||||||
@@ -142,6 +184,12 @@ spec:
|
|||||||
chmod +x kubectl && mv kubectl /usr/local/bin/kubectl && \
|
chmod +x kubectl && mv kubectl /usr/local/bin/kubectl && \
|
||||||
cp /usr/local/bin/kubectl /a0/work/kubectl
|
cp /usr/local/bin/kubectl /a0/work/kubectl
|
||||||
fi
|
fi
|
||||||
|
# Link Blue Jay profile from workspace into Agent Zero's expected paths
|
||||||
|
ln -sfn /a0/work/.bluejay/agents/bluejay /a0/agents/bluejay
|
||||||
|
ln -sfn /a0/work/.bluejay/extensions/flowercore /a0/extensions/flowercore
|
||||||
|
# Theme CSS into webui static dir
|
||||||
|
mkdir -p /a0/webui/static/css/custom
|
||||||
|
cp /a0/work/.bluejay/theme/* /a0/webui/static/css/custom/ 2>/dev/null || true
|
||||||
# Run the original entrypoint
|
# Run the original entrypoint
|
||||||
exec /exe/initialize.sh $BRANCH
|
exec /exe/initialize.sh $BRANCH
|
||||||
ports:
|
ports:
|
||||||
@@ -170,7 +218,7 @@ spec:
|
|||||||
value: "http://10.0.57.17:11434"
|
value: "http://10.0.57.17:11434"
|
||||||
- name: A0_SET_util_model_kwargs
|
- name: A0_SET_util_model_kwargs
|
||||||
value: '{"num_ctx": 8192}'
|
value: '{"num_ctx": 8192}'
|
||||||
# Embedding model — nomic on edge1 (if installed, fallback to none)
|
# Embedding model — nomic on edge1
|
||||||
- name: A0_SET_embed_model_provider
|
- name: A0_SET_embed_model_provider
|
||||||
value: "ollama"
|
value: "ollama"
|
||||||
- name: A0_SET_embed_model_name
|
- name: A0_SET_embed_model_name
|
||||||
@@ -186,9 +234,9 @@ spec:
|
|||||||
value: "http://10.0.57.17:11434"
|
value: "http://10.0.57.17:11434"
|
||||||
- name: A0_SET_browser_model_vision
|
- name: A0_SET_browser_model_vision
|
||||||
value: "false"
|
value: "false"
|
||||||
# Agent profile
|
# Agent profile — Blue Jay personality, tools, and system prompt
|
||||||
- name: A0_SET_agent_profile
|
- name: A0_SET_agent_profile
|
||||||
value: "default"
|
value: "bluejay"
|
||||||
# Memory settings
|
# Memory settings
|
||||||
- name: A0_SET_memory_memorize_enabled
|
- name: A0_SET_memory_memorize_enabled
|
||||||
value: "true"
|
value: "true"
|
||||||
@@ -201,6 +249,9 @@ spec:
|
|||||||
# Speech-to-text disabled (no GPU for Whisper)
|
# Speech-to-text disabled (no GPU for Whisper)
|
||||||
- name: A0_SET_stt_model_size
|
- name: A0_SET_stt_model_size
|
||||||
value: "tiny"
|
value: "tiny"
|
||||||
|
# Print.Web — Thermal printer service on edge2
|
||||||
|
- name: PRINT_WEB_URL
|
||||||
|
value: "http://10.0.57.16:5200"
|
||||||
# Kubernetes
|
# Kubernetes
|
||||||
- name: KUBERNETES_SERVICE_HOST
|
- name: KUBERNETES_SERVICE_HOST
|
||||||
value: "kubernetes.default.svc"
|
value: "kubernetes.default.svc"
|
||||||
@@ -246,6 +297,21 @@ spec:
|
|||||||
- name: knowledge
|
- name: knowledge
|
||||||
persistentVolumeClaim:
|
persistentVolumeClaim:
|
||||||
claimName: agent-zero-knowledge
|
claimName: agent-zero-knowledge
|
||||||
|
- name: bluejay-tools
|
||||||
|
configMap:
|
||||||
|
name: bluejay-tools
|
||||||
|
- name: bluejay-profile
|
||||||
|
configMap:
|
||||||
|
name: bluejay-profile
|
||||||
|
- name: bluejay-prompts
|
||||||
|
configMap:
|
||||||
|
name: bluejay-prompts
|
||||||
|
- name: flowercore-extensions
|
||||||
|
configMap:
|
||||||
|
name: flowercore-extensions
|
||||||
|
- name: bluejay-theme
|
||||||
|
configMap:
|
||||||
|
name: bluejay-theme
|
||||||
|
|
||||||
---
|
---
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
@@ -352,6 +418,12 @@ spec:
|
|||||||
cidr: 10.0.57.17/32
|
cidr: 10.0.57.17/32
|
||||||
ports:
|
ports:
|
||||||
- port: 11434
|
- port: 11434
|
||||||
|
# Print.Web on edge2
|
||||||
|
- to:
|
||||||
|
- ipBlock:
|
||||||
|
cidr: 10.0.57.16/32
|
||||||
|
ports:
|
||||||
|
- port: 5200
|
||||||
# K8s API
|
# K8s API
|
||||||
- to:
|
- to:
|
||||||
- ipBlock:
|
- ipBlock:
|
||||||
|
|||||||
Reference in New Issue
Block a user