Del Caos al Control: transforma tus Actualizaciones con Updatecli

Soy Roxs 👩💻| Software Developer | DevOps | DevSecOps | en @295DevOps 🖼 Content Creator. No se puede crecer si no estas dispuesto a saltar a la zona de peligro 🔥
Search for a command to run...

Soy Roxs 👩💻| Software Developer | DevOps | DevSecOps | en @295DevOps 🖼 Content Creator. No se puede crecer si no estas dispuesto a saltar a la zona de peligro 🔥
Excelente tip, ya se mando el primer update en mi infra de pruebas :D

Cada minuto que un dev espera un pipeline es un minuto de foco perdido. Multiplicalo por cada commit, cada MR, cada persona del equipo... y de repente ese pipeline de 25 minutos es el impuesto más car

Si venís siguiendo mi contenido hace rato, sabés que hay una frase que repito hasta el cansancio: la mejor forma de aprender cloud es rompiendo cosas en la cloud. El problema siempre fue el mismo: par

Si me seguís hace un tiempo ya sabés que estoy metida hasta con todo el power con Kiro IDE: demos, integraciones con GitLab CI, bootcamp y todo lo que se te ocurra. Así que cuando me crucé con este po

Build with fire, deploy with power 🔥

Por @roxsross · roxs.dev Introducción ¿Cuántas veces mergeaste un cambio de infraestructura y te enteraste del problema en producción? ¿Cuántos security groups abiertos al mundo, cuántos IAM con * en

Automatiza tus upgrades como un verdadero equipo.
📈 Aumenta la frecuencia de actualizaciones, reduce errores humanos y elimina la deuda técnica silenciosa.
Imaginá esto:
Un equipo DevOps tratando de mantener actualizado todo el ecosistema. Imágenes Docker, versiones de Helm charts, manifiestos YAML, archivos de configuración… cada uno con su propio ritmo, su propio repositorio y su propia urgencia.
Lo que en teoría eran simples actualizaciones, en la práctica se convertían en:
Calendarios saturados con tareas repetitivas
Coordinación interminable por Slack
Revisiones manuales con riesgo de error
Dificultades para escalar nuevas integraciones
Y lo peor: el trabajo no era visible para todos, lo que generaba fricción entre equipos de desarrollo, operaciones y plataforma.
Necesitábamos algo que:
Detecte automáticamente cambios de versión
Aplique esas actualizaciones en múltiples repos
Cree pull requests automáticos y trazables
Se integre con nuestros flujos CI/CD
Fuera transparente para todo el equipo
Ahí apareció: Updatecli.
Updatecli es una herramienta de automatización de cambios declarativos.
Permite definir, con archivos YAML, reglas para buscar nuevas versiones y aplicar esos cambios donde sea necesario: en Dockerfiles, Helm, YAMLs, Markdown, CI/CD, etc.
Detecta cambios: Nuevas versiones de imágenes, tags, artefactos
Actualiza automáticamente archivos claves en nuestros repos
Abre pull requests con los cambios y el contexto necesario
Se ejecuta como job CI/CD o vía cron en runners compartidos
Creamos pipelines Updatecli en nuestros repos para:
Mantener sincronizadas las versiones de imágenes Docker en los Helm charts
Actualizar configuraciones compartidas en múltiples servicios
Detectar y proponer PRs cuando hay nuevas versiones en nuestras herramientas base
Facilitar upgrades en cascada, sin intervención manual
sources:
dockerTag:
kind: docker
image: ghcr.io/myorg/my-service
tagfilter: '^v'
targets:
valuesYaml:
kind: yaml
file: charts/my-service/values.yaml
key: image.tag
sourceid: dockerTag
Este ejemplo detecta la última imagen publicada y actualiza el values.yaml. El PR lo crea Updatecli solito. 🎯
Desde que integramos Updatecli:
| Resultado | Antes | Ahora |
| Tiempo de actualización por repo | ~2 días | ~15 minutos |
| Tareas manuales por semana | +30 | <5 |
| Coordinación por Slack | Constante | Casi nula |
| PRs automáticos por semana | 0 | +20 |
| Errores por inconsistencias | Frecuentes | Muy raros |
Lo más poderoso no fue solo la herramienta, sino lo que cambió en la cultura:
✔️ De tareas manuales invisibles → a flujos automatizados y visibles
✔️ De depender de un experto → a empoderar a cualquier desarrollador
✔️ De retrabajo constante → a flujos reproducibles y documentados
Updatecli nos ayudó a escalar la operación sin escalar el caos.
"Che, ¿actualizaste la versión de esa imagen?"
"¿Cuál es la versión que deberíamos usar endev?"
"¿Por qué no subió aprodsi ya estaba enmain?"
Ahora son PRs automáticos con contexto, trazabilidad y revisiones claras.
📌 Automatizar no es reemplazar personas.
👉 Es liberar tiempo para tareas que realmente agregan valor.
📌 No hay DevOps sin visibilidad y consistencia.
👉 Updatecli refuerza ambos pilares.
📌 La escalabilidad de un equipo está atada a su capacidad de automatizar.
👉 ¡Y ahora estamos listos para escalar!
Porque automatizar no es solo un lujo. Es una necesidad para escalar.
Instalar Updatecli desde GitHub
Tener un archivo YAML que quieras actualizar (ej: data.yaml)
Definir un manifiesto manifest.yaml
Vamos a actualizar un archivo YAML (data.yaml) que contiene la etiqueta de imagen Docker para Jenkins:
# data.yaml
container:
image: jenkinsci/jenkins
tag: 2.275
Este archivo manifest.yaml contiene:
Source: cómo obtener la nueva versión de Jenkins
Condition: verificar que esa imagen existe en DockerHub
Target: actualizar el archivo si es necesario
name: QuickStart example
sources:
jenkinsVersion:
name: Get the latest Jenkins weekly version
kind: jenkins
spec:
release: weekly
conditions:
dockerimage:
name: Is Jenkins weekly tag published on DockerHub
kind: dockerimage
spec:
image: jenkins/jenkins
targets:
dataFile:
name: Bump Jenkins Docker Image Tag
kind: yaml
spec:
key: container.tag
file: data.yaml
Usá estos comandos desde tu terminal:
updatecli diff --config manifest.yaml

updatecli apply --config manifest.yaml
🔁 ¡Y listo! En minutos, podés tener tus archivos actualizados sin intervención manual.
Repositorio: roxs-updatecli-actions
Usamos Updatecli en un workflow semanal para mantener actualizado el chart de NGINX Ingress:
on:
schedule:
- cron: '0 7 * * 1'
workflow_dispatch:
sources:
chartVersion:
kind: helmchart
spec:
url: https://kubernetes.github.io/ingress-nginx
name: ingress-nginx
targets:
updateChart:
kind: file
spec:
file: applications/ingress-nginx/deploy.sh
matchpattern: CHART_VERSION=.*
replacepattern: CHART_VERSION={{ source "chartVersion" }}
actions:
createPR:
kind: github/pullrequest
title: 'Actualizar NGINX Ingress a versión {{ source "chartVersion" }}'
🔁 Cada semana, Updatecli verifica nuevas versiones y genera un PR automático con el cambio.


Porque en DevOps, escalar no significa trabajar más.
Significa trabajar mejor.
Y para eso, la automatización ya no es una opción. Es el camino.
🎯 Si querés un equipo más ágil, enfocado y feliz, empezá por liberarles del caos.
Y dejá que Updatecli haga la magia detrás de escena.