Skip to content

Pigsty v4.5: 575 Extensions, Kafka, MySQL, Valkey, and Silo

Pigsty v4.5.0 is a feature release spanning data services, the PostgreSQL ecosystem, automation safety, and the software supply chain. It adds Kafka KRaft and MySQL 8.4 pilot modules, adds a Valkey engine to REDIS, converges the MINIO module on Silo, and grows the packaged PostgreSQL extension catalog from 531 to 575.

This full review covers 100 commits, 416 files, 42,058 insertions, and 15,984 deletions from v4.4.0 (2026-07-10) to v4.5.0 (dab5dba3, 2026-08-14). See the complete source diff at v4.4.0...v4.5.0. A substantial share of the structured diff comes from re-exporting the entire Grafana dashboard set to Dashboard API v2.

Release Highlights

  • 575 PostgreSQL extensions: 46 entries added and 2 removed, for a net gain of 44. Many Rust extensions move to pgrx 0.19.1, with synchronized RPM/DEB coverage and package-name mappings.
  • Kafka KRaft module: Native Kafka orchestration with multi-cluster support, dynamic enrollment and retirement, SCRAM-SHA-512/TLS, credential rotation, health gates, monitoring, alerting, and four Grafana dashboards.
  • MySQL 8.4 module: Standalone and three-node InnoDB Cluster deployments with MySQL Router, XtraBackup, account and database provisioning, parameter protection, monitoring, alerting, and conservative retirement workflows.
  • Valkey and Silo: REDIS adds redis_type: valkey; MINIO now accepts only minio_type: silo. The RustFS backend developed during this cycle was withdrawn before the final baseline.
  • Safer cluster orchestration: PGSQL, REDIS, MINIO, KAFKA, and MYSQL select members by explicit cluster identity. etcd delegation, DBSU key exchange, PITR, backup markers, and removal workflows are tightened as well.
  • Observability upgrades: New Kafka and MySQL dashboards, MinIO/Silo Metrics V3, and pg_exporter 1.4-series configuration with PG19, transaction-age, lock, replication, and cleanup-pressure coverage.
  • Repository and supply-chain upgrades: SOW now generates local repositories atomically without fabricated ModuleMD. Offline bundles can carry versioned source archives. Infra repackaging standardizes SHA-256-pinned inputs, SPDX licenses, and the 1PGSTY release suffix.
  • 51 standalone configuration templates: Adds demo/kafka, demo/mysql, and the eight-node ha/octo simulation, while updating ha/trio to a compact three-node Silo HA topology.

Kafka KRaft Pilot Module

The new Kafka module uses node state as the source of truth and manages brokers and controllers with dynamic KRaft. It supports multiple Kafka clusters in one inventory and unbounded kafka.yml runs; incomplete --limit selections are rejected to avoid updating only part of the quorum.

  • Nodes persist authoritative manifests and secrets, supporting dynamic controller joins, broker admission, member retirement, and three-stage failed-member replacement.
  • SCRAM-SHA-512, TLS, certificate rotation, and credential rotation are supported, followed by partition-health and protocol self-tests.
  • kafka-rm.yml requires a non-empty -l/--limit and validates absolute data paths, target identity, and the surviving anchors needed for partial retirement before stopping services.
  • Adds JMX Exporter, Kafka Exporter, Victoria scrape and alert rules, plus Overview, Instance, Topic, and Consumer Grafana dashboards.

Kafka remains a pilot module. Clients must resolve and reach every broker directly; do not put the Kafka data plane behind HAProxy, a VIP, or a conventional L4 load balancer.

MySQL 8.4 Pilot Module

The new MySQL module targets a fixed MySQL 8.4 LTS platform. It supports a standalone instance or a three-node InnoDB Cluster and includes MySQL Shell, MySQL Router, TLS, user/database provisioning, scheduled full XtraBackup backups, and unified monitoring.

  • Initialization validates exactly one or three members, creates the cluster, coordinates Router, and handles existing members and partial states idempotently.
  • mysql_parameters protects replication, TLS, and platform-reserved settings; loose_, skip_, disable_, and enable_ prefixes cannot bypass the guardrails.
  • mysql_databases accepts only name, encoding, and collate; databases are created with DEFAULT ENCRYPTION='N'.
  • Removal validates the target, quorum, and member state before isolation, shutdown, and cleanup. Unlike other modules, mysql-rm.yml fails closed when a selected host has no MySQL identity.
  • Adds Overview, Cluster, Instance, Replication, and Alert Grafana dashboards plus mysqld_exporter alerts.

Valkey, Silo, and Mongo Mode

Redis / Valkey

REDIS keeps Redis as the default engine and can select Valkey explicitly with redis_type: valkey. Valkey uses the valkey-server and valkey-cli packages, while configuration paths, monitoring jobs, service interfaces, and module parameters retain redis names for compatibility with existing inventories and dashboards.

