Qué es kuberc? Es tu mejor aliado para personalizar kubectl
kuberc te permite definir preferencias de usuario, aliases de comandos y políticas de seguridad sin "dejar la crema" en tu kubeconfig con datos que no son del clúster.
Si día a día estás más de cinco minutos metido/a en un terminal, sabes que kubectl es tu mejor partner, pero al mismo tiempo es el culpable de que tengas el túnel carpiano "pal' gato". Por años, hemos dependido de los aliases del shell o de herramientas de terceros como kubectx y fzf para no volvernos locos. Por fin, los mantenedores de Kubernetes se compadecieron y nos tiraron un hueso con kuberc.
Introducido como una funcionalidad beta en Kubernetes 1.34, kuberc te permite definir preferencias de usuario, aliases de comandos y políticas de seguridad sin "dejar la crema" en tu kubeconfig con datos que no son del clúster. Básicamente, es una forma de decirle a kubectl cómo comportarse antes de que te entre lag mental y borres un namespace de producción por andar tipeando muy rápido.
¿dónde vive este archivo kuberc?
Por defecto, kubectl busca su "personalidad" en las siguientes rutas:
Linux / macOS:$HOME/.kube/kuberc
Windows:%USERPROFILE%\.kube\kuberc
Si eres de esos que les gusta guardar sus archivos de configuración en lugares raros, como quién escribe, que tiene una obsesión con sus dotfilessólo para sentirnos diferentes, puedes sobrescribir esto usando el flag--kuberc o seteando la variable de entorno KUBERC.
aliases: ahorrándole movimientos a tus dedos por el exceso de yaml
La sección de aliases es donde puedes crear atajos para los comandos que más utilizas. A diferencia de los aliases del shell (como el típico alias k=kubectl), estos están integrados directamente en la lógica de ejecución de kubectl.
estructura básica de un alias
Por ejemplo, convierte kubectl getn en una metralleta JSON:
En este escenario, ejecutar kubectl getn pods es lo mismo que tirar un kubectl get pods -o json. Si de repente te baja lo masoquista y quieres un YAML, correr kubectl getn pods -o yaml va a mandar "a la punta del cerro" el valor por defecto y te dará el YAML.
anteponiendo y agregando argumentos
A veces un simple flag no basta. Puede que quieras inyectar argumentos específicos en el flujo del comando.
prependArgs: Inserta argumentos justo después del subcomando.
Ejecutar kubectl run-busy my-pod se traduciría en kubectl run my-pod --image busybox -- /bin/sh. Es como si por fin la CLI te estuviera ayudando de verdad.
defaults: para que no hagas explotar el cluster por un error
La sección defaults te permite cambiar el comportamiento global de los comandos estándar de kubectl. Esto está "de pana" para los que "accidentalmente" hemos borrado recursos por andar con exceso de cafeína en el cuerpo.
Con esto configurado, kubectl delete pod/oopsie te va a preguntar si de verdad estás seguro. Es un costo mínimo para evitar una reunión de post-mortem de emergencia con el jefe soplándote la nuca.
política de plugins de credenciales
ESTADO DE LA FUNCIONALIDAD:Kubernetes v1.35 [beta]
La seguridad suele ser la parte donde todos se quedan dormidos o pasan de largo, pero ojo acá: kuberc ahora te permite controlar qué plugins de credenciales exec tienen permiso para correr. Esto evita que un kubeconfig malicioso ejecute binarios arbitrarios en tu máquina; un truco interesante para pentesters, pero una crucificción garantizada para ti.
tipos de políticas
AllowAll: El "viva la fiesta". Pasa cualquier cosa. Es el comportamiento por defecto en versiones viejas.
DenyAll: El modo paranoico. No se permite ningún plugin. Súper seguro, pero no te vas a poder conectar ni a palos a EKS, GKE o AKS.
Allowlist: El camino sensato. Tú defines exactamente en qué binarios confiar.
implementando una lista blanca (allowlist)
Si eliges Allowlist, tienes que poner el nombre de los binarios explícitamente:
Ojo que los symlinks no se resuelven por razones de seguridad. Si apuntas a un symlink, la lista va a chequear la ruta del link, no el destino final.
configuraciones sugeridas (las "sanas")
Los mantenedores sugieren una configuración que priorice la seguridad y el uso de APIs modernas. Si todavía no utilizas Server-Side Apply, estái obsoleto, hermano!.
Si tu panorama ideal incluye debatir si Kubernetes es supuestamente un sistema operativo, torturarte gratuitamente por la tabs de un YAML modo sábana o darse apoyo moral comunitario por todas las caídas en producción a las 4 AM... te tenemos mansa noticia weón
La diferencia con el software se resumía en una frase que muchos repetíamos con una sonrisa: "El hardware se puede patear; el software, solo maldecir."