Del Caos al Control: transforma tus Actualizaciones con Updatecli

Rossana SuarezRossana Suarez
5 min read

Automatiza tus upgrades como un verdadero equipo.
📈 Aumenta la frecuencia de actualizaciones, reduce errores humanos y elimina la deuda técnica silenciosa.


😫 El punto de quiebre

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.

🔍 La búsqueda de una solución

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.

🚀 ¿Qué es 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.

🔁 ¿Qué hace por nosotros?

  • 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

🛠️ Cómo lo usamos

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

Un ejemplo simplificado:

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. 🎯

📈 Impacto real

Desde que integramos Updatecli:

ResultadoAntesAhora
Tiempo de actualización por repo~2 días~15 minutos
Tareas manuales por semana+30<5
Coordinación por SlackConstanteCasi nula
PRs automáticos por semana0+20
Errores por inconsistenciasFrecuentesMuy raros

🔄 Transformación cultural

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.

💬 Lo que antes eran mensajes en Slack…

"Che, ¿actualizaste la versión de esa imagen?"
"¿Cuál es la versión que deberíamos usar en dev?"
"¿Por qué no subió a prod si ya estaba en main?"

Ahora son PRs automáticos con contexto, trazabilidad y revisiones claras.

🧠 Lo que aprendimos

📌 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.


⚡ Quick Start: Probá Updatecli en minutos

🚧 Requisitos


📁 Escenario

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

🧬 Manifiesto de Updatecli

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

🏃 Ejecutar Updatecli

Usá estos comandos desde tu terminal:

  • Para ver qué cambiaría:
updatecli diff --config manifest.yaml

  • Para aplicar el cambio:
updatecli apply --config manifest.yaml

🔁 ¡Y listo! En minutos, podés tener tus archivos actualizados sin intervención manual.

🚀 Automatizando con GitHub Actions

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:

Update automático del chart:

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.


🔚 Conclusión: Automatizar para liberar, escalar para transformar

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.

0
Subscribe to my newsletter

Read articles from Rossana Suarez directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Rossana Suarez
Rossana Suarez

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 🔥