Costin Ștefan

Shorts

Links, repos and tools worth keeping, with a note on why. Longer write-ups go on the blog.

  1. Still the reference implementation for secondary interfaces on bare metal. The thing the docs bury: a NetworkAttachmentDefinition is namespaced, so a pod cannot reference one from another namespace. Every Multus problem I have debugged in the last year traced back to that one line.
    Multus CNI github.com

    A CNI meta-plugin for multi-homed pods in Kubernetes, attaching multiple network interfaces to a single pod.

  2. Worth re-reading before blaming disks. Raft round-trip is bounded by fsync latency, and the number nobody watches is event count — 700k accumulated events will degrade a cluster long before the p99 write latency looks bad.
    etcd performance and tuning etcd.io

    How disk and network latency bound etcd throughput, and the settings that matter when they do.

  3. The CAPO reference I wish I had opened first. Read the flavor and image sections before you write a single manifest — a missing flavor fails late, during machine creation, and the error surfaces nowhere near the cause.
    Cluster API Provider OpenStack kubernetes-sigs.github.io

    Reference documentation for declaring and managing Kubernetes clusters on OpenStack with Cluster API.

  4. The component breakdown is the page to hand someone who is new to Flux. Once you see that source-controller and kustomize-controller are separate reconcile loops, the “why has my change not landed” question answers itself.
    Flux components fluxcd.io

    The GitOps toolkit controllers that make up Flux, and how each one reconciles its part of the system.

  5. Bookmarking for the mon quorum section. A crashing mon is usually not a Rook problem, it is Ceph telling you something through a crash report that Rook never surfaces — check ceph crash ls before touching the operator.
    Ceph common issues rook.io

    Diagnosing the failures that show up most often in a Rook-managed Ceph cluster.

  6. Set this up on the homelab box. The part that cost me an evening: hardware transcoding needs the container to see the device and the matching driver userspace inside the image. Host driver alone is not enough.
    Hardware transcoding immich.app

    Configuring GPU-accelerated video transcoding in Immich, including per-vendor driver requirements.

  7. The canonical passthrough page. Still the fastest way to work out whether your IOMMU groups will cooperate before you buy hardware for a build.
    PCI(e) passthrough pve.proxmox.com

    Passing physical devices through to Proxmox guests, covering IOMMU setup and group isolation.

  8. The reason this site has no web fonts and no framework. A budget is a much better design constraint than good intentions.
    512KB Club 512kb.club

    A collection of performance-focused websites whose total uncompressed page weight stays under 512KB.

  9. How this page is built — the whole feed is one YAML file walked by a template. No content files, no taxonomy, no build step beyond Hugo itself.
    Data templates gohugo.io

    Reading structured YAML, JSON or TOML files from the data directory inside Hugo templates.