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)
|
||||
# =============================================================================
|
||||
# Deploys: AgentZero (agent UI) on RKE2 cluster
|
||||
# Ollama: edge1 Pi 5 at 10.0.57.17:11434 (qwen2.5-coder:7b, CPU)
|
||||
# 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 + nomic-embed-text)
|
||||
# Target: RKE2 bare-metal cluster, namespace: agent-zero
|
||||
# Profile: Blue Jay (21 tools, 3 prompts, 4 extensions, theme)
|
||||
#
|
||||
# Differences from LOCAL (WSL K3s):
|
||||
# - Uses Longhorn StorageClass (not local-path)
|
||||
# - Connects to edge1 Pi 5 Ollama (not workstation R9700)
|
||||
# - NO Anthropic API key (free/local models only)
|
||||
# - 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
|
||||
# - Knowledge base loaded via ConfigMap (not hostPath)
|
||||
#
|
||||
# Available Ollama models on edge1:
|
||||
# - qwen2.5-coder:7b ~4.7 GB Code generation (CPU, Q4_K_M)
|
||||
# ConfigMaps (defined in configmaps-bluejay.yaml):
|
||||
# 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
|
||||
# =============================================================================
|
||||
@@ -84,10 +88,10 @@ subjects:
|
||||
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)
|
||||
# No paid API keys — uses qwen2.5-coder:7b for everything
|
||||
# Blue Jay profile with 21 tools, 3 prompts, 4 extensions
|
||||
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
@@ -99,6 +103,7 @@ metadata:
|
||||
app: agent-zero
|
||||
annotations:
|
||||
agent-zero/deployment: "nuc"
|
||||
agent-zero/profile: "bluejay"
|
||||
agent-zero/ollama: "edge1 Pi 5 (10.0.57.17:11434)"
|
||||
spec:
|
||||
replicas: 1
|
||||
@@ -115,8 +120,6 @@ spec:
|
||||
serviceAccountName: agent-zero
|
||||
initContainers:
|
||||
# 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
|
||||
image: busybox:1.37
|
||||
command: ["sh", "-c"]
|
||||
@@ -128,6 +131,45 @@ spec:
|
||||
sleep 5
|
||||
done
|
||||
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:
|
||||
- name: agent-zero
|
||||
image: agent0ai/agent-zero:latest
|
||||
@@ -142,6 +184,12 @@ spec:
|
||||
chmod +x kubectl && mv kubectl /usr/local/bin/kubectl && \
|
||||
cp /usr/local/bin/kubectl /a0/work/kubectl
|
||||
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
|
||||
exec /exe/initialize.sh $BRANCH
|
||||
ports:
|
||||
@@ -170,7 +218,7 @@ spec:
|
||||
value: "http://10.0.57.17:11434"
|
||||
- name: A0_SET_util_model_kwargs
|
||||
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
|
||||
value: "ollama"
|
||||
- name: A0_SET_embed_model_name
|
||||
@@ -186,9 +234,9 @@ spec:
|
||||
value: "http://10.0.57.17:11434"
|
||||
- name: A0_SET_browser_model_vision
|
||||
value: "false"
|
||||
# Agent profile
|
||||
# Agent profile — Blue Jay personality, tools, and system prompt
|
||||
- name: A0_SET_agent_profile
|
||||
value: "default"
|
||||
value: "bluejay"
|
||||
# Memory settings
|
||||
- name: A0_SET_memory_memorize_enabled
|
||||
value: "true"
|
||||
@@ -201,6 +249,9 @@ spec:
|
||||
# Speech-to-text disabled (no GPU for Whisper)
|
||||
- name: A0_SET_stt_model_size
|
||||
value: "tiny"
|
||||
# Print.Web — Thermal printer service on edge2
|
||||
- name: PRINT_WEB_URL
|
||||
value: "http://10.0.57.16:5200"
|
||||
# Kubernetes
|
||||
- name: KUBERNETES_SERVICE_HOST
|
||||
value: "kubernetes.default.svc"
|
||||
@@ -246,6 +297,21 @@ spec:
|
||||
- name: knowledge
|
||||
persistentVolumeClaim:
|
||||
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
|
||||
@@ -352,6 +418,12 @@ spec:
|
||||
cidr: 10.0.57.17/32
|
||||
ports:
|
||||
- port: 11434
|
||||
# Print.Web on edge2
|
||||
- to:
|
||||
- ipBlock:
|
||||
cidr: 10.0.57.16/32
|
||||
ports:
|
||||
- port: 5200
|
||||
# K8s API
|
||||
- to:
|
||||
- ipBlock:
|
||||
|
||||
Reference in New Issue
Block a user