I've completed the initial research and created a comprehensive plan for the Beszel Kubernetes charm. Here's what I've done:
Summary
Charm Type: Kubernetes charm for the Beszel Hub component
Key Features Planned:
- Deploy Beszel Hub (server monitoring dashboard) using OCI image henrygd/beszel
- Storage integration for PocketBase database (/beszel_data)
- Ingress relation for external access
- S3 backup integration (optional)
- Actions for getting admin URL, creating agent tokens, and managing backups
- Configuration options for authentication, logging, and S3 backups
Implementation Approach: Following the "testing sandwich" pattern: 1. Write integration tests first 2. Implement functionality 3. Add unit tests 4. Complete documentation
The full plan is documented in PLAN.md with details on:
- Configuration options (9 config keys)
- Actions (4 actions)
- Storage requirements
- Relations (ingress, S3)
- Scaling considerations
- Security approach
- Testing strategy
Open Questions
Before I proceed, I have a few questions about the plan:
-
Scope: Is focusing on the Hub component correct? The Agent component would typically be deployed separately on the systems being monitored.
-
Features: Are there any additional features or integrations you'd like included that I haven't covered?
-
Priority: Should I implement all phases, or focus on MVP first (basic deployment + storage + ingress)?
-
Authentication: Do you need OAuth/OIDC integration in the first version, or can that be added later?
Please review the plan in PLAN.md and let me know if you approve, or if there are any changes you'd like before I start implementation!