Pigsty v4.5.0 is a feature release spanning data services, the PostgreSQL ecosystem, safer automation, observability, and the software supply chain. It introduces pilot modules for Kafka KRaft and MySQL 8.4, adds Valkey support to REDIS, converges the MINIO module on Silo, and expands the packaged PostgreSQL extension catalog from 531 to 575.
This release covers 100 commits and 416 files since v4.4.0. See the complete source comparison.
Highlights
- 575 PostgreSQL extensions: 46 additions and 2 removals, for a net gain of 44. Package maps, RPM/DEB coverage, aliases, and a broad set of Rust extensions rebuilt with pgrx 0.19.1 are included.
- Kafka KRaft pilot module: Native multi-cluster orchestration, dynamic controller/broker enrollment and retirement, SCRAM-SHA-512, TLS, credential rotation, lifecycle safety checks, exporters, alerts, and four Grafana dashboards.
- MySQL 8.4 pilot module: Standalone and three-node InnoDB Cluster deployments with MySQL Router, Shell, TLS, XtraBackup, user/database provisioning, conservative reconciliation, alerts, and five Grafana dashboards.
- Valkey and Silo: REDIS now supports
redis_type: valkey. The MINIO module now accepts onlyminio_type: silo; the RustFS backend developed during this cycle was withdrawn before release. - Safer orchestration: PGSQL, REDIS, MINIO, KAFKA, and MYSQL workflows are cluster-identity-aware. etcd delegation, DBSU key exchange, PITR cleanup, backup markers, and destructive removal paths are more tightly bounded.
- Observability refresh: Grafana dashboards move to Dashboard API v2, MinIO/Silo monitoring moves to Metrics V3, and
pg_exportergains PostgreSQL 19, transaction-age, lock, replication, and vacuum-pressure metrics. - Repository and supply-chain work: SOW now generates local RPM/APT repositories atomically, synthetic ModuleMD is removed, package inputs are checksum-pinned, and Pigsty-built Infra packages use SPDX metadata and the
1PGSTYrelease convention. - 51 standalone configuration templates: New Kafka, MySQL, and eight-node HA simulation examples join the existing configuration library.
New data services
Kafka KRaft
The new Kafka module uses node state as the source of truth and supports multiple clusters in one inventory. It manages dynamic quorum joins, broker admission, member retirement, and three-step dead-node replacement. Partial initialization limits are rejected, while kafka-rm.yml requires an explicit non-empty limit and validates data paths and surviving quorum anchors before stopping services.
Kafka remains a pilot module. Clients must resolve and reach every broker directly; the Kafka data plane must not be placed behind HAProxy, a VIP, or a generic L4 load balancer.
MySQL 8.4
The new MySQL pilot module supports either one node or a three-node InnoDB Cluster. It includes MySQL Router and Shell, scheduled XtraBackup full backups, TLS, account and database provisioning, primary-key policy checks, and guarded member removal.
Valkey, Silo, and Mongo mode
- REDIS keeps Redis as the default engine and deploys Valkey only when
redis_type: valkeyis selected. Existing Redis-style configuration paths, service interfaces, and monitoring labels remain compatible. - The MINIO role now deploys Silo as its sole backend. Silo preserves the S3/Admin APIs,
/minio/*routes,MINIO_*environment variables, and compatible disk format, while using thesilopackage, binary, and service. - The standalone FERRET role and
mongo.ymlare removed. Use PostgreSQL Mongo mode for the DocumentDB data layer and the FerretDB Docker app for the MongoDB protocol layer.
PostgreSQL and extensions
- PostgreSQL 18.6 is the default. Standard Patroni templates allow
pgoutput,test_decoding, andwal2jsonthroughoutput_plugin_libraries; Patroni filters the parameter on older PostgreSQL versions. - The PostgreSQL 19 beta template gains pgBackRest 2.59 and scheduled-backup support.
- Percona PostgreSQL 18 TDE uses cluster mode. IvorySQL receives corrected default-database initialization and compatible WAL compression.
- Notable extension upgrades include Citus 14.2.0, pg_search 0.25.2, TimescaleDB 2.29.1, pgvector 0.8.6, DocumentDB 0.114, pg_partman 5.5.0, pgmnemo 0.16.1, plpgsql_check 2.10.4, provsql 1.12.0, and pgbson 2.1.0.
- Notable additions include
pg_lake,pg_local_cache,pg_turbovec,pg_vault_tde,pg_oidc_validator,pg_statviz,pgcontext,pgmemento,pgwasm,plruby,postbis, andqdgc. pg_analyticsandspatare removed from the catalog.emailaddr,explain_ui,oidc_validator,pg_summarize, andsmlarare removed from default install groups because upstream does not provide a redistributable license.pg_relation_sqlis packaged as a standalone SQL toolkit and does not count toward the 575 extensions because it does not supportCREATE EXTENSION.
The full package-by-package RPM/DEB matrix is available in the English release notes and Chinese release notes.
Observability, repositories, and platforms
- Adds four Kafka and five MySQL dashboards and refreshes the Node, PostgreSQL, Redis, and Infra dashboard sets.
- Moves Silo collection to
/minio/metrics/v3and drops high-cardinality bucket samples. - Updates
pg_exporterto the 1.4 series and fixes duplicatepg_subreltime series. - Uses
sow create --pigstyto generate local repositories and SHA-256repo_completemarkers atomically. - Renames exporter RPMs from underscore to hyphen form, such as
node_exporter→node-exporterandredis_exporter→redis-exporter. - Notable Infra updates include etcd 3.7.1, Grafana 13.1.3, VictoriaMetrics 1.149.0, VictoriaLogs 1.52.0, pg-exporter 1.4.1, pg-timetable 7.0.0, PostgREST 16.1, Vector 0.57.0, and SOW 0.3.0.
- Refreshes the validated platform baseline to Rocky Linux 9.8/10.2, Debian 12.15/13.6, and Ubuntu 22.04.5/24.04.4/26.04.0 on both x86_64 and ARM64.
- Vagrant gains a configurable
root_disk(64 GiB by default; 128 GiB in package-build matrices) whilediskcontinues to describe the optional/datadisk.
Important upgrade notes
- Silo replaces the MinIO server:
minio_typeaccepts onlysilo. Protocol and disk-format compatibility do not constitute a tested migration; validate backups, real reads/writes, rollback, and in-place compatibility before switching an existing object-storage deployment. ha/triochanges topology: New deployments use a three-node, single-drive Silo pool with EC:1. An existing single-node pool cannot be expanded into this topology in place; create a new pool and migrate objects.- FERRET is split: Remove the old FerretDB systemd service and redeploy the data and protocol layers through Mongo mode plus the Docker app.
- Explicit cluster identity is required: Custom inventories must define the relevant
pg_cluster,redis_cluster,minio_cluster,kafka_cluster, ormysql_clusteridentity. - Full
pgsql.ymlis for initial bootstrap: It restarts Patroni/PostgreSQL and reapplies managed configuration and bootstrap SQL. Use precise tags for routine maintenance. - HAProxy service semantics changed: Pigsty no longer renders
/etc/default/haproxy, although the unit reads it when present. UseEXTRAOPTS, preserve-S /run/haproxy-master.sock, and do not add-f. - SOW is now a core REPO/CACHE dependency: Older offline repositories may need SOW 0.3.0 before regeneration.
- Exporter RPM names changed: Update private repositories and automation to use the hyphenated package names.
- Docker purge is immediate:
make purgedeletes the repository-local./datadirectory without a countdown. - Vagrant disk variables are distinct:
root_diskcontrols the system disk;diskcontrols the extra/datadisk required by distributed Silo.
Install
For a fresh installation on a supported Linux node:
curl -fsSL https://repo.pigsty.io/get | bash -s v4.5.0
cd ~/pigsty
./bootstrap
./configure
./install.ymlA production upgrade is not an in-place overwrite. Review the compatibility notes, verify backups and live cluster state, and scope every maintenance operation explicitly.
Release assets and signatures
This release provides the source archive plus offline packages for Rocky Linux 9/10, Debian 12/13, and Ubuntu 22.04/24.04/26.04 on both x86_64 and ARM64.
All 16 original assets have matching GPG ASCII detached signatures, for 32 uploaded assets in total. The signing key is published in KEYS:
9592 A7BC 7A68 2E73 3337 6E09 E793 5D8D B9BD 8B20
Verify an asset with:
curl -LO https://raw.githubusercontent.com/pgsty/pigsty/v4.5.0/KEYS
gpg --import KEYS
gpg --verify pigsty-v4.5.0.tgz.asc pigsty-v4.5.0.tgz
grep 'pigsty-v4.5.0.tgz$' checksums | md5sum -c -The uploaded files were reconciled against their local names, byte sizes, and GitHub SHA-256 asset digests before publication.
Contributors
Thanks to @Mosney for the ha/trio MinIO user fix in #773, and to Dependabot for the Docker and GitHub Actions updates in #758 and #757.
Full changelog: v4.4.0...v4.5.0