Enable Blue Jay profile: init container, ConfigMap volumes, tools, extensions, theme

This commit is contained in:
Claude Code
2026-04-08 18:07:13 +00:00
parent 36e7369609
commit d16f72f089

View File

@@ -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: