RSSAmplifier

Blog

Posts

A technical blog by Abhimanyu Saharan, focused on DevOps, automation, Kubernetes, infrastructure, and real-world software engineering insights.

blog.abhimanyu-saharan.comRSS feed ↗74 posts

Latest posts

Keeping a Raspberry Pi Cluster Cool

Why temperature thresholds weren't enough, and how topology-aware automation improved thermal management in my cluster.

Running a Homelab Made Me Rethink My Network

Running Kubernetes, backups, media servers, and public services from home exposed the limitations of consumer broadband and why WAN failover alone is not enough

Why Most Homelabs Never Become Real Infrastructure

Why most homelabs stay as hardware collections, and what it takes to build real infrastructure around reliability, recovery, observability, and failure.

GitHub Actions 2026 Pricing: A Lesson in Breaking Trust

GitHub cut hosted runner prices but planned fees for self-hosted Actions, triggering backlash. The change was paused. Here’s what happened and what to expect.

What’s New in Kubernetes 1.34

Kubernetes 1.34 brings GA features, scheduler speedups, kubelet and networking updates, plus security and performance boosts for production clusters.

Cluster Autoscaler on Rancher RKE2

Step-by-step guide to RKE2 autoscaler setup with Rancher. Learn cluster autoscaler Helm deployment, scaling benefits, limits & troubleshooting.

GitHub Reusable Workflows vs Composite Actions

When building CI/CD pipelines in GitHub Actions, two powerful tools help reduce duplication and improve maintainability: composite actions and reusable workflows . While they seem similar, they solve different problems. Understanding when to use each can drastically improve the scalability of your pipelines, especially if you manage multiple repositories. 🔹 What Are Composite Actions? A composite…

Optimize Docker Images: Faster Builds, Smaller Size

Learn how to reduce Docker image size and speed up builds with smart caching, cache busting, multi-stage builds, and BuildKit best practices.

Run and Test Kubernetes CronJobs Instantly Without Waiting

Stop waiting for schedules to debug CronJobs. Learn how to trigger them immediately, validate specs, and streamline testing in Kubernetes.

Helm Upgrade Failure: When Managed Fields Bite Back

Helm upgrade failed due to Kubernetes managedFields conflict. Learn why spec looked fine, yet patching caused errors, and how to fix it.

From Foundations to DevOps: A Smarter Career Path

Discover how building strong technical foundations first can set you up for lasting success in a DevOps career.

CVE-2025-54313: Prettier Config Package Hijacked

A high-severity CVE exposed eslint-config-prettier to a supply chain attack via a phishing compromise. Learn what happened, who’s affected, and how to fix it.

Replit’s AI Goes Rogue: A Tale of “Vibe Coding” Gone Wrong

Replit’s AI deleted a live production DB, and tried to hide it. This blog dives into what went wrong and why vibe coding isn’t safe for serious dev work.

Kubernetes Production Topologies: EKS vs GKE vs AKS

Compare Kubernetes topologies across AWS EKS, Google GKE, and Azure AKS. Learn how to design resilient, production-grade clusters the right way.

Inside PostgreSQL: Architecture for HA, Speed & Reliability

Explore PostgreSQL’s architecture with a focus on high availability, data integrity, resilience, and performance; ideal for developers, DBAs, and tech leads.

Kickstart Your Dev Journey with Python, React & OSS Guide

Learn which Python and React frameworks to master, what projects to build, and how to make your first open source contribution with real project examples.

Understanding SLAs, SLOs, and SLIs in Service Reliability

Learn the difference between SLA, SLO, and SLI with real-world examples. Master key service reliability metrics for uptime, latency, and performance monitoring.

Optimizing Core Web Vitals (LCP, FID, CLS) in Next.js

Learn how to optimize Core Web Vitals (LCP, FID, CLS) in Next.js with in-depth strategies, best practices, and testing tools for better SEO and user experience.

Stripping Strings in Python? You Might Be Doing It Wrong

Learn the key differences between `removesuffix()` and `rstrip()` in Python. Avoid common pitfalls and choose the right method for precise string manipulation.

Native Subresource Support in Kubectl

Interact with Kubernetes subresources like `status` and `scale` using `kubectl` natively with the new `--subresource` flag, no more raw HTTP calls.

A Persistent Security Hole in Kubernetes Finally Addressed

CVE-2025-1767 exposes root-level access on nodes via a deprecated volume plugin; Kubernetes 1.33 will disable it by default

A Decade of Cloud Native: The CNCF’s 10-Year Journey

Explore the 10-year journey of CNCF, its major milestones, community growth, and impact on cloud-native technologies in this detailed, analytical post.

OpenAI in 2025: Key Product, Research & Ecosystem Trends

Explore OpenAI's major 2025 updates including new GPT models, research breakthroughs, multimodal tools, and how the community is shaping the AI ecosystem.

Smarter Pod Scheduling with MatchLabelKeys in Pod Affinity

Enhance Kubernetes pod scheduling with dynamic affinity using matchLabelKeys and mismatchLabelKeys for safer rollouts and tenant isolation.

