c#
.net
golang
mongodb
kubernetes
docker
azure
postgres
rabbitmq
A blog for learning
Article

Running MCP Servers in Production: agentgateway + ToolHive, from stdio to a Multiplexed HTTP Endpoint

A practical walkthrough of running MCP servers in production — ToolHive hosts the stdio servers, agentgateway multiplexes them behind one endpoint — with four ways to secure the stack (Context7-style per-user API keys, Keycloak OAuth via the MCP Authorization spec, per-tool CEL authorization, and OIDC browser login for the Admin UI), working configs, live verification, and links into the agentgateway and ToolHive docs.

Mehdi Hadeli

Software Architecture

Read
Article

Beyond kubectl: Managing .NET Workloads Across Kubernetes Clusters with Rancher

Move beyond kubectl and operate multiple Kubernetes clusters from one control plane: install Rancher Manager on k3d, organize workloads into projects instead of raw namespaces, enforce RBAC per team, import a second k3d cluster, and deliver the same .NET 10 todo API from the previous article, with PostgreSQL and RabbitMQ, to all of them with Fleet GitOps.

Mehdi Hadeli

Software Architecture

Read
Article

Hosting a .NET 10 API on Kubernetes with k3d: MetalLB for On-Prem, and Ingress vs Gateway API

Deploy a .NET 10 Minimal API to Kubernetes using k3d for fast local development, add MetalLB when you need real LoadBalancer support on on-premises clusters, learn how Kubernetes Ingress and the Kubernetes Gateway API differ and when to pick each one, and explore the running cluster with k9s and Headlamp.

Mehdi Hadeli

Software Architecture

Read