Skip to main content
From our previous article about Meta reference source introduction, once you centralise reference data, the next challenge is keeping it accurate. Upsun supports a large and evolving ecosystem of runtimes, services, and regions. Tracking upstream releases, supported versions, and deprecated images manually quickly becomes unsustainable. This is where our internal tool named Meta Version Updater comes in.

The challenge: staying in sync with reality

Today, Upsun manages:
  • 23 services
  • 9 runtimes
  • 15 public regions
  • PHP extensions from PHP 5.4 up to PHP 8.5
Each of these evolves independently, driven by:
  • Official upstream releases
  • Security and maintenance policies
  • Internal build pipelines
  • Git branches representing supported versions
Before Meta Version Updater:
  • Engineers manually cross-checked multiple sources
  • Updates required hand-edited files
  • Documentation changes meant additional pull requests
  • Drift between reality and documentation was hard to detect

Introducing Meta Version Updater

Meta Version Updater is an internal automation tool designed to continuously reconcile what exists with what we support. Screenshot of the Meta Version Updater interface At a high level it:
  • Collects official upstream versions
  • Compares them with Upsun-supported images (Git branches)
  • Detects missing, outdated, or deprecated versions
  • Updates Meta and documentation through automated pull requests
Beyond automating version management, this tool enables us to keep track of official releases. By monitoring new versions as they become available, we can make informed decisions about where to invest our efforts to provide timely access to the most valuable updates for our users.

Technical stack

Meta Version Updater relies on a modern and efficient technical stack:
  • Node.js v24: The main engine of the application, providing speed and compatibility with the latest JavaScript features.
  • PostgreSQL 18: A robust relational database to store metadata, versioning, and update history.
Allocated resources:
  • Application: 0.5 CPU, 0.218 GB RAM, 500MB disk space
  • Database: 0.5 CPU, 1.375 GB RAM, 500MB disk space
This configuration ensures smooth operation, fast data ingestion, and the ability to scale as Upsun’s ecosystem grows. Resources used by the Meta Version Updater tool By leveraging Upsun, we were able to deliver this tool much faster and with greater agility. The platform’s flexibility and automation capabilities allowed us to focus on core features and respond quickly to evolving requirements.

Nightly ingestion pipeline (high level)

Every night, Meta Version Updater ingests data from multiple sources:
  1. Official upstream versions
    • Runtime and service release sources
    • Used as the reference for what could be supported
  2. Upsun internal repositories
    • Git branches represent supported versions
    • Missing branches highlight unsupported or pending versions
  3. Upsun APIs
    • Regions are fetched directly from the Upsun API
    • IP addresses are added manually where required

What gets updated automatically

The tool produces structured updates for:

Human review stays in the loop

Automation does not remove humans from the process. For every detected change, Meta Version Updater:
  • Opens pull requests automatically
  • Targets:
    • upsun/meta
    • platformsh/docs
  • Highlights diffs and version changes clearly
This guarantees:
  • Reviewability
  • Traceability
  • Intentional changes only

Detecting drift before it hurts

One of the most valuable outcomes is early drift detection:
  • Official versions exist but no internal branch → missing support
  • Supported versions without upstream maintenance → deprecation candidates
  • Documentation inconsistencies → caught before release
This gives teams a clear, actionable view of platform support.

What’s coming next: Slack summaries via n8n

We’re extending the workflow further. An n8n-based automation is currently in development to:
  • Send Slack notifications when a PR with image updates is opened
  • Post a human-friendly summary of changes
  • Improve visibility across internal teams
The goal is straightforward: make changes visible, understandable, and actionable—without manual coordination.
Last modified on April 20, 2026