El ingeniero Sam Rose, de ngrok, ha publicado webernetes, un port parcial de Kubernetes a TypeScript que permite ejecutar clústeres completos dentro del navegador web. El proyecto, de código abierto y disponible en GitHub, se compone de unas 100.000 líneas de código generadas a lo largo de 552 commits y 629 archivos tras dos meses de trabajo, y ocupa unos 140 KiB comprimidos, frente a los más de 540 KiB que ocuparía un simple "hello, world" en Go compilado a WebAssembly.
A diferencia de lo que muchos han supuesto, webernetes no es una compilación de Kubernetes a WebAssembly, sino una reescritura parcial que incluye un kubelet capaz de gestionar el ciclo de vida de los pods y aplicar probes; varios controladores como el scheduler, el controller de namespaces, kube-proxy y el de Deployments; una interfaz CNI simulada para la comunicación entre pods; y un tiempo de ejecución de contenedores basado en navegador que se comunica mediante la CRI. El sistema no descarga imágenes reales de registros como Docker Hub: utiliza un registro propio en el navegador y las imágenes se definen mediante una API en TypeScript.
El autor subraya que casi todo el código fue generado por modelos de lenguaje, por lo que ha sometido el proyecto a una revisión línea por línea y ha creado cientos de tests que comparan el comportamiento de webernetes con el de un clúster real de Kubernetes. El objetivo no es sustituir a Kubernetes en producción, sino servir como base para crear contenido interactivo sobre la plataforma, con planes de incorporar más funcionalidades a medida que las necesite en sus materiales didácticos.
