This week: Platform Engineering.
→ Why documentation is not a guardrail
→ Backstage: the most boring essential tool
→ Crossplane vs Terraform (real differences)
→ A Kyverno policy that saves your uptime
→ One-liner to check K8s EOL
podostack.com/p/guardrail... 🛠️
This week: Platform Engineering.
→ Why documentation is not a guardrail
→ Backstage: the most boring essential tool
→ Crossplane vs Terraform (real differences)
→ A Kyverno policy that saves your uptime
→ One-liner to check K8s EOL
podostack.com/p/guardrail... 🛠️
Backstage doesn't autoscale your pods. Doesn't encrypt your traffic. Doesn't monitor anything.
It just tells you what you have. And somehow that's the hardest problem.
Backstage doesn't autoscale your pods. Doesn't encrypt your traffic. Doesn't monitor anything.
It just tells you what you have. And somehow that's the hardest problem.
Nobody reads the wiki before deploying. You know this. I know this.
So why do we keep pretending it works?
Nobody reads the wiki before deploying. You know this. I know this.
So why do we keep pretending it works?
1000 services = 1000s of rules.
Every packet walks the chain.
O(n) lookup. In 2025. In your kernel.
1000 services = 1000s of rules.
Every packet walks the chain.
O(n) lookup. In 2025. In your kernel.
Which one should you actually use in 2025?
A quick breakdown. 🧵
Which one should you actually use in 2025?
A quick breakdown. 🧵
→ Stargz: lazy image pulling (9x faster cold starts)
→ Karpenter vs Cluster Autoscaler
→ Cilium: eBPF replaces kube-proxy
podostack.substack.com/p/lazy-pull-smart-scale-ebpf-network 🍇
→ Stargz: lazy image pulling (9x faster cold starts)
→ Karpenter vs Cluster Autoscaler
→ Cilium: eBPF replaces kube-proxy
podostack.substack.com/p/lazy-pull-smart-scale-ebpf-network 🍇
No shell. No curl. No tcpdump. Nothing.
How do you debug it? 🧵
No shell. No curl. No tcpdump. Nothing.
How do you debug it? 🧵
Not a dream. Not a beta. GA since version 1.24.
Here's how Ambient Mesh actually works. 🧵
Not a dream. Not a beta. GA since version 1.24.
Here's how Ambient Mesh actually works. 🧵
One YAML file. Full error budget tracking. Burn rate alerts. Grafana dashboards.
Here's sloth. 🧵
One YAML file. Full error budget tracking. Burn rate alerts. Grafana dashboards.
Here's sloth. 🧵
Ambient Mesh: ~20MB per node.
Plus: SLO monitoring from a single YAML file, and why labels are contracts, not documentation.
podostack.substack.com/p/sidecar-free-mesh-slo-from-yaml-and 🍇
Ambient Mesh: ~20MB per node.
Plus: SLO monitoring from a single YAML file, and why labels are contracts, not documentation.
podostack.substack.com/p/sidecar-free-mesh-slo-from-yaml-and 🍇
kubectl diff doesn't understand Flux.
Helm diff doesn't handle Kustomizations.
flux diff does both. 🧵
kubectl diff doesn't understand Flux.
Helm diff doesn't handle Kustomizations.
flux diff does both. 🧵
It means "whatever was built last time someone forgot to tag."
Here's why it will burn you. 🧵
It means "whatever was built last time someone forgot to tag."
Here's why it will burn you. 🧵
Not a proxy. Not a sidecar. eBPF magic. 🧵
Not a proxy. Not a sidecar. eBPF magic. 🧵
Every node. Same image. Same egress bill.
There's a fix—and it's stateless. 🧵
Every node. Same image. Same egress bill.
There's a fix—and it's stateless. 🧵