Hey everyone! 👋 I've been working on a small project called kubememo that aims to add context and notes directly to Kubernetes resources. I work for a managed service provider and often find it tough to locate the right documentation during investigations. Sometimes the necessary context is just not available when you need it. The essence of kubememo is to provide a lightweight memory layer for Kubernetes clusters to alleviate this issue.
With kubememo, you can:
- Attach notes or context to deployments, services, and other resources
- Leave breadcrumbs for future reference for yourself or your team
- Document decisions, key points, and debugging notes right where they matter
- Make clusters more understandable without digging through irrelevant documentation or chats.
This uses Custom Resource Definitions (CRDs) where notes are linked via annotations but are stored separately to avoid clutter. It's not about replacing documentation but enhancing our understanding right next to the resources related to it.
Before I dive deeper into development, I'd love to hear your thoughts:
- Would you find this tool useful?
- Does it address a genuine problem you face?
- How do you keep track of the context for your resources?
- Is there anything I might be missing or could improve?
Let me know if you'd like details or if you have any thoughts!
5 Answers
You should really consider storing these notes off-cluster. If your cluster fails, all that knowledge goes with it. Maybe implement a controller that syncs your notes to a backup or a Git repository.
For those of us who deploy using GitOps, having source code comments really helps us understand everything better! This sounds like it might not add much unless you're in a more chaotic environment.
That's a fair point! I find this approach beneficial for environments where you might be switched across different customers' setups, where context is key during high-pressure situations.
You really should consider having your documentation in Helm charts or using GitOps instead. Treating what's in the cluster as temporary and keeping the source in Git is a better approach. If you attach notes to resources, and they get deleted, all your comments would vanish too.
I totally agree, but I've seen clients not using GitOps yet. I've thought about having these notes integrated into GitOps, maybe with an export feature, but I’m not sure how practical that would be.
What sets this apart from using native labels? They can already contain some info, right?
Labels definitely help in organizing resources, but they don’t capture context well. For instance, a label might say "env=prod," while your memo could explain why a particular setup was chosen, giving much more clarity.
I feel like using annotations directly could work for this. Annotations can support multi-line content and are already meant for storing metadata. Why not just use them?
That's a valid point, but the idea behind kubememo is to provide a richer human context. Annotations are great, but they don't hold comprehensive explanations or history the way I want to capture things.

Great suggestion! I’m planning on having a distinction between runtime and durable notes, and I’m considering syncing durable memos to a safer place like Git or Confluence for long-term storage.