Blog

Updates, architecture notes, and release announcements.

Manage a server fleet with kcore-provisioning

15 October 2026

Verified images, machine inventory, BMC power, and boot targets — how the provisioning dashboard makes a rack of servers tractable.

Bare-metal platforms that feel like the cloud — without the cloud bill

15 October 2026

Declarative Kubernetes, Ceph SAN, object storage, and PostgreSQL on owned hardware — cloud-style workflows without hyperscaler markups.

VMware exit strategy: choosing the right platform

15 October 2026

How to compare Proxmox, Nutanix, OpenShift Virtualization, OpenStack, OpenNebula, and kcore when leaving VMware — and which operating model each one fits.

Windows 10 on kcore

10 October 2026

Build a Windows 10 Pro disk, create the VM with kctl, and open the desktop through an SSH port forward.

Three kinds of VMware migration tool

1 October 2026

Inventory tools, disk movers, and Terraform generators are different jobs. Almost none of them write Terraform for a hypervisor that is not VMware.

Windows Server 2022 on kcore

29 September 2026

Build the kcore ISO, turn on Hyper-V CPU enlightenments, create a Windows Server 2022 VM, and serve the default IIS page.

A VCSP exit plan before 31 March 2027

28 August 2026

Contract end date, inventory, disk convert, and a per-socket quote — a VCSP exit plan that does not pretend cutover is a button.

Windows guests without a VMware licence

25 August 2026

Windows Server and desktop guests run. One GPU per VM. Live migration still needs Ceph. Not a Microsoft certification claim.

Live migration without calling it vSphere HA

21 August 2026

Shared Ceph for a VM move. Cold drain when you can stop. Multi-site control-plane replication is not vSphere HA.

Terraform and YAML for the hypervisor

18 August 2026

A real Terraform provider for VMs, plus the 0.5.0 gaps: no Kubernetes, PostgreSQL, migrate, or GPU attribute.

When a failed host update must boot the previous generation

14 August 2026

A failed kcore host update boots the previous generation. That is the host, not a guest snapshot or a backup product.

Stay VM-first, then add Kubernetes

11 August 2026

VMs first. Kubernetes on the same metal when you declare it. One Cilium on the primary cluster. No surprise scale-in.

Per-socket licensing versus a per-core quote

7 August 2026

Per socket, not per core. Enterprise has an 8-socket minimum. Convert both quotes to a yearly figure before you argue features.

When Proxmox is no longer the operating model

5 August 2026

Proxmox fits a small UI-driven estate. Leave when the next step is an API, reviewable Terraform, and a tested convert.

VMware import: inventory, convert, cutover

3 August 2026

Three jobs, not one button: inventory and a gap report, an exported-disk convert, then a cutover you can back out.

Partner terms: official builds, not a fork

1 August 2026

10% referral, reseller margin with deal registration, MSP per socket. White-label is the official bits, not a fork.

Why we use proptest and Kani in kcore

17 April 2026

Two extra layers on top of normal tests: property-based testing with proptest, and bounded model checking with Kani. Where they apply in kcore (Nix escaping, path safety, controller database CRUD) and why we run both.

Security groups: nginx on a NAT network (before and after)

11 April 2026

RFC1918 lab addresses, curl before and after, and a security group manifest that DNATs host TCP/8080 to an overlay guest running nginx.

How We Test Replication with TLA+

11 April 2026

A practical look at how kcore uses TLA+ for replication modeling, what classes of bugs model checking catches before production, where to learn TLA+, and examples of teams using it in real-world distributed systems.

Initial containerd operations in kcore (conservative guide)

10 April 2026

A conservative, operator-focused walkthrough for early containerd support in kcore: create, list, inspect, start, stop, and delete containers directly on a node with clear caveats on current scope.

First Node to Debian 12 VM: Full Terminal Walkthrough

9 April 2026

New quickstart with an embedded asciinema: install and approve your first node, add an operator SSH key, create a Debian 12 VM, and SSH in. Includes links to the new user docs at github.com/kcorehypervisor/kcore/docs/user.

Why We Chose CRDTs over Raft for Multi-DC Replication

27 March 2026

Most distributed systems reach for Raft when they need replication. We chose CRDTs instead — here's how kcore uses a hybrid CRDT model to replicate controller state across datacenters without sacrificing availability during network partitions.

Why kcore Is Written in Rust

25 March 2026

kcore started in Go. I rewrote it in Rust. No null errors, no GC pauses, a compiler that catches real bugs before they reach production — and it fits right into the NixOS ecosystem. Here's what pushed me to make the switch.

kcore goes public

19 March 2026

We've split the old monorepo and published the docs and website as separate public repos. The product docs are now at github.com/kcorehypervisor/kcore and the site deploys to kcorehypervisor.com via GitHub Pages. The core codebase stays private for now as we work towards the first public release.

Why I Built kcore

March 2026

Proxmox does a lot of things right, but its API is an afterthought, upgrades are scary, and the Perl codebase is showing its age. I built kcore to get declarative, API-first infrastructure on bare metal.