kubeclaw/config/samples/06-agent-demo-concierge.yaml
sscoble d7d05ff316 feat: wire demo concierge to Discord for end-to-end onboarding testing (#3)
## Summary

Wires the demo concierge agent (kubeclaw-agent-demo-concierge in cust-demo) to Discord for end-to-end onboarding testing.

## Changes

### Config files added
- **02-channel-discord-demo.yaml** — Channel CR for Discord (discord-demo)
- **06-agent-demo-concierge.yaml** — Agent CR sample with Discord env vars
- **agent-pod-demo-concierge.yaml** — Working pod manifest with `DISCORD_BOT_TOKEN` from secret and `GATEWAY_ALLOW_ALL_USERS=true`

### Applied to cluster
- Secret `channel-tokens` created in `cust-demo` (with placeholder token)
- Channel `discord-demo` CR applied
- Pod recreated — now picks up `DISCORD_BOT_TOKEN` env var

## Known Issue: Missing discord.py in container image

The Hermes Discord adapter (`gateway/platforms/discord.py`) exists in the image but fails at runtime because `discord.py` is not installed. The `hermes-speckl/sme:latest` image needs `discord.py` added to its Python dependencies.

## Verification

```
kubectl logs -n cust-demo kubeclaw-agent-demo-concierge --tail=5
WARNING gateway.run: Discord: discord.py not installed
WARNING gateway.run: No adapter available for discord
```

The old "No messaging platforms enabled" warning is gone.

## What is needed next
1. Rebuild image with discord.py
2. Replace placeholder token in channel-tokens Secret
3. Fix agent_controller.go buildEnv() to pass through spec.env vars

Closes #2

Co-authored-by: Marcus (agent-cos) <cos@marcus.local>
Reviewed-on: https://os.scoble.me/forgejo/forgejo/sscoble/kubeclaw/pulls/3
2026-05-14 21:12:10 -07:00

64 lines
1.6 KiB
YAML

apiVersion: kubeclaw.scoble.me/v1alpha1
kind: Agent
metadata:
name: demo-concierge
namespace: cust-demo
labels:
customer: demo-corp
kubeclaw.scoble.me/role: concierge
workspace: demo-workspace
spec:
agentId: demo-concierge
model: deepseek-v4-pro:cloud
image: hermes-speckl/sme:latest
replicas: 1
resources:
limits:
cpu: "0.5"
memory: 512Mi
requests:
cpu: "0.25"
memory: 256Mi
channelRefs:
- discord-demo
allowedDestinations:
- stdout
- discord
env:
- name: HERMES_MODEL_PROVIDER
value: "ollama"
- name: HERMES_MODEL_BASE_URL
value: "https://api.ollama.cloud/v1"
- name: HERMES_MODEL_DEFAULT
value: "deepseek-v4-pro:cloud"
- name: HERMES_LOG_LEVEL
value: "debug"
- name: DISCORD_BOT_TOKEN
valueFrom:
secretKeyRef:
name: channel-tokens
key: discord-token
- name: GATEWAY_ALLOW_ALL_USERS
value: "true"
# Volume mounts for persona files (optional, set after personalization)
# volumes:
# - name: soul
# configMap:
# name: demo-concierge-soul
# - name: agents
# configMap:
# name: demo-concierge-agents
# - name: memory
# emptyDir:
# sizeLimit: 1Gi
# volumeMounts:
# - name: soul
# mountPath: /home/hermes/.hermes/persona/SOUL.md
# subPath: SOUL.md
# readOnly: true
# - name: agents
# mountPath: /home/hermes/.hermes/persona/AGENTS.md
# subPath: AGENTS.md
# readOnly: true
# - name: memory
# mountPath: /home/hermes/.hermes/memory