Redis/Valkey systemd units now use Type=notify with a 1,800-second startup timeout. Topology validation, primary/replica relationships, password handling, tag-scoped removal, and rebuild protection are also strengthened.

MINIO / Silo

MINIO remains the compatibility module name, but the v4.5 role deploys Silo and only Silo; silo is the sole valid minio_type. Silo preserves the S3/Admin APIs, /minio/* routes, MINIO_* environment variables, and existing disk format, while the package, binary, and systemd service are now named silo.

  • Startup checks the systemd Invocation ID, ActiveState=active, and Silo cluster health, waiting up to roughly 600 seconds so stale process state is not mistaken for a successful restart.
  • Object-storage members are grouped by minio_cluster, independent of the inventory group name. Multi-cluster inventories should use distinct minio_alias, minio_domain, and minio_endpoint values.
  • ha/trio changes from single-node object storage to three single-disk Silo members with EC:1, exposed on port 9002 through VIP and HAProxy. The template declares all three default users explicitly so configure -g produces consistent S3 credentials.
  • Distributed Silo requires /data/minio to be a separate filesystem; Silo rejects an ordinary directory on the root filesystem.
  • A RustFS backend was added during development and fully withdrawn from the final source. Infra repositories may still carry RustFS or MinIO packages, but neither is a supported v4.5 MINIO backend.

PostgreSQL Mongo Mode

The standalone FERRET role and mongo.yml playbook are removed. Their function is split between PostgreSQL Mongo mode and the FerretDB Docker APP: PostgreSQL/DocumentDB provides the data layer, and FerretDB in Docker Compose provides the MongoDB protocol layer. Pigsty no longer ships the old FerretDB systemd service, dedicated scrape configuration, or Mongo dashboards.

Orchestration, Security, and Lifecycle

  • deploy.yml, slim.yml, and the PGSQL, REDIS, MINIO, KAFKA, and MYSQL initialization playbooks skip unrelated hosts by their respective *_cluster identities. PGSQL, REDIS, MINIO, and KAFKA removal playbooks apply the same rule.
  • PGSQL configuration, PITR, and removal delegate only when a canonical, non-empty etcd group exists. DBSU SSH keys are exchanged among actual pg_cluster_members, including cross-inventory-group topologies such as Citus.
  • PITR and removal delete only etcd subtrees bounded by /<cluster>/, avoiding accidental deletion when one cluster name prefixes another. The initial pgBackRest backup writes initial.done only after the command succeeds.
  • Removal workflows stop services before cleaning data. Kafka, MySQL, and object storage add directory, quorum, surviving-member, and cluster-identity checks.
  • A full pgsql.yml run is now explicitly described as initialization-only: it restarts Patroni/PostgreSQL and reapplies managed configuration and bootstrap SQL, so it is not a routine convergence command for initialized clusters.
  • Pigsty-rendered systemd units live under /etc/systemd/system; permissions are tightened for sensitive configuration, environment files, keys, and privileged scripts. Debian/Ubuntu package installation suppresses premature starts of Silo, Redis/Valkey, and legacy logging services.
  • HAProxy uses a fixed /etc/haproxy/haproxy.cfg plus /etc/haproxy/conf.d layout, upstream master-worker mode, a master socket, and Type=notify. dnsmasq uses dynamic binding, answers private PTR locally, and handles node addresses that appear only after INFRA initialization.
  • Debian/Ubuntu time sync writes the native /etc/chrony/chrony.conf, while EL continues to use /etc/chrony.conf. During initial synchronization, offsets greater than ten seconds may step within the first 120 updates.

PostgreSQL Kernels and Extensions

  • Default PostgreSQL updates to 18.6 with the repositories. The four standard Patroni templates add an output_plugin_libraries allowlist for pgoutput, test_decoding, and wal2json; Patroni filters unsupported settings on older versions.
  • The PostgreSQL 19 beta template gains pgBackRest 2.59 and scheduled backup support. It still installs no extensions by default and remains a PG19 trial template.
  • Percona PostgreSQL 18 TDE uses cluster mode and keeps Pigsty’s private installation prefix to avoid collisions with native PostgreSQL.
  • IvorySQL gains default-database initialization and compatible WAL compression in the standard workload templates.
  • The PostgreSQL fact loader, per-platform package_map, and default extension groups are refreshed together, fixing PGDG/YUM names and missing packages.

Comparing the embedded catalog snapshots in Pig v1.5.1 (531 entries) and v1.7.0 (575 entries), this cycle adds 46 extensions and removes 2, for a net gain of 44:

  • 32 primary extensions added: argm, cat_tools, cron_utils, fbsql, oidc_validator, online_advisor, pg_cjk_parser, pg_column_tetris, pg_describe, pg_disorder, pg_fts, pg_jieba, pg_kpart, pg_lake, pg_local_cache, pg_mentat, pg_oidc_validator, pg_policy, pg_roast, pg_tiktoken_c, pg_turbovec, pg_vault_tde, pgcontext, pgfr_record, pgmemento, pgmonitor, pgsqlmock, pgwasm, plruby, plx, postbis, and qdgc.
  • 13 subextensions added: hstore_plruby, jsonb_plruby, ltree_plruby, pg_extension_base, pg_extension_updater, pg_lake_copy, pg_lake_engine, pg_lake_iceberg, pg_lake_table, pg_map, pgcontext_pgvector, pgfr_analyze, and qdgc_postgis.
  • One PGDG extension added: pg_statviz. It remains in the online catalog but is not part of the default installation groups.
  • pg_analytics and spat removed: the former is archived, and the latter is a deprecated alpha project.

In addition, emailaddr, explain_ui, the Rust oidc_validator, pg_summarize, and smlar leave the default installation groups because upstream does not provide a distributable license; packages and catalog records may remain. pg_relation_sql is a standalone SQL toolkit without CREATE EXTENSION support, so it appears in the packaging table but is not counted among the 575 extensions.

Extension Package Update Matrix

The table consolidates RPM and DEB batches after v4.4.0 into one final “old version → final version” row per extension: 207 packaged entries plus two catalog removals. Where RPM and DEB differ, both are shown. An unchanged version can still represent a rebuild or a change in package naming, license metadata, or platform coverage.

The first packaging log after July 10 covers July 7–24 without per-entry dates, so the whole batch is included to avoid omitting post-release pgrx 0.19.1 rebuilds and matrix fixes. The final repository indexes remain authoritative for versions and platform availability.

ExtensionPreviousFinalNotes
ageRPM: 1.7.0RPM: 1.8.0RPM only; PG18 is 1.8.0-rc0, PG17 is 1.7.0
anon3.1.13.1.3pgrx 0.19.1
argm-1.1.1
asn1oidRPM: 1.6RPM: 1.6RPM only; license metadata changed to GPL-3.0-or-later
babelfishpg_money1.1.01.1.0Adds PG18 support
babelfishpg_tds1.0.01.0.0Adds PG18 support
babelfishpg_tsql5.5.05.4.0Catalog version corrected to 5.4.0; PG17–18
biscuit2.4.13.0.0PG16–18; REINDEX is required after upgrading from 2.x
block_copy_command0.1.50.1.5pgrx 0.19.1
cat_tools-0.3.0Pure SQL extension
citus14.1.014.2.0PG16–18; includes citus_columnar; fills EL10/PG14 RPM coverage
convert0.1.00.1.0pgrx 0.19.1
cron_utils-0.1.0Pure SQL extension
dbt20.61.70.61.7Adds DEB PG14–18 and EL8 RPM PG17–18
decoder_raw1.01.0Adds EL10/Debian 13; PG14–16
decoderbufs3.5.0RPM: 3.5.0
DEB: 3.6.0
RPM remains 3.5.0; DEB updates to 3.6.0
documentdb0.1130.114PG15–18; expands to 16 platforms
documentdb_core0.1130.114PG15–18; expands to 16 platforms
documentdb_distributed0.1130.114PG15–18; expands to 16 platforms
documentdb_extended_rum0.1130.114PG15–18; expands to 16 platforms
emailaddr00Removed from default groups because upstream provides no license
emajRPM: -
DEB: 4.7.1
5.0.0RPM package renamed to e-maj, with Provides/Obsoletes for the old emaj name
etcd_fdw0.0.10.0.1pgrx 0.19.1
explain_ui0.0.20.0.2pgrx 0.19.1 rebuild; removed from default groups because upstream provides no license
faker0.5.30.5.3Completes RPM/DEB coverage; Debian 12 and Ubuntu 22.04 use python3-fake-factory 22.0.0
fbsql-0.1.0PG16–18; depends on PL/R
gb18030_20221.01.0IvorySQL 5.4; PG18 only
graph0.1.71.0.0pggraph; pgrx 0.19.1
h34.2.34.2.3Adds EL8 x86_64 / PG17–18 RPM
hdfs_fdw2.3.32.3.3Adds DEB PG14–18
hstore_pllua2.0.122.0.12Adds six EL RPM targets
hstore_plluau2.0.122.0.12Adds six EL RPM targets
http1.7.11.7.2
hunspell_cs_cz1.01.0Consolidated hunspell package; 10 dictionaries
hunspell_de_de1.01.0Consolidated hunspell package; 10 dictionaries
hunspell_en_us1.01.0Consolidated hunspell package; 10 dictionaries
hunspell_fr1.01.0Consolidated hunspell package; 10 dictionaries
hunspell_ne_np1.01.0Consolidated hunspell package; 10 dictionaries
hunspell_nl_nl1.01.0Consolidated hunspell package; 10 dictionaries
hunspell_nn_no1.01.0Consolidated hunspell package; 10 dictionaries
hunspell_pt_pt1.01.0Completes 16-platform coverage; pt_pt.stop avoids a kernel conflict
hunspell_ru_ru1.01.0Consolidated hunspell package; 10 dictionaries
hunspell_ru_ru_aot1.01.0Consolidated hunspell package; 10 dictionaries
imgsmlr1.01.0Adds EL10/Debian 13
ivorysql_ora1.01.0IvorySQL 5.4; PG18 only
jdbc_fdw0.4.00.5.0Package 0.5.0, SQL version 1.2
jsonschema0.1.90.1.9pgrx 0.19.1
mobilitydb1.3.01.3.0Adds six EL RPM targets and Ubuntu 22.04 / PG18 DEB
mobilitydb_datagen1.3.01.3.0Completes RPM/DEB coverage with mobilitydb
nominatim_fdw1.32.1.0
numeralRPM: 1.3RPM: 1.3RPM only; renamed postgresql-numeral; license metadata changed to GPL-2.0-or-later
odbc_fdw0.5.10.6.1Package 0.6.1, SQL version 0.5.2
ogr_fdw1.1.81.1.9
oidc_validator-0.1.0PG18 only; removed from default groups because upstream provides no license
omni0.2.140.2.14EL10 supports PG14–18; other existing targets are PG18 only
online_advisor-1.0
ora_btree_gin1.01.0IvorySQL 5.4; PG18 only
ora_btree_gist1.01.0IvorySQL 5.4; PG18 only
pg_ai_queryRPM: 0.1.1RPM: 0.1.1EL9/10 RPM only; requires GCC 13 / OpenSSL 3
pg_analytics0.3.7-Upstream archived; removed from the packaged extension catalog
pg_base580.0.10.0.1pgrx 0.19.1
pg_bestmatch0.0.20.0.2pgrx 0.19.1
pg_cardano1.2.01.2.0pgrx 0.19.1; PG15–18
pg_cjk_parser-0.1.0
pg_clickhouse0.3.20.10.0
pg_column_tetris-0.1.0Pure SQL
pg_command_fw0.1.00.1.0pgrx 0.19.1; PG15–18
pg_csvRPM: 1.0.1RPM: 1.0.2Adds RPM; package 1.0.2, SQL version 1.0.1
pg_dbms_errlog2.22.4
pg_dbms_job2.02.0Adds DEB package
pg_dbms_lock2.02.0Adds DEB package
pg_dbms_metadata1.0.01.0.0Adds DEB plus EL8 aarch64 / PG15 RPM
pg_describe-1.0.0PG17–18
pg_disorder-0.1.0
pg_durable0.2.20.2.3pgrx 0.19.1
pg_enigma0.5.00.5.0pgrx 0.19.1
pg_eviltransform0.0.20.0.4pgrx 0.19.1
pg_extension_base-3.4pg_lake 3.4 subextension; PG16–18; RPM only on EL9/10
pg_extension_updater-3.4pg_lake 3.4 subextension; PG16–18; RPM only on EL9/10
pg_fact_loader2.0.12.0.1U26 DEB
pg_failover_slots1.2.11.2.1Requires preload; license metadata changed to PostgreSQL
pg_fts-0.2.0PG17–18
pg_geohash1.01.0Fixes SQL filename and target PostgreSQL ABI; license metadata changed to MIT
pg_get_functiondef1.01.0IvorySQL 5.4; PG18 only
pg_graphql1.6.11.6.1pgrx 0.19.1
pg_idkit0.4.00.4.0pgrx 0.19.1
pg_ivm1.141.15
pg_jieba-1.1.0Package 2.0.1, SQL version 1.1.0
pg_jsonschema0.3.40.3.4pgrx 0.19.1
pg_kazsearch2.2.02.3.0pgrx 0.19.1; PG16–18
pg_kpart-1.0
pg_lake-3.4PG16–18; RPM only on EL9/10
pg_lake_copy-3.4pg_lake 3.4 subextension; PG16–18; RPM only on EL9/10
pg_lake_engine-3.4pg_lake 3.4 subextension; PG16–18; RPM only on EL9/10
pg_lake_iceberg-3.4pg_lake 3.4 subextension; PG16–18; RPM only on EL9/10
pg_lake_table-3.4pg_lake 3.4 subextension; PG16–18; RPM only on EL9/10
pg_later0.4.00.4.0pgrx 0.19.1
pg_local_cache-1.3.0Requires preload; single-primary only
pg_map-3.4pg_lake 3.4 subextension; PG16–18; RPM only on EL9/10
pg_mentat-1.5.7
pg_mooncake0.2.00.2.0pgrx 0.19.1
pg_net0.20.3EL8/9, U22: 0.9.2
Others: 0.20.5
EL8/9 and Ubuntu 22.04 remain on 0.9.2; other targets use 0.20.5
pg_oidc_validator-1.1.0PG18 only; adds discovery_url_override; RPM only on EL10
pg_parquet0.5.10.5.1pgrx 0.19.1
pg_partmanRPM: 5.4.0
DEB: 5.4.2
5.5.0DEB package is postgresql-PGVERSION-partman
pg_pinyin0.0.40.0.5pgrx 0.19.1
pg_policy-0.1.0Pure SQL
pg_polyline0.0.10.0.1pgrx 0.19.1
pg_rational0.0.20.0.3RPM built by Pigsty; DEB from PGDG
pg_readme0.7.0RPM: 0.7.0
DEB: 0.7.1
RPM remains PGDG 0.7.0; DEB 0.7.1 includes test subextensions
pg_relation_sql-0.2.2Standalone SQL toolkit without CREATE EXTENSION; excluded from the 575 count
pg_render0.1.30.1.3pgrx 0.19.1
pg_rewrite2.0.02.2RPM/DEB package name standardized as postgresql-PGVERSION-pg-rewrite
pg_roast-1.0
pg_rrf0.0.30.0.3pgrx 0.19.1
pg_search0.24.00.25.2PG15–18; pgrx 0.19.1; requires preload; adds pgvector/OpenBLAS dependencies
pg_session_jwt0.5.00.5.0pgrx 0.19.1
pg_smtp_client0.2.10.2.1pgrx 0.19.1
pg_squeeze1.9.21.9.4
pg_statement_rollback1.51.6
pg_statviz-RPM: 0.9
DEB: 1.1
Not in default groups; RPM 0.9 and DEB 1.1 have different coverage
pg_strict1.0.51.0.5pgrx 0.19.1
pg_strom6.16.1EL10 x86_64 / PG14 only; extension SQL version 3.5
pg_summarize0.0.10.0.1pgrx 0.19.1 rebuild; removed from default groups because upstream provides no license
pg_tde2.12.2Percona; PG17–18
pg_tiktoken0.0.10.0.1pgrx 0.19.1
pg_tiktoken_c-1.1
pg_tokenizer0.1.10.1.1pgrx 0.19.1
pg_trickle0.81.00.81.0pgrx 0.19.1; PG18
pg_turbovec-1.29.0pgrx 0.19.1
pg_uuid_v81.0.01.1.0Includes the 1.0-to-1.1 upgrade script
pg_vault_tde-1.7.0PG17–18; requires preload; RPM only on EL9/10
pg_wait_samplingRPM: 1.1.11RPM: 1.1.11Adds RPM; package 1.1.11, SQL version 1.1
pg_when0.1.90.1.10Packaging moves to pgrx 0.19.1
pgactiveDEB: 2.1.7DEB: 2.1.7DEB only; fixes PG14–18 builds
pgauditlogtofile1.8.41.8.5
pgautofailover2.22.2Adds six EL / PG18 RPM targets
pgbouncer_fdw1.4.01.4.0Adds DEB package
pgbson2.0.22.1.0RPM package is postgresbson; DEB source package is postgresbson
pgclone4.3.24.4.2
pgcontext-0.2.0PG17–18; pgrx 0.19.1; optional pgvector compatibility bridge
pgdd0.6.10.6.1pgrx 0.19.1
pgedgeRPM: 18.4RPM: 18.4RPM only; fixes PG15–18 ABI
pgextwlist1.191.20
pgfr_analyze-2.29.2pg_flight_recorder subextension; PG15–18
pgfr_record-2.29.2pg_flight_recorder; PG15–18
pgl_ddl_deploy2.2.12.2.1Adds PG18 DEB and Ubuntu 26.04 / PG14–17
pglinter2.0.02.0.0pgrx 0.19.1
pglite_fusion0.0.60.0.6pgrx 0.19.1
pglogical_ticker1.4.11.4.1Adds six EL RPM / PG14–17 targets
pgmemcache2.3.02.3.0Adds EL8 aarch64 / PG14–15 RPM
pgmemento-0.7.4Pure SQL extension
pgml2.10.02.10.0Adds EL10, Debian 13, and Ubuntu 26.04; PG14–17
pgmnemo0.12.10.16.1PG17–18; requires pgvector 0.7.0 or later
pgmonitor-2.2.0
pgmp-1.0.6Requires GMP
pgmq1.11.11.12.0
pgmqtt0.3.00.4.1pgrx 0.19.1
pgnodemxRPM: 1.7RPM: 2.0.1RPM only; package 2.0.1, SQL version 2.0; stronger cgroup security
pgpcreRPM: 0.20190509RPM: 0.20190509EL8/9 RPM only
pgrdf0.6.40.6.20pgrx 0.19.1
pgsentinel1.4.1RPM: 1.4.2
DEB: 1.4.0 (U26: 1.4.1)
RPM 1.4.2; DEB 1.4.0; Ubuntu 26.04 uses 1.4.1
pgsmcrypto0.1.10.1.1pgrx 0.19.1
pgspider_ext1.3.01.3.0Adds PG18; DEB supports PG15–18
pgsqlmock-1.0.1
pgwasm-0.1.0
pgx_ulid0.2.30.2.3pgrx 0.19.1
pgzintDEB: -DEB: 0.2.0Debian 13 / Ubuntu 26.04 DEB only; requires Zint 2.14 or later
plisql1.01.0IvorySQL 5.4; PG18 only
pllua2.0.122.0.12Adds six EL / PG18 and EL8 aarch64 / PG14–15 RPM targets
plpgsql_check2.9.22.10.4Preload becomes optional
plproxy2.11.02.12.0
plprql18.0.118.0.1pgrx 0.19.1
plruby-2.5.0Includes jsonb_plruby, hstore_plruby, and ltree_plruby
plx-1.3.1
polardb-1717.10.1.0-1PIGSTY17.10.1.0-2PGSTYPG17 rebuild; release suffix standardized from PIGSTY to PGSTY
polarstore1.2.42-1PIGSTY1.2.42-2PGSTYRebuild; release suffix standardized from PIGSTY to PGSTY
postbis-1.0Includes PG14–18 compatibility patch
powa5.1.2RPM: 5.1.0
DEB: 5.2.0
DEB is 5.2.0; RPM remains 5.1.0
pre_prepareRPM: 0.9RPM: 0.9RPM only; license metadata changed to PostgreSQL
provsql1.10.01.12.0
q3cRPM: 2.0.2
DEB: 2.0.4
2.0.5Final RPM and DEB are both PGDG 2.0.5
qdgc-0.1.0Includes qdgc_postgis subextension
rdf_fdw2.6.02.7.0
rdkit202503.6202503.6Platforms retain either 202303.3 or 202503.6; runtime versions are not unified
re20.3.00.4.1PG16–18
smlar1.01.0Removed from default groups because upstream provides no license
snowflake2.42.5.0pgEdge; PG15–18
spat0.1.0a4-Deprecated upstream alpha project; removed from the packaged extension catalog
spock5.0.65.0.10pgEdge; PG15–18
sqlite_fdw2.5.02.5.0Adds PG18; EL8 uses the system SQLite
sslutils1.41.4Adds EL8 dual-architecture / PG18 RPM
system_statsDEB: 4.0DEB: 4.1DEB only; covers 10 DEB targets
tdigest1.4.31.4.4
timescaledb2.28.22.29.1PG16–18
timescaledb_toolkit1.23.01.23.0pgrx 0.19.1; PG15–18
timeseriesDEB: 0.2.1DEB: 0.2.1DEB only; fixes partman/cron recommended dependencies and docs
typeid0.3.00.3.0pgrx 0.19.1
tzf0.3.00.3.0pgrx 0.19.1
unit7.107.10License metadata changed to GPL-3.0-or-later
uriRPM: 1.20251029RPM: 1.20251029RPM only; renamed pguri with Provides/Obsoletes for pg_uri
vchord1.1.11.1.1pgrx 0.19.1
vchord_bm250.3.00.3.0pgrx 0.19.1
vector0.8.40.8.6
vectorize0.26.20.26.2pgrx 0.19.1
vectorscale0.9.00.9.0pgrx 0.19.1
wal2mongo1.0.71.0.7Adds PG17–18
wrappers0.6.10.6.2pgrx 0.19.1
zlog1.2.18-1PIGSTY1.2.18-2PGSTYRebuild; release suffix standardized from PIGSTY to PGSTY

Observability

  • The complete Grafana dashboard set is re-exported through the Pig/Grafana tooling as Dashboard API v2. Four Kafka and five MySQL dashboards are added, and links, variables, and layouts are refreshed for Node, PostgreSQL, Redis, and Infra dashboards.
  • MinIO/Silo Overview and Instance dashboards move to Metrics V3. Victoria scrapes /minio/metrics/v3 and drops high-cardinality samples with a non-empty bucket label.
  • pg_exporter configuration updates to 1.4.0 and fixes the duplicate time series produced by the 1.4.1 pg_subrel query.
  • PG19 gains pg_sub_19, pg_recovery_state, pg_wal_19, pg_lock_stat, and pg_vacuum_score collectors. PG10+ gains a pg_xact_age transaction-age histogram, replication-slot idle_timeout, and WAL Receiver connecting state encoding.
  • Kafka JMX/protocol exporters and the MySQL exporter join unified service discovery, Victoria scraping, and alert rules. Journald records without a PRIORITY field are handled safely.

Repositories, Offline Bundles, and Supply Chain

  • REPO and CACHE use sow create --pigsty to generate DNF/APT metadata and the SHA-256 repo_complete marker atomically, without injecting fabricated ModuleMD.
  • module_hotfixes becomes an explicit per-repository choice and is enabled only for EL repositories that must replace system module streams, avoiding indiscriminate DNF module-filter bypasses.
  • If dist/<version>/pigsty-<version>.tgz already exists, cache.yml includes it in the offline repository. It does not implicitly package the current worktree or download source code from the internet.
  • RPM exporter package names change from underscores to hyphens, for example node_exporternode-exporter; unversioned Provides/Obsoletes entries bridge the old names.
  • Local Infra repackaging standardizes the PGSTY vendor, SPDX license expressions, 1PGSTY release suffix, /etc/default/<service> environment files, vendor units under /usr/lib/systemd/system, and legal files under /usr/share/doc/<package>.
  • Simple binary packages use reproducible upstream archives pinned by SHA-256; vendor-native RPM/DEB files retain their original bytes and metadata. Direct artifacts such as Silo, Grafana, Code, Code Server, and Vector gain pinned URLs and checksums.
  • China-region routing is refreshed systematically: operating systems, Docker, Grafana, Percona, MongoDB APT, and uv/PyPI prefer Tencent Cloud; EL/Docker retain Huawei Cloud and Alibaba Cloud fallbacks; MySQL/Kubernetes use USTC; ClickHouse uses Huawei Cloud.

Infra Package Update Matrix

The table consolidates this cycle’s Infra batches into one row per package, showing only the v4.4.0 value, final v4.5.0 value, and essential notes. Intermediate versions are omitted. “Built” or “verified” describes packaging records only; the signed repository index at release time remains authoritative for installable versions.

PackagePreviousFinalNotes
agentsview0.37.50.40.1
claude2.1.2062.1.227
cloudflared2026.7.12026.7.3
code1.128.01.133.0
code-server4.127.04.132.0
codex0.144.10.147.0
crush0.84.00.88.1Compliance rebuild from the official tarball that includes the license
dblab0.43.00.47.4
duckdb1.5.41.5.5
etcd3.6.133.7.1
ferretdb2.7.02.7.0Build chain was temporarily renamed ferretdb2, then restored to ferretdb
grafana13.1.013.1.3Includes security fixes
grafana-infinity-ds3.8.03.11.3
grafana-victorialogs-ds0.29.00.31.0
headscale0.29.20.29.3
jmx-exporter-1.6.0New noarch package
juicefs1.4.01.4.1
k3s-1.36.3Upstream v1.36.3+k3s1
k3s-images-1.36.3Dual-architecture offline images matching k3s exactly
logcli3.6.73.7.6Updated with the Loki component set
loki3.6.73.7.6Updated with the Loki component set
loki-canary-3.7.6New Loki companion component
mcli2026041700000020260806000000.0.0
mcp-toolbox1.6.01.8.0Former genai-toolbox package name and recipe standardized as mcp-toolbox
minio2026061800000020260804000000Repository package retained; no longer a v4.5 MINIO backend
mongodb-exporter0.51.00.52.0
mtail3.0.83.4.7
node-exporter1.11.11.12.1RPM renamed from node_exporter to node-exporter
nodejs24.18.024.19.0Node.js 24 LTS security update
npgsqlrest3.20.03.21.0
opencode1.17.181.18.16
pev21.22.01.23.0
pg-exporter1.3.01.4.1Moves to the 1.4 series with synchronized collector configuration
pg-hardstorage1.0.81.2.1
pg-timetable6.3.07.0.0Major-version upgrade
pgbackrest-exporter0.23.00.24.0
pgschema1.12.01.12.2
pgstream1.1.11.3.1
PGSTY package releasemixed1PGSTYStandardized release suffix for self-built RPM/DEB packages
pig1.5.11.8.0Extension catalog refresh
postgrest14.1416.1Major-version upgrade; minimum PostgreSQL is 14
prometheus3.13.13.13.2Security and stability fixes
promscale0.17.00.17.0Upstream archived; final version retained
promtail3.6.73.6.7Frozen at 3.6.7; Loki 3.7 no longer publishes Promtail updates
rainfrog0.3.190.4.3
rclone1.74.41.75.0
redis-exporter1.86.01.89.0RPM renamed from redis_exporter to redis-exporter
rustfs1.0.0-b81.0.0-rc.1Prerelease package retained in the repository; not a v4.5 MINIO backend
sabiql1.14.01.15.1
sealos5.1.15.0.1Pinned to the last Apache-2.0 stable release
seaweedfs4.394.41
silominio 2026080400000020260806000000.0.0Replaces the MinIO server as the only v4.5 object-storage backend
sow0.2.00.3.0Core REPO/CACHE dependency
stalwart0.16.120.16.17
timescaledb-tools0.19.0-10.19.0-2Includes timescaledb-parallel-copy 0.13.0
uv0.11.280.12.3
v2ray5.51.25.52.0
vector0.56.00.57.0
victoria-logs1.51.01.52.0
victoria-metrics1.147.01.149.0
victoria-metrics-cluster1.147.01.149.0
victoria-traces0.9.40.10.0
vip-manager4.2.05.0.0Major-version upgrade; disabled by default after install; configuration is not backward compatible
vlagent1.51.01.52.0
vlogscli1.51.01.52.0
vmutils1.147.01.149.0
xray26.3.2726.3.27Candidate 26.7.28 update withdrawn; stable release remains 26.3.27

Platforms, Templates, and Release Engineering

  • Recommended platform baselines update to Rocky Linux 9.8/10.2, Debian 12.15/13.6, and Ubuntu 22.04.5/24.04.4/26.04.0. Terraform cloud images and pinned Vagrant box versions are refreshed with them.
  • Vagrant’s root disk becomes configurable through root_disk: 64 GiB by default and 128 GiB for the all, rpm, deb, oss, and pro build matrices. The existing disk setting still means the extra /data disk and defaults to 128 GiB. The vagrant user’s login shell is standardized on Bash.
  • Adds the eight-node ha/octo simulation. ha/trio becomes a three-node Silo deployment behind VIP/HAProxy; demo/minio explicitly selects Silo and narrows its local repository package groups.
  • The safe and demo templates use valid extension aliases. Tuned-profile paths adapt to the operating system, cluster-size comparisons remain compatible with Ansible versions before 2.19, and unused internal flags plus MINIO/INFRA variables are removed.
  • The Docker base image updates to Debian 13.6 and is marked v4.5.0. Image publishing becomes manually triggered and builds from tags.
  • docker/Makefile fixes its data directory at repository-local ./data; make purge no longer accepts an external DATA override and has no countdown.
  • GitHub Actions updates checkout, CodeQL, Docker build/login, and Cosign in bulk. Release, bootstrap, installation, checksum, and build templates tighten parameter and file handling.
  • Release archives generate top-level pigsty.yml from conf/meta.yml, include Kafka/MySQL playbooks, and remove the old Mongo playbook. The signing workflow creates Cosign signatures only for the pigsty-<tag>.tgz source archive, not multi-gigabyte offline bundles.
  • README, SECURITY, CONTRIBUTING, AGENTS, and NOTICE align on v4.5, 575 extensions, Silo, Redis/Valkey, and Mongo mode, with updated 2026 copyright and trademark language.

Compatibility Changes and Upgrade Notes

Before upgrading from v4.4, review these changes carefully:

  1. FERRET split: Remove the old ferretdb systemd service. Deploy the DocumentDB data layer through Mongo configuration mode, then deploy the FerretDB protocol layer with docker.yml / app.yml. The old mongo.yml, mongo_* parameters, and dedicated dashboards are gone.
  2. Silo replaces the MinIO server: minio_type accepts only silo. Protocol and disk-format compatibility do not constitute migration acceptance; validate backups, in-place compatibility, rollback, and real read/write traffic before switching existing object storage.
  3. ha/trio object-storage topology changes: The new template uses three single-disk Silo members. Do not expand an existing single-node pool in place by simply adding two members; create a new cluster and migrate objects.
  4. HAProxy unit changes: Pigsty no longer renders /etc/default/haproxy, though the unit can read it when present. Use EXTRAOPTS only, keep -S /run/haproxy-master.sock, and do not add -f.
  5. Explicit cluster identity: Custom inventories must define pg_cluster, redis_cluster, minio_cluster, kafka_cluster, or mysql_cluster for target hosts. Older inventories that relied only on fixed group names must add these identities.
  6. Full PGSQL playbook is initialization-only: Do not run the complete pgsql.yml against initialized nodes. Use precise tags for routine maintenance; for a full rebuild, validate backups and remove the target member through the formal workflow first.
  7. Valkey is opt-in: Valkey is installed only with redis_type: valkey; module parameters, configuration paths, and monitoring interfaces keep Redis names.
  8. SOW is a core dependency: REPO/CACHE requires SOW 0.3.0. If an old offline bundle or local repository lacks sow, add it from the Pigsty Infra repository first.
  9. Exporter RPM renames: External automation and private repositories should move from old names such as node_exporter and redis_exporter to node-exporter and redis-exporter.
  10. Default extension groups tighten licensing: Environments that depend on emailaddr, explain_ui, oidc_validator, pg_summarize, or smlar must install them explicitly and assess licensing and redistribution boundaries independently.
  11. Docker purge semantics change: make purge directly deletes repository-local ./data; confirm that it contains no container data you need to retain.
  12. Vagrant disk semantics change: root_disk controls the system disk, while disk controls the extra /data disk. Distributed Silo requires the latter to be a real independent mount.

Get v4.5.0

Install on a fresh, supported Linux node:

curl -fsSL https://repo.pigsty.io/get | bash -s v4.5.0
cd ~/pigsty
./bootstrap
./configure
./install.yml

A production upgrade is not an overwrite installation. Read the compatibility changes above, resolve the exact target cluster, backup, inventory identity, and live state, then use an explicit -l scope for check mode or maintenance operations.

Was this page helpful?