pgedge
pgEdge kernel template for distributed multi-master PostgreSQL in edge scenarios
The pgedge configuration template replaces native PostgreSQL with the pgEdge kernel and provides distributed, multi-master capabilities for edge deployments.
For the full guide, see: pgEdge kernel guide
Overview
- Config name:
pgedge - Node count: Single node
- Description: pgEdge (PG17) distributed kernel template
- Supported OS:
el8,el9,el10,d12,d13,u22,u24 - Supported arch:
x86_64,aarch64 - Related templates:
meta,pgsql
Enable with:
./configure -c pgedge [-i <primary_ip>]
Template Content
Source: pigsty/conf/pgedge.yml
---
#==============================================================#
# File : pgedge.yml
# Desc : 1-node pgEdge (Distributed PG) template
# Ctime : 2026-02-26
# Mtime : 2026-02-26
# Docs : https://pigsty.io/docs/conf/pgedge
# License : Apache-2.0 @ https://pigsty.io/docs/about/license/
# Copyright : 2018-2026 Ruohang Feng / Vonng ([email protected])
#==============================================================#
# This is the config template for pgEdge Kernel,
# Which is a PostgreSQL 17 compatible fork.
# tutorial: https://pigsty.io/docs/pgsql/kernel/pgedge
#
# Usage:
# curl https://repo.pigsty.io/get | bash
# ./configure -c pgedge
# ./deploy.yml
all:
children:
infra: { hosts: { 10.10.10.10: { infra_seq: 1 }} ,vars: { repo_enabled: false }}
etcd: { hosts: { 10.10.10.10: { etcd_seq: 1 }} ,vars: { etcd_cluster: etcd }}
#minio: { hosts: { 10.10.10.10: { minio_seq: 1 }} ,vars: { minio_cluster: minio }}
#----------------------------------------------#
# pgEdge Database Cluster
#----------------------------------------------#
pg-meta:
hosts:
10.10.10.10: { pg_seq: 1, pg_role: primary }
vars:
pg_cluster: pg-meta
pg_users:
- {name: dbuser_meta ,password: DBUser.Meta ,pgbouncer: true ,roles: [dbrole_admin] ,comment: pigsty admin user }
- {name: dbuser_view ,password: DBUser.Viewer ,pgbouncer: true ,roles: [dbrole_readonly] ,comment: read-only viewer for meta database }
pg_databases:
- {name: meta ,baseline: cmdb.sql ,comment: pigsty meta database ,schemas: [pigsty] ,extensions: [spock, snowflake, lolor]}
pg_hba_rules: # https://pigsty.io/docs/pgsql/config/hba
- { user: all ,db: all ,addr: intra ,auth: pwd ,title: 'everyone intranet access with password' ,order: 800 }
pg_crontab: # https://pigsty.io/docs/pgsql/admin/crontab
- '00 01 * * * /pg/bin/pg-backup full'
# pgEdge Ad Hoc Settings
pg_mode: pgedge # pgEdge compatible mode
pg_packages: [ pgedge, pgsql-common ] # install pgEdge kernel package + common utils
pg_extensions: [ spock, snowflake, lolor ] # ensure pgEdge extension packages are installed
pg_libs: 'spock, lolor, pg_stat_statements, auto_explain' # preload required libs for pgEdge logical replication
vars:
#----------------------------------------------#
# INFRA : https://pigsty.io/docs/infra/param
#----------------------------------------------#
version: v4.2.0 # pigsty version string
admin_ip: 10.10.10.10 # admin node ip address
region: default # upstream mirror region: default,china,europe
infra_portal: # infra services exposed via portal
home : { domain: i.pigsty } # default domain name
#----------------------------------------------#
# NODE : https://pigsty.io/docs/node/param
#----------------------------------------------#
nodename_overwrite: false # do not overwrite node hostname on single node mode
node_repo_modules: node,infra,pgsql # add these repos directly to the singleton node
node_tune: oltp # node tuning specs: oltp,olap,tiny,crit
#----------------------------------------------#
# PGSQL : https://pigsty.io/docs/pgsql/param
#----------------------------------------------#
pg_version: 17 # pgEdge kernel is compatible with postgres 17
pg_conf: oltp.yml # pgsql tuning specs: {oltp,olap,tiny,crit}.yml
#----------------------------------------------#
# PASSWORD : https://pigsty.io/docs/setup/security/
#----------------------------------------------#
grafana_admin_password: pigsty
grafana_view_password: DBUser.Viewer
pg_admin_password: DBUser.DBA
pg_monitor_password: DBUser.Monitor
pg_replication_password: DBUser.Replicator
patroni_password: Patroni.API
haproxy_admin_password: pigsty
minio_secret_key: S3User.MinIO
etcd_root_password: Etcd.Root
...
Notes
The pgedge template enables pg_mode: pgedge in pg-meta and pre-installs pgEdge core extensions for logical replication and edge distribution.
Key features:
- Uses
pgedgekernel package (PG17-compatible) - Installs
spock,snowflake,lolorextensions by default - Preloads
spockandlolorfor multi-master setup readiness - Keeps Pigsty standard backup, monitoring, and operations workflow
Typical use cases:
- Multi-region edge deployment with nearby writes
- Multi-master logical replication with conflict handling
- Single-node validation before distributed rollout
Caveats:
- Current template is for single-node kernel validation; production multi-master needs explicit topology and replication strategy planning
- Default is
pg_version: 17; keep consistent with target cluster versions - Evaluate latency and conflict policy before cross-region replication
Feedback
Was this page helpful?
Thanks for the feedback! Please let us know how we can improve.
Sorry to hear that. Please let us know how we can improve.