feat(openclaw): modularize scripts, implement crons-as-code and EaC governance
This commit is contained in:
@@ -60,8 +60,24 @@ To perform modifications or rotate api keys:
|
||||
./k8s/openclaw/setup-garmin-cron.sh # Nightly Garmin Connect sync (Daily 03:30)
|
||||
./k8s/openclaw/setup-compaction-cron.sh # Nightly multi-agent session compaction (Daily 04:45)
|
||||
./k8s/openclaw/setup-itguy-cron.sh # Weekly health audit (Sun 03:00)
|
||||
# Or run declarative reconciler:
|
||||
python3 k8s/openclaw/scripts/sync_crons.py
|
||||
```
|
||||
|
||||
### 🛡️ Everything-as-Code (EaC) Governance for New Crons, Skills & Binaries (ADR 0003)
|
||||
|
||||
To prevent PVC snowflake drift, **every** new automation, skill, CLI binary, or Python dependency added to OpenClaw MUST be persisted as code:
|
||||
|
||||
1. **New Cron Jobs (`Crons-as-Code`)**:
|
||||
- **System / Recurring Automations**: Never leave a recurring cron job exclusively inside the pod's SQLite database (`openclaw cron add`). Every permanent automation MUST be codified in `k8s/openclaw/crons.yaml` (or the declarative cron sync scripts) and committed to `infrapuzzle`.
|
||||
- **Dynamic / User-Created Reminders**: Conversational or temporary crons created by agents at runtime must be exported to `knowledge-wiki/operations/crons-backup.json` during nightly backup so they survive PVC loss.
|
||||
2. **New Skills (`Skills-as-Code`)**:
|
||||
- Never leave newly created or agent-authored skills only in `/home/node/.openclaw/skills/`, `workspace*/skills/`, or `skill-workshop/` on the PVC.
|
||||
- All custom skills MUST be committed and pushed to the **`mop-skills`** repository (`git.moritzgraf.de/moritz/mop-skills`) so they are version-controlled and synced cleanly via the `git-sync` sidecar.
|
||||
3. **New CLI Binaries, Packages & Patches (`Dependencies-as-Code`)**:
|
||||
- Never manually drop binaries into `/home/node/.openclaw/bin/` or run ad-hoc `uv pip install` / `npm install -g` on the PVC without codifying them.
|
||||
- Every new binary (e.g. `ffmpeg`, `kubectl`, `jq`, `openhue`, `sonos`), Python package in `mcp-venv`, or runtime patch MUST be added to the declarative bootstrap script (`k8s/openclaw/scripts/bootstrap-deps.sh` / `configmap-scripts.yaml`) so a fresh PVC rebuild has 100% tool parity.
|
||||
|
||||
---
|
||||
|
||||
### 4. 🗂️ The Three Core Repositories Architecture & Weekly Self-Audit
|
||||
|
||||
Reference in New Issue
Block a user