Pod Topology Spread Now Honors Taints and Affinity

Pods can now exclude tainted nodes during topology spread calculations, improving placement predictability.

Kubernetes Fixes Leaked Volumes with HonorPVReclaimPolicy

Kubernetes 1.33 ensures PV reclaim policies are honored even if PVs are deleted before PVCs, preventing storage leaks across CSI and in-tree drivers.

Async Preemption: A Scheduler Upgrade for Kubernetes

A Kubernetes pod takes a fast async path, skipping blocking API calls handled in the background, showing the shift from sync to async preemption.

Controlled Swap Support for Kubernetes Nodes

Kubernetes adds limited swap support for Burstable pods, offering memory flexibility on cgroupsv2 nodes without compromising workload stability.

Top 10 Trends in the Python Ecosystem

Explore the top 10 Python trends in 2025, from faster runtimes and type safety to AI, web, data, DevOps, and quantum. Stay ahead in every domain with Python.

Consistent Sizing for Memory Volumes in Kubernetes

Kubernetes now aligns memory-backed emptyDir volumes with pod memory limits for improved portability and consistency across node types.

From Google to Global: The Technical Origins of Kubernetes

Kubernetes wasn’t built from scratch. Learn how Google’s secret systems shaped its design, and why that origin still matters for developers today.

Detect Deprecated Kubernetes APIs Before Upgrading

Use Pluto to identify deprecated or removed Kubernetes APIs in your manifests and Helm charts before upgrading, ensuring smooth and predictable cluster upgrade.

Kubernetes Introduces /statusz for Debugging Components

A new /statusz endpoint is coming to Kubernetes. Find out how it boosts debugging and observability without touching your metrics stack.

Finally, You Can Drop the Parentheses in Python 3.14

Python 3.14 simplifies exception handling with PEP 758, letting you drop parentheses when catching multiple exceptions, cleaner, consistent, and backward-safe.

CPython Performance Evolution: From Specialization to JIT

Explore how CPython evolved from adaptive bytecode in 3.11 to JIT execution in 3.14, boosting performance without rewriting the interpreter.

CVE-2025-0426: Unauthenticated Kubelet Checkpoint API Could Lead to Node DoS

A critical kubelet bug exposes a DoS risk via the unauthenticated /checkpoint API. Learn how to detect, mitigate, and patch CVE-2025-0426.

Python 3.13 without GIL: Real-World Threading Finally Works

Tested Python 3.13's optional GIL. Shared results showing real multithreading gains, install steps, and when it outperforms multiprocessing.

Python 3.14 Adds compression.zstd for Zstandard Support

Python 3.14 adds a native Zstandard module under compression.zstd, unifying high-performance zstd support and existing stdlib compressors under one namespace.

Mastering Python Loops with zip() and enumerate()

Learn how to simplify your Python loops using `zip()` for parallel iteration and `enumerate()` for index tracking. Includes practical, real-world examples.

Template Strings in Python 3.14: Structured Interpolation

Python 3.14 adds t"" template strings for structured interpolation, enabling safe rendering, inspection, and transformation before output.

Custom Stop Signals for Containers in Kubernetes v1.33

Kubernetes v1.33 lets you configure container stop signals via PodSpec, no more rebuilding images just to change shutdown behavior.

Got Access to Codex, Here’s What Surprised Me

Tested OpenAI Codex on a 6M-line codebase, surprisingly accurate, context-aware, and practical. Not an endorsement, just honest first impressions.

The Hardest Problem in Programming Isn’t What You Think

Why is naming so hard in programming? Because names reflect understanding. This post explores the deeper truth behind a classic quote, and why it still matters.

Simplifying Complex Logic with Python's match Statement

Explore Python 3.10’s match statement for cleaner, more readable conditional logic using pattern matching. A modern alternative to verbose if-elif chains.

Semantic Versioning: 10 Edge Cases You Can’t Afford to Miss

10 real-world edge cases in Semantic Versioning that cause confusion, break builds, or violate the spec, essential for anyone managing software releases.

Calendar Versioning (CalVer): Versioning That Ages Well

CalVer is a date-based versioning system that aligns software releases with real-world time, improving clarity, predictability, and support tracking.

SemVer vs CalVer: Choosing the Right Versioning Strategy

Learn when to choose SemVer or CalVer based on project type, release cycle, and user needs. Clear pros, cons, and real-world guidance included.

Kubelet Gets a New /flagz Endpoint

Discover how Kubernetes v1.33 introduces a new /flagz endpoint in Kubelet for runtime introspection of component flags, debug like never before.

Mastering the Walrus Operator (:=) in Python 3.8+

Learn how to use Python's := walrus operator to simplify conditions, avoid redundant calls, and write cleaner, more efficient code in Python 3.8+.

CrashLoopBackOff Just Got Smarter

Kubernetes 1.33 speeds up recovery with a 1s initial delay and 60s max backoff for restarts, opt-in via feature gate for faster handling of failing containers.