102 lines
4.8 KiB
YAML
102 lines
4.8 KiB
YAML
---
|
|
#==============================================================#
|
|
# File : mongo.yml
|
|
# Desc : DocumentDB & FerretDB (MongoDB Compatible) template
|
|
# Ctime : 2025-02-23
|
|
# Mtime : 2026-01-17
|
|
# Docs : https://pigsty.io/docs/ferret
|
|
# License : Apache-2.0 @ https://pigsty.io/docs/about/license/
|
|
# Copyright : 2018-2026 Ruohang Feng / Vonng (rh@vonng.com)
|
|
#==============================================================#
|
|
|
|
# This is the config template for FerretDB & DocumentDB
|
|
# That is a Mongo Wire-Compatible Layer upon PostgreSQL
|
|
# This config template works with PostgreSQL 16, 17, 18
|
|
# tutorial: https://pigsty.io/docs/ferret
|
|
#
|
|
# Usage:
|
|
# curl https://repo.pigsty.io/get | bash
|
|
# ./configure -c mongo
|
|
# ./deploy.yml
|
|
# ./mongo.yml -l ferret
|
|
|
|
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 }}
|
|
|
|
#----------------------------------#
|
|
# FerretDB Database Cluster
|
|
#----------------------------------#
|
|
# ./mongo.yml -l ferret
|
|
ferret:
|
|
hosts:
|
|
10.10.10.10: { mongo_seq: 1 }
|
|
vars:
|
|
mongo_cluster: ferret
|
|
mongo_pgurl: 'postgres://dbuser_dba:DBUser.DBA@10.10.10.10:5432/postgres'
|
|
# mongosh 'mongodb://dbuser_dba:DBUser.DBA@10.10.10.10:27017'
|
|
|
|
#----------------------------------#
|
|
# PGSQL 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 }
|
|
pg_databases:
|
|
- { name: postgres, extensions: [ documentdb, postgis, vector, pg_cron, rum ]} # run on the postgres database
|
|
pg_hba_rules:
|
|
- { user: dbuser_view , db: all ,addr: infra ,auth: pwd ,title: 'allow grafana dashboard access cmdb from infra nodes' }
|
|
- { user: postgres , db: all ,addr: world ,auth: pwd ,title: 'dbsu password access everywhere' }
|
|
- { user: all ,db: all ,addr: localhost ,order: 1 ,auth: trust ,title: 'documentdb localhost trust access' }
|
|
- { user: all ,db: all ,addr: local ,order: 1 ,auth: trust ,title: 'documentdb local trust access' }
|
|
- { user: all ,db: all ,addr: intra ,auth: pwd ,title: 'everyone intranet access with password' ,order: 800 }
|
|
pg_parameters: { cron.database_name: postgres }
|
|
pg_extensions: [ documentdb, postgis, pgvector, pg_cron, rum ]
|
|
pg_libs: 'pg_documentdb, pg_documentdb_core, pg_documentdb_extended_rum, pg_cron, pg_stat_statements, auto_explain'
|
|
pg_crontab: # https://pigsty.io/docs/pgsql/admin/crontab
|
|
- '00 01 * * * /pg/bin/pg-backup full'
|
|
|
|
vars: # global variables
|
|
#----------------------------------------------#
|
|
# INFRA : https://pigsty.io/docs/infra/param
|
|
#----------------------------------------------#
|
|
version: v4.0.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
|
|
node_repo_modules: node,infra,pgsql # add these repos directly to the nodes (consider add 'mongo' too)
|
|
node_tune: oltp # node tuning specs: oltp,olap,tiny,crit
|
|
|
|
#----------------------------------------------#
|
|
# PGSQL : https://pigsty.io/docs/pgsql/param
|
|
#----------------------------------------------#
|
|
pg_version: 18 # default postgres version (16,17,18)
|
|
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
|
|
...
|