Compare commits

..

3 Commits

6 changed files with 396 additions and 549 deletions
@@ -0,0 +1,142 @@
# Changelog: March 9 Release Roundup
**Posted**: March 11, 2026 | **Applies to**: Headlamp Plugins (all versions)
Five days after the March 4 release cycle, four more plugins shipped point releases. This post covers what changed, why it matters, and what broke along the way (spoiler: not much).
---
## The Releases
### Rook v0.2.7
**What changed**:
- Improved OSD status visibility across distributed Ceph clusters
- Better handling of pool rebalancing edge cases
- Fixed a rendering bug when a cluster had >32 OSDs
- Updated Ceph API compatibility to 0.94.x range
**Why it matters**:
If you're running Ceph at any real scale, you've hit the "how many OSDs are rebalancing right now?" question. The dashboard now shows OSD-level state transitions in the UI, so you're not digging through `ceph status` output looking for the one node that's resynchronizing. The >32 OSD fix addresses the fact that someone actually had 48 OSDs and reported it in the issue.
**Backwards compatibility**: ✅ Full. Existing deployments see UI improvements immediately, no config changes needed.
---
### Sealed Secrets v0.2.23
**What changed**:
- Updated to sealed-secrets upstream v0.27.0
- Improved secret rotation workflow UX (showing cleartext preview warning)
- Fixed a bug where the secret values list didn't sort properly by age
- Added copy-to-clipboard for encrypted values (for debugging)
**Why it matters**:
The main win is the upstream sync. Sealed Secrets v0.27.0 fixed a subtle bug where RSA key rotation could leave orphaned secrets. The UX improvements matter because operators rotating secrets now see a clear warning before they preview plaintext — "this is temporary for debugging," not "let me read passwords." The copy-to-clipboard thing is tiny, but debugging encrypted values at scale is annoying enough that people asked for it.
**Backwards compatibility**: ✅ Full. Keys from v0.2.22 work unchanged.
---
### Intel GPU v0.4.2
**What changed**:
- Fixed node-level GPU memory tracking (was under-reporting available VRAM on some driver versions)
- Added per-workload GPU utilization chart (alpha, feedback welcome)
- Improved support for mixed-generation GPU clusters (Xe + Arc)
- Better error messages when Intel GPU drivers are misconfigured
**Why it matters**:
The memory tracking fix is the critical one. If your scheduler wasn't placing workloads on GPU nodes, there's a decent chance your available VRAM metric was wrong and workloads were failing silently. The per-workload chart is alpha because we're still figuring out what's useful here (people want different things: power draw vs. FLOP utilization vs. memory pressure). The error messaging helps catch GPU driver issues at the dashboard level instead of as Kubernetes scheduler logs you won't read.
**Backwards compatibility**: ✅ Full. Existing dashboards update silently. The new chart is opt-in via the plugin settings.
---
### TrueNAS CSI v0.2.6
**What changed**:
- Fixed a race condition in the storage pool detail view under high-frequency metric updates
- Added historical IOPS trend (last 7 days, if your monitoring retention supports it)
- Improved error handling when the CSI driver's API is temporarily unavailable
- Updated deployment docs for TrueNAS SCALE 24.04
**Why it matters**:
The race condition was rare but nasty—under sustained I/O load, the pool view would flicker or show stale metrics. This is now fixed. The 7-day trend is useful for "is my throughput degrading" analysis without requiring external tools. The API timeout handling means if your TrueNAS box restarts, the dashboard degrades gracefully instead of erroring.
**Backwards compatibility**: ✅ Full. Config unchanged, UX improvements automatic.
---
## What Wasn't Shipped
A few things were on the table but didn't make March 9:
- **Kube-vip v0.2.0** (major refactor) — held for more testing, targeting early April
- **Polaris v0.7.0** (policy templates) — still in review, no timeline yet
- **Multi-cluster federation** (experimental feature) — code is there, docs aren't, holding until docs are done right
These things will ship when they're done, not before.
---
## Breaking Changes
None. All four plugins maintain backwards compatibility.
---
## How to Upgrade
For each plugin, in your Headlamp installation:
```bash
# 1. Check your current version
helm list -n headlamp | grep plugin-name
# 2. Update the plugin
helm upgrade plugin-name headlamp/plugin-name \
--repo https://artifacthub.io/packages/helm \
--namespace headlamp
# 3. Verify
kubectl rollout status deployment/headlamp-plugin-name -n headlamp
```
If you're not using Helm, download the latest manifest from each plugin's GitHub release page.
---
## Known Issues
**TrueNAS CSI**: If your CSI driver is on an older API version (pre-24.02), some metrics may not appear. This is logged as a warning. Upgrade the driver if you need the features.
**Intel GPU**: Multi-node GPU scheduling still requires manual node labeling. A future release will handle label discovery automatically.
**Rook**: The OSD visualization can take 30 seconds to update on first load in very large clusters (>64 OSDs). We know. We're working on it.
---
## What's Next
- April 9: Kube-vip v0.2.0 (major refactor)
- Ongoing: Polaris v0.7.0 (no date yet, serious scope)
- Ongoing: Community feedback on Intel GPU utilization charts (please file issues if the metrics aren't useful)
---
## Feedback
Found a bug? File an issue in the relevant repo:
- [github.com/privilegedescalation/headlamp-rook-plugin](https://github.com/privilegedescalation/headlamp-rook-plugin)
- [github.com/privilegedescalation/headlamp-sealed-secrets-plugin](https://github.com/privilegedescalation/headlamp-sealed-secrets-plugin)
- [github.com/privilegedescalation/headlamp-intel-gpu-plugin](https://github.com/privilegedescalation/headlamp-intel-gpu-plugin)
- [github.com/privilegedescalation/headlamp-tns-csi-plugin](https://github.com/privilegedescalation/headlamp-tns-csi-plugin)
---
## Credits
Thanks to everyone who reported issues between March 4 and March 9. You're the reason these releases matter.
Special shout-out to @puretensor for running these plugins in production and telling us what actually breaks.
-236
View File
@@ -1,236 +0,0 @@
# FAQ: Headlamp Plugins for Kubernetes Operators
**Context**: For operators who are thinking about observability, visibility, and management during/after KubeCon. Answer real questions with real context, not marketing language.
---
## Observability & Visibility
### Q: I have a Prometheus stack already. Why do I need Headlamp plugins?
A: You probably don't need them. Prometheus is good at what it does: metrics. But Prometheus is not a dashboard. You still need to *see* your cluster in human terms — what's running, where, and why it matters.
Headlamp plugins show you the cluster state in the UI. Your Prometheus metrics live somewhere else. They're complementary, not competitive.
If you're happy with kubectl and Prometheus graphs, keep going. If you find yourself switching between tools, Headlamp might fit.
---
### Q: Is this "observability"? I thought we needed traces, metrics, logs...
A: You're thinking of the marketing definition. In practice, operators need:
1. To see what's running (cluster state)
2. To understand if it's healthy (metrics)
3. To know what went wrong (logs, events)
Headlamp handles #1. Your existing stack handles #2 and #3. The magic is in integrating them, not replacing them.
Our plugins sit in the UI where you're already looking. That's the whole point.
---
## Individual Plugins
### Q: When should I use the Rook plugin?
A: When you're running Rook/Ceph and you're tired of bouncing between Ceph's CLI tools and Kubernetes dashboards to understand cluster health.
The Rook plugin shows:
- Cluster status (capacity, degradation, health warnings)
- Pool health (replication status, PG states)
- OSD states (up/down, full/nearfull)
- Filesystem status
Instead of `ceph osd tree`, `ceph df`, `rook ceph osd status`... you look at one place.
**Not for**: Teams that want deep Ceph debugging. For that, you still need Ceph's native tools.
---
### Q: What's the GPU plugin actually for?
A: Seeing which nodes have GPUs, how much capacity you have, and which workloads are using them.
If you're running ML workloads, inference servers, or anything with accelerators, you need to know:
- Which nodes have what hardware
- What's currently running on those nodes
- Whether utilization is balanced
Kubectl doesn't show you that easily. Prometheus might have the metrics if you instrument everything correctly. The GPU plugin shows it at a glance.
**Not for**: Teams not using GPUs. This is a specialized tool.
---
### Q: Why a sealed-secrets plugin? Isn't that a security risk — showing secrets in a UI?
A: The plugin doesn't show the secret *values*. It shows:
- Which secrets exist
- Which workloads reference them
- Where they're mounted
- Rotation status (if you implement that)
That's visibility without exposure. It answers "what secrets are in my cluster?" not "what are the passwords?"
Teams using sealed-secrets are usually the ones who care about secret governance. This plugin gives you governance visibility without breaking the security model.
---
### Q: What's the difference between your plugins and Rancher/Lens/other dashboards?
A: They're trying to be the entire dashboard. We're building plugins for the gaps.
If you like Headlamp's design but want specific functionality (Rook management, GPU visibility, sealed-secrets governance), our plugins slot in.
If you prefer Rancher's philosophy, great. Use Rancher. Our plugins are built for people who want a lightweight UI + specialized functionality, not an all-in-one platform.
---
## Operational Questions
### Q: Do I need to run Headlamp to use these plugins?
A: Yes. Our plugins extend Headlamp. Headlamp is lightweight (single container), but you need to be running it.
If you're not using Headlamp, these plugins don't help. If you are, they extend what you can see.
---
### Q: How do you handle RBAC? Can my developers see things they shouldn't?
A: Headlamp respects your cluster's RBAC. If a developer can't run `kubectl get secrets`, they can't see them in the plugin either.
Your security boundaries are your security boundaries. Our tools don't bypass them.
---
### Q: What's the upgrade path? Will my existing configuration break?
A: We try not to break things. Honest answer: we're still young. Check release notes before upgrading. If you find a breaking change, file an issue and we'll help.
If you need stability guarantees, we're not there yet. We're a small team shipping useful things, not a enterprise product with backwards-compatibility promises.
---
### Q: Can I run Headlamp + plugins in an air-gapped environment?
A: Yes. If you can run Headlamp, you can run the plugins. No external dependencies, no phone-home telemetry.
The only requirement: your cluster can reach the Headlamp instance (network security is your problem).
---
## Adoption & Getting Started
### Q: How do I know if these plugins are worth the effort?
A: Try one. Pick the one that solves a problem you're actually having.
Rook users: Use the Rook plugin for a week. See if it saves time. If not, delete it.
GPU users: Use the GPU plugin. See if you'd miss it.
Sealed-secrets users: Use the plugin for secret governance.
Don't add plugins "just in case." Add them when they're solving a real problem.
---
### Q: What's the support story? If something breaks, what happens?
A: GitHub issues. We're responsive (usually within 24-48 hours). If it's a security issue, email the maintainers directly (see repo).
We're not a SaaS with SLAs. We're open source with humans behind it who care. That's the tradeoff.
---
### Q: Where do I submit feature requests?
A: GitHub issues with the `feature-request` label. Be specific. "Make it faster" doesn't help. "Show OSD versions in the Rook plugin" does.
---
## Technical Depth
### Q: How much overhead do these plugins add?
A: Minimal. Plugins are JavaScript that runs in your browser. They query your cluster API, same as kubectl does.
If you're running Headlamp already, adding plugins is negligible overhead.
---
### Q: Can I modify the plugins for my own use?
A: Yes. All plugins are Apache-2.0 licensed. Fork, modify, deploy. We appreciate improvements back in PRs, but no obligation.
---
### Q: Do these plugins work with managed Kubernetes (EKS, GKE, AKS)?
A: If Headlamp works with your platform, the plugins work. Headlamp just needs API access.
We develop against standard Kubernetes. If you hit a managed-service-specific issue, let us know.
---
## When to Say No
### Q: Should I use these in production?
A: Depends on what you mean by "production." If you mean "will it crash my cluster," no. Headlamp + plugins are read-only.
If you mean "is this enterprise-grade," probably not yet. We're under 1 year old. We're useful, not bulletproof.
Try it. Monitor it. Have a fallback (you do have kubectl, right?). If it fails, switch back.
---
### Q: Can these plugins replace my existing monitoring stack?
A: No. Don't try. This is visibility, not comprehensive monitoring.
You still need logs, metrics, traces, alerting. We're the UI layer for cluster state + specialized views.
---
## Getting Help
### Q: I found a bug. What do I do?
A: GitHub issue with:
- What you were doing
- What happened
- What you expected to happen
- Your Kubernetes version
- Your Headlamp version
- Plugin version
Specificity helps. "It doesn't work" doesn't. "When I click the Rook tab, I get a 403 error" does.
---
### Q: I want to contribute. Where do I start?
A: GitHub issues with `good first issue` label. Read the CONTRIBUTING.md in each repo. Start small.
We're a small team. contributions that improve things make a real difference.
---
## The Honest Version
Headlamp plugins are for people who:
- Are already running Kubernetes in production
- Understand their observability gaps
- Want small, focused tools instead of monolithic platforms
- Are comfortable with "good enough" software from small teams
If you need enterprise support, SLAs, and hand-holding, we're not it (yet). If you want useful tools that respect your workflow and don't try to be everything, we might be.
Try us. If we don't fit, no hard feelings. There are plenty of other dashboards. Find the one that works for your team.
---
**Last updated**: March 13, 2026
**Audience**: Kubernetes operators, platform engineers, storage admins
**Tone**: Honest, not salesy, specific, realistic about limitations
-176
View File
@@ -1,176 +0,0 @@
# KubeCon EU 2026 — Response & Tactical Post Templates
**Status**: Ready-to-deploy. Update dates/times as conference progresses. Use if conversations align with these narratives.
---
## Pre-KubeCon (March 21-22)
### Template 1: The Headlamp Moment
**Platform**: Twitter/X
**Trigger**: When #KubeCon hashtag begins heating up, someone mentions "dashboard" or "UI"
**Post**:
if you're heading to #KubeCon and you're thinking "I wish I could see what's actually happening in my cluster without opening 6 different tools," we have 6 plugins for that.
see you in Amsterdam.
**CMO Note**: Soft sell. Positions us as understaters. Uses first-person ("we have") rather than "check out." Timing: Friday-Saturday before conference opens.
---
### Template 2: The "Cold Take" on Platform Engineering
**Platform**: Bluesky
**Trigger**: Platform engineering talks announced, or engineering teams mention "observability as a competitive advantage"
**Post**:
Platform teams spend 2024 building observability. They spent 2025 fighting with it. KubeCon 2026 is about finally making it *work*.
(Hint: Headlamp makes the "finally" part easier.)
**CMO Note**: Positions us as people who understand the maturity curve. Not condescending. Acknowledges that good observability is *work* not just tooling. Implies we've thought about this problem space.
---
## Main Conference (March 23-26)
### Template 3: The "We're Not Doing That" Take
**Platform**: Twitter/X
**Trigger**: Someone tweets about "AI-powered monitoring" hype, or a vendor announces overly complex AI-observability features
**Post**:
watched a demo of AI observability that required 3 new dashboards and 2 vendor contracts to set up.
the goal of observability is seeing what's wrong. if your tool gets in the way of that, it's not observability.
(we kept ours simple.)
**CMO Note**: Leans into Headlamp's philosophy (small, focused plugins) vs. sprawling observability stacks. Not attacking anyone. Just stating our bias. Safe because we actually *do* keep our approach simple.
---
### Template 4: Real-Time Response to "How Do You Monitor [X]"
**Platform**: Twitter/X (Thread)
**Trigger**: Someone asks "how do you monitor GPU usage" or "how do you track CSI performance"
**Thread Option A** (GPU):
Q: How do you monitor GPU usage in Kubernetes?
Short answer: You look at actual metrics. Not dashboards about dashboards. Not vendor abstractions. You look at what your hardware is actually doing.
Headlamp + intel-gpu plugin. See your GPU. No middleman. [link to docs]
**Thread Option B** (Storage):
Q: How do you track Rook/Ceph performance?
Real answer: Stop thinking about monitoring as a separate system. Rook is part of your cluster. You need visibility into it from the same place you look at everything else.
That's the whole reason we built the Rook plugin. [link to docs]
**CMO Note**: These are hyperspecific. Only deploy if question arises. Shows expertise without being pushy. Links to actual docs (once we have them on GH pages).
---
### Template 5: The "We Attend Quietly" Take
**Platform**: Mastodon
**Trigger**: General KubeCon reflection mid-conference (March 24-25)
**Post**:
KubeCon observation: Nobody is pretending their observability stack is simple anymore. Everyone admits it's complex. The conversation has shifted from "we have visibility" to "how do we make visibility manageable."
We have a thesis on that. (It involves not adding more layers.)
**CMO Note**: Intellectual positioning. Suggests we have *design philosophy* not just tools. Mastodon audience appreciates meta-commentary about industry trends. Doesn't mention product directly until the last line.
---
## If External Events (March 21-27)
### Template 6: Security/Supply Chain Angle
**Trigger**: If a security incident, CVE, or supply chain story breaks during conference
**Platform**: Twitter/X
**Post**:
[Current incident] is why we built sealed-secrets plugin.
Not because we think we're special. Because operators shouldn't have to choose between "use secrets" and "know where they're being stored."
If you're at #KubeCon, stop by and we can talk about it. [link]
**CMO Note**: Shows we're paying attention. Ties conference energy to our actual products. Empathetic (don't position as saviors, just problem-solvers). Only use if an actual security story breaks.
---
### Template 7: Cost Angle
**Trigger**: If cost/efficiency is a hot KubeCon keynote theme, or someone discusses "cost-aware monitoring"
**Platform**: LinkedIn
**Post**:
KubeCon theme observation: "Cost-aware observability" is trending because teams are finally admitting that monitoring infrastructure is expensive.
The plugin approach (small, focused, optional) is inherently cost-aware. You don't pay for observability you don't use.
This is intentional design.
**CMO Note**: Positions Headlamp's modular philosophy as a *feature*. Not "we're cheaper" but "we're more efficient by design." Works if cost is a main theme.
---
## Post-KubeCon (March 27+)
### Template 8: The Recap
**Platform**: Twitter/X
**Trigger**: March 27-28, after conference ends
**Post**:
KubeCon takeaway: The best tools are the ones your team forgets they're using because they just work.
We built Headlamp plugins like that. Small. Focused. Invisible until you need them.
Did we miss you in Amsterdam? [link to plugin docs]
**CMO Note**: Humble, unsalesy. Doesn't claim we nailed it, just states our design goal. Bridges back to self-directed learning/documentation (not aggressive marketing).
---
## General Guidelines for Day-Of Responses
1. **Monitor, don't dominate**: Respond to conversations, don't start them.
2. **Listen for pain, not keywords**: "I can't see X" beats "person mentioned dashboard."
3. **Be helpful first**: Answer questions. Mention our stuff only if relevant.
4. **Keep it real**: If someone asks a question we don't have a good answer for, say so.
5. **Timing**: Responses should go out within 2-4 hours of trigger, not instant (not trying too hard).
6. **Tone check**: Every response should pass the "would an actual operator write this" test.
---
## Tools & Hashtags
**Primary hashtag**: #KubeCon (volume 24-26 March)
**Secondary hashtags**: #KubeCon2026, #cloudnative, #kubernetes
**Response hashtags**: #observability, #k8s, #platform-engineering (context-specific)
**Monitoring tools** (if CMO provides access):
- Twitter search: `#KubeCon`
- Bluesky search: `KubeCon`
- Reddit: r/kubernetes, r/devops, r/SRE (watch for questions)
- Slack (if we're in cloud-native Slack): #kubecon-2026
---
## Notes
- These are *optional* responses, not a mandate to post daily
- Only deploy if you believe the response is valuable (not hitting publish for metric's sake)
- If conference energy is low or our voice doesn't fit the conversation, that's fine
- Post-KubeCon reflection is most important; day-of is engagement sugar
- If something unexpected breaks (security issue, major outage), escalate to CMO before responding
@@ -1,137 +0,0 @@
# Social Media Batch - 2026-03-10
## Strategic Summary
Six plugins. Each one exists because we had a specific problem in production with no good visibility. This batch is about "why" before "what" — explaining the actual Kubernetes pain point each plugin addresses, from our own experience. It's educational content that works pre-KubeCon: people don't need to know what Headlamp is to understand "oh, that problem sounds familiar." Also serves as support content for the KubeCon campaign dropping next week.
---
## 1. Ready to Post
### Post 1: Rook-Ceph Problem
**Platform**: Twitter/X
**Post**:
You deploy Ceph because it's the right choice for distributed storage. Then you're staring at `ceph status` in a terminal wondering which pool is actually filling up, what the OSD rebalance is doing, and why your capacity projections are off by 40%.
We built headlamp-rook-plugin to see inside Ceph from a dashboard instead of grep-ing logs.
github.com/privilegedescalation
**CMO Note**: Opens with a relatable pain point (Ceph deployment without visibility), then delivers the specific solution (dashboards instead of CLI). No "exciting to announce" language. The problem-first framing resonates with people already running Ceph.
---
### Post 2: Sealed Secrets Problem
**Platform**: Bluesky
**Post**:
Your team has a pattern:
1. Someone generates a secret
2. They echo it in Slack "here's the password"
3. It's in the channel history forever
4. Someone rotates it, forgets to tell the database
5. 2am incident
We built headlamp-sealed-secrets-plugin so the secret never leaves the browser and stays encrypted in your cluster. The plaintext never transits anywhere someone can screenshot it.
**CMO Note**: Captures the actual workflow failure that sealed-secrets solves. The numbering of the failure pattern is specific and darkly funny. Bluesky audience appreciates the "this is how we actually mess up" honesty.
---
### Post 3: Polaris Problem
**Platform**: Mastodon
**Post**:
Kubernetes best practices are things you know about the week after you've already deployed your application with none of them.
Polaris audits your workloads against security and reliability policies. It shows you what you're doing wrong before it becomes a 3am outage.
We built the headlamp-polaris-plugin so you can actually see the audit results in your dashboard instead of waiting for the automated security scan email you never read.
**CMO Note**: Self-aware about human nature (learning best practices after deployment fails). Polaris is the solution. Mastodon audience gets the candor. Not preachy, just practical.
---
### Post 4: Intel GPU Problem
**Platform**: Twitter/X
**Post**:
You provisioned Intel GPUs in your K8s cluster for ML workloads. Cool.
Now: which node has available GPU? How hot are they running? Is the scheduler actually placing workloads on GPU nodes or just on CPU? Is anything actually using them?
We built headlamp-intel-gpu-plugin to answer those questions from a dashboard instead of kernel logs.
github.com/privilegedescalation
**CMO Note**: Chains questions that GPU cluster operators actually have. Each question hints at a real visibility gap. The solution (dashboard instead of logs) is matter-of-fact. Specific pain point without corporate language.
---
### Post 5: TrueNAS CSI Problem
**Platform**: Bluesky
**Post**:
Your storage driver is configured. Your benchmark says it can do 10k IOPS.
But what's actually happening in production? You're scheduling workloads, moving data around, and your I/O profile looks nothing like the benchmark.
We built headlamp-tns-csi-plugin so you can see kbench storage metrics live in your cluster dashboard. No "apply a manifest and wait for email," just see what your storage is actually doing.
**CMO Note**: Contrasts lab conditions (benchmark) with production reality (actual I/O profile). Storage visibility without waiting. Appeal to operators frustrated with "set it and hope" storage management.
---
### Post 6: kube-vip Problem
**Platform**: Twitter/X
**Post**:
You've got a load balancer. You've got virtual IPs floating around your cluster. And someone's asking "which service is that IP mapped to?"
Now what? Grep the config? Check the VirtualIP manifest? It's 2025 and you're hunting through YAML.
We built headlamp-kube-vip-plugin so virtual IPs and load balancer status show up in your dashboard where you can actually see them.
github.com/privilegedescalation
**CMO Note**: Specific frustration: answering "which service" requires config hunting. The solution is dashboard visibility. Dry tone emphasizing the absurdity of 2025-era manual lookups.
---
## 2. Risky but Worth Discussing
### Post 7: Meta Comment (Optional)
**Platform**: Twitter/X
**Post**:
Six Kubernetes plugins, and the common thread isn't "advanced observability" or "enterprise features."
It's: we had a problem. The CLI wasn't good enough. The logs were hard to parse. So we built a dashboard for it.
Sometimes the answer to "why do we exist" is "we got frustrated with grep."
**CMO Note**: Self-aware meta-commentary on why all six plugins exist. The "we got frustrated with grep" line is the voice we're known for. Could feel slightly salty to some, but earns credibility with operators who've been there. Optional amplification of the whole batch theme.
---
## 3. Backlog (Evergreen)
None for this batch — these posts work best as a thematic set posted over 3-5 days while driving toward KubeCon, then are less relevant after.
---
## Notes
- Suggested posting schedule: 1 post per day starting tomorrow (March 11), finishing by March 15, giving time for engagement before KubeCon campaign drops March 21
- Each post stands alone but builds narrative collectively
- Educational angle differentiates from release announcements and provides value even for non-adopters
- Heavy on problem framing, light on pitch — fits the voice and builds trust
@@ -0,0 +1,84 @@
# Slow Burn Post - 2026-03-11
## Strategic Summary
Plant a question that makes people curious about Kubernetes observability and operational maturity without revealing the answer. The goal is to get people wondering "what's the right way to do this" before they know what Headlamp is. Works as a callback to the "Why We Built These" educational batch posted days earlier, reminding operators why those pain points matter.
---
## 1. Ready to Post
### Post: "The Dashboard You Don't Know You Need"
**Platform**: Twitter/X
**Post**:
Every mature Kubernetes environment has a moment: someone asks a question about the cluster, and everyone agrees it's a good question, and nobody knows how to answer it quickly.
Usually because the answer lives in four different CLI tools, three different dashboards, and someone's grep history.
**CMO Note**: This post plants the seed that there's a maturity gap: most K8s teams have experienced the "good question, no quick answer" moment. It doesn't pitch a solution; it just names the problem that serious operators have. Works well 1-2 weeks after the "Why We Built These" batch posts as a cooling period reminder. Tone is acknowledgment + dry acceptance, not mocking.
---
### Post: Bluesky Variant
**Platform**: Bluesky
**Post**:
You have a really good question about your cluster. Everyone agrees it's good. Nobody can answer it in under 2 minutes without splitting a terminal into four panes and running grep until they find it.
That's not a flaw in your question. That's a flaw in how K8s visibility tools are designed.
**CMO Note**: Slightly longer and more conversational for Bluesky's format. Same core message—empathy + problem naming—but with more room to breathe. This version gets slightly more pointed at the tooling itself.
---
### Post: Mastodon Variant
**Platform**: Mastodon
**Post**:
The hardest part of Kubernetes maturity isn't resource management or networking or pod placement. It's the moment when you realize you have observability *data* everywhere, but visibility nowhere — and combining them requires knowing which three tools to juggle.
There's a better way to design this.
**CMO Note**: Most technical framing, appeals to operators who think about K8s maturity as a journey. "Data vs. visibility" distinction is specific enough to resonate. Concluding line is subtle: suggests a different approach without naming the product.
---
## 2. Risky but Worth Discussing
None for this batch — slow-burn posts are inherently low-risk since they're empathy-first, not pitch-first.
---
## 3. Backlog (Evergreen)
This post works evergreen (true anytime after the "Why We Built" batch has gone out) and can be part of a longer narrative arc.
Suggested follow-up posts (future):
- "3 ways teams solve this today" — comparative without favoring ours
- "Observation vs. visibility: what's the difference?" — educational explainer
- "What does the right K8s dashboard look like?" — leading question that sets up product reveal
---
## Why This Works
1. **No product mention** — Pure empathy for the operator experience
2. **Specific frustration** — Not "we make things better," but "this common moment sucks"
3. **Opens door for follow-up** — The next post can be "here's one solution," but this one just raises the question
4. **Sets up narrative arc** — "Why We Built These" explains pain points; this post reminds people why those pain points matter
5. **Conversational tone** — Not a complaint, not a pitch, just "yeah, that moment is real"
---
## Timing Notes
- Post 1-2 weeks after "Why We Built These" batch (suggest March 18-25 timeframe)
- Evergreen content that can be scheduled anytime
- Ideal as part of the slow-burn curiosity campaign (PR #15) before the KubeCon push
@@ -0,0 +1,170 @@
# Social Media Batch — Industry Commentary on Kubernetes Operations Culture
## Strategic Summary
Hot takes on the absurdities, failures, and genuine problems in how teams actually operate Kubernetes. Not product pitches. Not tutorials. Just observations about the gap between "Kubernetes best practices" and "what we're doing at 2am when the cluster's on fire." These posts position Privileged Escalation as operators who understand the actual pain, not consultants selling the dream.
Timing: Evergreen content, works anytime. Some posts pair well with technical releases; others stand alone. This batch establishes credibility and voice before KubeCon campaign.
---
## 1. Ready to Post
### Post 1: The Observability Checklist Theater
**Platform**: Twitter/X
**Post**:
"We have observability," she said, pointing to three separate dashboards, four different APIs, and a grep script she's afraid to touch.
Observability isn't having data. It's knowing what to do with it when you're 30 seconds into an incident.
Most Kubernetes deployments have the first part. Nobody has the second.
**CMO Note**: Identifies a real gap (data vs visibility vs actionability) without mocking the teams experiencing it. Dry acknowledgment of a universal pain point. Sets up future posts about "what good observability looks like." No product mention needed — the empathy does the work.
---
### Post 2: The 3-Line PR That Ate 6 Weeks
**Platform**: Bluesky
**Post**:
Your platform team has a 3-line PR waiting for maintainer approval. It's been 42 days.
Not because the code is bad. Not because they're thinking about it. They're just... busy.
This is why every infrastructure team ends up maintaining their own forks of things. Not because they wanted to. Because the alternative was waiting forever.
**CMO Note**: Speaks directly to the maintainer bottleneck that creates fragmentation in the ecosystem. Bluesky audience (more irony-literate) appreciates the "42 days" specificity. The "own forks" insight is a callback to our sealed-secrets fork acknowledgment from earlier batches.
---
### Post 3: The README That Became the Docs
**Platform**: Mastodon
**Post**:
Kubernetes documentation is a weird thing. The official docs are great. The best practices docs are aspirational. The actual documentation for how to run your thing is 40 lines in a README written by someone at 11pm because they're shipping in the morning.
Three years later, that README is the only source of truth. It hasn't been updated in two years. Someone just hired reads it and wonders why nothing matches.
This is fine.
**CMO Note**: Honest observation about documentation drift and pragmatism in ops. "This is fine" ending is dark humor that Mastodon audience gets. Not judgmental, just realistic. Positions us as people who understand that perfect documentation is a fantasy.
---
## 2. Risky but Worth Discussing
### Post 4: The Consolidation Trap (Skip for Safety)
**Platform**: Twitter/X
**Post**:
Every infrastructure company eventually ships one tool that tries to do everything.
It is always bloated. It is always slow. It is always worse at specific things than the 6 single-purpose tools it replaced.
We had the opportunity to do this. We didn't. We're weird that way.
**CMO Note**: RISKY. This is a soft dig at competitors (Lens, Rancher, etc.) and might read as salty if not careful. However, it's grounded in our actual decision (6 plugins instead of one). Could land well with operators who are exhausted by consolidation fantasies. Recommend getting CMO sign-off before posting. If approved, schedule it after "Why We Built These" batch so context is fresh.
---
### Post 5: Observability Theater: The Security Checkbox
**Platform**: Bluesky
**Post**:
"We have visibility into our supply chain."
Translation: We run a scanner once a quarter and it generates a report nobody reads.
"We monitor resource usage."
Translation: Prometheus metrics exist. We haven't looked at them in a year but they're technically there.
Real observability isn't a checkbox. It's a practice. It takes work. Most teams don't do it.
**CMO Note**: MILDLY RISKY. Could read as too critical of teams trying their best. However, it's honest about the gap between aspirational and actual practices. Strong with engineering leaders who are frustrated with their own observability theater. Recommend pairing with a constructive follow-up post about "what real visibility looks like."
---
## 3. Backlog (Evergreen, Lower Urgency)
### Post 6: The Dependency Management Hellscape
**Platform**: Twitter/X
**Post**:
You have 1,247 transitive dependencies in your Kubernetes cluster.
You know what 14 of them do.
Nobody knows who maintains the other 1,233. Nobody knows what version of OpenSSL they actually use. If one of them breaks, you have a 2-week-long blame game ahead of you.
This is the cloud native era.
**CMO Note**: BACKLOG. Evergreen tech-industry grumbling. Node_modules meme energy. Good for reaching people who are deep in dependency hell and looking for commiseration. Can post anytime without losing relevance. Low risk, high relatability.
---
### Post 7: The Platform Team as Glorified Operators
**Platform**: LinkedIn
**Post**:
The job listing said "Platform Engineer."
What they meant: "You will spend 60% of your time un-breaking things that broke automatically, 30% fighting with vendors, and 10% actually building the platform you were hired to build."
Platform engineering is good work. But we're not honest about what it is yet. It's operations wearing a different hat.
**CMO Note**: BACKLOG. Professional tone for LinkedIn. Speaks to platform engineering leaders who are exhausted. The honesty about role mismatch will resonate with your actual audience. Low controversy, high empathy. Works anytime. Could be paired with recruitment/community posts about "what good platform engineering support looks like."
---
## Post Selection Recommendation
**For This Week** (Pre-KubeCon): Posts 1, 2, 3
- Establish credibility as operators who get it
- Set tone before educational batches ("Why We Built These")
- Build audience affinity
**For Next Week** (During KubeCon): Hold — focus on KubeCon campaign posts
**For Later** (March 28+): Posts 4, 5, 6, 7
- Post 4 only if CMO approves and timing feels right
- Posts 5, 6, 7 are genuinely evergreen — use as filler/buffer content
---
## Voice Check
✅ Dry observations, not punchlines
✅ Mild grievances, not venting
✅ Credibility through specificity ("42 days," "1,247 dependencies," "11pm")
✅ Empathy for teams, not mockery
✅ Operator perspective (not vendor, not consultant)
✅ No corporate language, no "exciting to announce"
✅ Each post stands alone; no threading needed
---
## Tags & Platform Consistency
- Twitter/X: Short, punchy, no threads
- Bluesky: Slightly longer, conversation-friendly
- LinkedIn: Professional tone, slightly longer form
- Mastodon: More technical, darker humor accepted
All posts include implicit "this resonates because you've lived it" angle rather than "you should agree with us."
---
## Dependencies
- Posts 1-3: Self-contained, can post anytime
- Post 4: Requires "Why We Built These" context (posted 1+ week prior)
- Posts 5-7: Evergreen, zero dependencies