En este artículo explico qué ocurre cuando aplicas repetidamente manifests parciales con Server-Side Apply de Kubernetes y qué pasa si omites campos que antes gestionaba un field manager. Esta cuestión es crítica al desarrollar controladores porque una suposición equivocada puede provocar eliminaciones involuntarias de campos y errores que dañen recursos.
Resumen breve de la conducta observada: si un field manager aplicó previamente un campo y en una aplicación posterior omite ese mismo campo, Kubernetes interpreta que el manager ya no desea gestionarlo. Si ningún otro manager reclama la propiedad del campo, Server-Side Apply elimina el campo del objeto en vivo o lo restablece a su valor por defecto. Esto es parte de la gestión declarativa de la propiedad de campos y evita que queden campos huérfanos indefinidamente.
Experimento simplificado con un recurso Cat: Paso 1 Aplicación inicial con solo spec.breed realizada por el manager cat-owner. Resultado managedFields registra a cat-owner como propietario de spec.breed y el recurso contiene breed. Paso 2 Aplicación posterior con solo spec.color usando el mismo manager cat-owner pero sin incluir spec.breed. Resultado spec.breed desaparece del objeto y managedFields ahora muestra que cat-owner gestiona spec.color. Conclusión cat-owner al omitir spec.breed indicó que ya no lo gestiona, y al no existir otros propietarios, Kubernetes eliminó ese campo.
Explicación técnica: Server-Side Apply mantiene un registro de ownership por campo en managedFields. Una nueva Apply reemplaza la visión declarativa del manager para ese campo. Si en la nueva manifest un manager ya no incluye un campo que antes poseía, esa omisión se interpreta como renuncia a la propiedad. Si no hay otros owners, el campo se limpia. Este comportamiento se aplica también a elementos de listas asociativas y mapas.
Comportamiento con múltiples managers: la colaboración entre varios field managers funciona de forma segura. Si otro manager solicita ownership de campos distintos, no interferirá con campos que pertenecen a otro manager. Por ejemplo, si desde el estado donde solo existe spec.color aparece age-controller aplicando spec.age, el recurso conservará tanto color como age y managedFields reflejará ambos propietarios.
Consejos prácticos para desarrolladores de controladores: 1 Incluir siempre en cada Apply todos los campos que tu controlador debe seguir gestionando para evitar eliminaciones accidentales. 2 Utilizar FieldOwner de manera consistente y entender la propiedad por campo en managedFields. 3 Si necesitas preservar campos ajenos, no intentes reemplazarlos; deja que su manager los maneje o coordina mediante contratos explícitos. 4 Considerar el uso de estrategias auxiliares para merges si tu diseño requiere actualizar solo fragmentos sin renunciar a la propiedad.
Importancia para equipos y empresas: comprender esta especificación de Server-Side Apply es vital al construir infraestructuras con varios controladores, CI CD y operadores que colaboran sobre los mismos recursos Kubernetes. En Q2BSTUDIO, empresa especializada en desarrollo de software a medida y aplicaciones a medida, ayudamos a diseñar controladores y arquitecturas seguras que evitan este tipo de errores y aprovechan prácticas recomendadas de automatización.
Servicios y competencias: en Q2BSTUDIO ofrecemos desarrollo de software a medida, soluciones de inteligencia artificial e ia para empresas, consultoría en ciberseguridad y pentesting, y migraciones y gestión de infraestructura en servicios cloud aws y azure. Si buscas potenciar la inteligencia de negocio con Power BI o crear agentes IA personalizados contamos con experiencia en servicios inteligencia de negocio y agentes IA para automatizar flujos y extraer valor de tus datos.
Si necesitas desarrollar controladores, operadores o aplicaciones empresariales seguras y escalables, en Q2BSTUDIO diseñamos soluciones a medida que incluyen prácticas de Server-Side Apply correctas y pruebas para evitar pérdidas de datos. Conoce nuestros servicios de desarrollo en desarrollo de aplicaciones y software a medida y nuestras ofertas de nube y despliegue en servicios cloud AWS y Azure.
Palabras clave integradas naturalmente: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi.
Conclusión: la desaparición de campos al usar Partial Server-Side Apply no es un bug sino un comportamiento deliberado que refuerza la gestión declarativa. Diseña tus manifests y managers teniendo en cuenta la completitud por owner para gestionar recursos de forma segura y colaborativa.