├── .deepsource.toml ├── .dockerignore ├── .github ├── dependabot.yml └── workflows │ ├── ci.yaml │ └── push.yml ├── .gitignore ├── .golangci.yml ├── .pre-commit-config.yaml ├── README.md ├── bin ├── barman_cron ├── connect ├── restart-haproxy └── restart-repmgrd ├── cmd ├── admin_server │ └── main.go ├── event_handler │ └── main.go ├── failover_validation │ └── main.go ├── flexctl │ ├── backups.go │ └── main.go ├── monitor │ ├── main.go │ ├── monitor_backup_retention.go │ ├── monitor_backup_schedule.go │ ├── monitor_backup_schedule_test.go │ ├── monitor_cluster_state.go │ ├── monitor_dead_members.go │ └── monitor_replication_slots.go ├── pg_unregister │ └── main.go └── start │ └── main.go ├── config ├── haproxy.cfg └── queries.yaml ├── docs ├── capacity_monitoring.md ├── fencing.md ├── manual_failovers.md └── troubleshooting.md ├── fly.toml ├── go.mod ├── go.sum ├── grafanadash.example.json ├── internal ├── api │ ├── handle_admin.go │ ├── handle_databases.go │ ├── handle_event.go │ ├── handle_users.go │ ├── handler.go │ ├── response.go │ └── types.go ├── flybarman │ ├── node.go │ └── node_test.go ├── flycheck │ ├── barman.go │ ├── checks.go │ ├── pg.go │ ├── role.go │ └── vm.go ├── flypg │ ├── admin │ │ └── admin.go │ ├── barman.go │ ├── barman_config.go │ ├── barman_config_test.go │ ├── barman_restore.go │ ├── barman_restore_test.go │ ├── barman_test.go │ ├── config.go │ ├── flypg.go │ ├── flypg_test.go │ ├── haproxy.go │ ├── node.go │ ├── pg.go │ ├── pg_test.go │ ├── readonly.go │ ├── registration.go │ ├── repmgr.go │ ├── repmgr_test.go │ ├── restore.go │ ├── s3_credentials.go │ ├── s3_credentials_test.go │ ├── ssh.go │ ├── state │ │ └── store.go │ ├── zombie.go │ └── zombie_test.go ├── privnet │ └── sixpn.go ├── supervisor │ ├── ensure_kill.go │ ├── ensure_kill_linux.go │ ├── output.go │ ├── process.go │ ├── supervisor.go │ └── utils.go └── utils │ ├── response.go │ └── shell.go ├── pg15 ├── Dockerfile └── Dockerfile-timescaledb ├── pg16 ├── Dockerfile └── Dockerfile-timescaledb ├── pg17 ├── Dockerfile └── Dockerfile-timescaledb └── scripts ├── test_scripts └── config_check.sh └── versioning ├── bump_version.sh ├── changelog.sh ├── generate_docs.sh ├── helpgen.sh ├── semver ├── version.sh └── yank_version.sh /.deepsource.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/.deepsource.toml -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | .git 2 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/.github/dependabot.yml -------------------------------------------------------------------------------- /.github/workflows/ci.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/.github/workflows/ci.yaml -------------------------------------------------------------------------------- /.github/workflows/push.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/.github/workflows/push.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea/ 2 | -------------------------------------------------------------------------------- /.golangci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/.golangci.yml -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/.pre-commit-config.yaml -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/README.md -------------------------------------------------------------------------------- /bin/barman_cron: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/bin/barman_cron -------------------------------------------------------------------------------- /bin/connect: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/bin/connect -------------------------------------------------------------------------------- /bin/restart-haproxy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/bin/restart-haproxy -------------------------------------------------------------------------------- /bin/restart-repmgrd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/bin/restart-repmgrd -------------------------------------------------------------------------------- /cmd/admin_server/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/cmd/admin_server/main.go -------------------------------------------------------------------------------- /cmd/event_handler/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/cmd/event_handler/main.go -------------------------------------------------------------------------------- /cmd/failover_validation/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/cmd/failover_validation/main.go -------------------------------------------------------------------------------- /cmd/flexctl/backups.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/cmd/flexctl/backups.go -------------------------------------------------------------------------------- /cmd/flexctl/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/cmd/flexctl/main.go -------------------------------------------------------------------------------- /cmd/monitor/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/cmd/monitor/main.go -------------------------------------------------------------------------------- /cmd/monitor/monitor_backup_retention.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/cmd/monitor/monitor_backup_retention.go -------------------------------------------------------------------------------- /cmd/monitor/monitor_backup_schedule.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/cmd/monitor/monitor_backup_schedule.go -------------------------------------------------------------------------------- /cmd/monitor/monitor_backup_schedule_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/cmd/monitor/monitor_backup_schedule_test.go -------------------------------------------------------------------------------- /cmd/monitor/monitor_cluster_state.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/cmd/monitor/monitor_cluster_state.go -------------------------------------------------------------------------------- /cmd/monitor/monitor_dead_members.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/cmd/monitor/monitor_dead_members.go -------------------------------------------------------------------------------- /cmd/monitor/monitor_replication_slots.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/cmd/monitor/monitor_replication_slots.go -------------------------------------------------------------------------------- /cmd/pg_unregister/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/cmd/pg_unregister/main.go -------------------------------------------------------------------------------- /cmd/start/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/cmd/start/main.go -------------------------------------------------------------------------------- /config/haproxy.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/config/haproxy.cfg -------------------------------------------------------------------------------- /config/queries.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/config/queries.yaml -------------------------------------------------------------------------------- /docs/capacity_monitoring.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/docs/capacity_monitoring.md -------------------------------------------------------------------------------- /docs/fencing.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/docs/fencing.md -------------------------------------------------------------------------------- /docs/manual_failovers.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/docs/manual_failovers.md -------------------------------------------------------------------------------- /docs/troubleshooting.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/docs/troubleshooting.md -------------------------------------------------------------------------------- /fly.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/fly.toml -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/go.mod -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/go.sum -------------------------------------------------------------------------------- /grafanadash.example.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/grafanadash.example.json -------------------------------------------------------------------------------- /internal/api/handle_admin.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/api/handle_admin.go -------------------------------------------------------------------------------- /internal/api/handle_databases.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/api/handle_databases.go -------------------------------------------------------------------------------- /internal/api/handle_event.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/api/handle_event.go -------------------------------------------------------------------------------- /internal/api/handle_users.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/api/handle_users.go -------------------------------------------------------------------------------- /internal/api/handler.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/api/handler.go -------------------------------------------------------------------------------- /internal/api/response.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/api/response.go -------------------------------------------------------------------------------- /internal/api/types.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/api/types.go -------------------------------------------------------------------------------- /internal/flybarman/node.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/flybarman/node.go -------------------------------------------------------------------------------- /internal/flybarman/node_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/flybarman/node_test.go -------------------------------------------------------------------------------- /internal/flycheck/barman.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/flycheck/barman.go -------------------------------------------------------------------------------- /internal/flycheck/checks.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/flycheck/checks.go -------------------------------------------------------------------------------- /internal/flycheck/pg.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/flycheck/pg.go -------------------------------------------------------------------------------- /internal/flycheck/role.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/flycheck/role.go -------------------------------------------------------------------------------- /internal/flycheck/vm.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/flycheck/vm.go -------------------------------------------------------------------------------- /internal/flypg/admin/admin.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/flypg/admin/admin.go -------------------------------------------------------------------------------- /internal/flypg/barman.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/flypg/barman.go -------------------------------------------------------------------------------- /internal/flypg/barman_config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/flypg/barman_config.go -------------------------------------------------------------------------------- /internal/flypg/barman_config_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/flypg/barman_config_test.go -------------------------------------------------------------------------------- /internal/flypg/barman_restore.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/flypg/barman_restore.go -------------------------------------------------------------------------------- /internal/flypg/barman_restore_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/flypg/barman_restore_test.go -------------------------------------------------------------------------------- /internal/flypg/barman_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/flypg/barman_test.go -------------------------------------------------------------------------------- /internal/flypg/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/flypg/config.go -------------------------------------------------------------------------------- /internal/flypg/flypg.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/flypg/flypg.go -------------------------------------------------------------------------------- /internal/flypg/flypg_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/flypg/flypg_test.go -------------------------------------------------------------------------------- /internal/flypg/haproxy.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/flypg/haproxy.go -------------------------------------------------------------------------------- /internal/flypg/node.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/flypg/node.go -------------------------------------------------------------------------------- /internal/flypg/pg.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/flypg/pg.go -------------------------------------------------------------------------------- /internal/flypg/pg_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/flypg/pg_test.go -------------------------------------------------------------------------------- /internal/flypg/readonly.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/flypg/readonly.go -------------------------------------------------------------------------------- /internal/flypg/registration.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/flypg/registration.go -------------------------------------------------------------------------------- /internal/flypg/repmgr.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/flypg/repmgr.go -------------------------------------------------------------------------------- /internal/flypg/repmgr_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/flypg/repmgr_test.go -------------------------------------------------------------------------------- /internal/flypg/restore.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/flypg/restore.go -------------------------------------------------------------------------------- /internal/flypg/s3_credentials.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/flypg/s3_credentials.go -------------------------------------------------------------------------------- /internal/flypg/s3_credentials_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/flypg/s3_credentials_test.go -------------------------------------------------------------------------------- /internal/flypg/ssh.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/flypg/ssh.go -------------------------------------------------------------------------------- /internal/flypg/state/store.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/flypg/state/store.go -------------------------------------------------------------------------------- /internal/flypg/zombie.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/flypg/zombie.go -------------------------------------------------------------------------------- /internal/flypg/zombie_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/flypg/zombie_test.go -------------------------------------------------------------------------------- /internal/privnet/sixpn.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/privnet/sixpn.go -------------------------------------------------------------------------------- /internal/supervisor/ensure_kill.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/supervisor/ensure_kill.go -------------------------------------------------------------------------------- /internal/supervisor/ensure_kill_linux.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/supervisor/ensure_kill_linux.go -------------------------------------------------------------------------------- /internal/supervisor/output.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/supervisor/output.go -------------------------------------------------------------------------------- /internal/supervisor/process.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/supervisor/process.go -------------------------------------------------------------------------------- /internal/supervisor/supervisor.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/supervisor/supervisor.go -------------------------------------------------------------------------------- /internal/supervisor/utils.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/supervisor/utils.go -------------------------------------------------------------------------------- /internal/utils/response.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/utils/response.go -------------------------------------------------------------------------------- /internal/utils/shell.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/internal/utils/shell.go -------------------------------------------------------------------------------- /pg15/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/pg15/Dockerfile -------------------------------------------------------------------------------- /pg15/Dockerfile-timescaledb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/pg15/Dockerfile-timescaledb -------------------------------------------------------------------------------- /pg16/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/pg16/Dockerfile -------------------------------------------------------------------------------- /pg16/Dockerfile-timescaledb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/pg16/Dockerfile-timescaledb -------------------------------------------------------------------------------- /pg17/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/pg17/Dockerfile -------------------------------------------------------------------------------- /pg17/Dockerfile-timescaledb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/pg17/Dockerfile-timescaledb -------------------------------------------------------------------------------- /scripts/test_scripts/config_check.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/scripts/test_scripts/config_check.sh -------------------------------------------------------------------------------- /scripts/versioning/bump_version.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/scripts/versioning/bump_version.sh -------------------------------------------------------------------------------- /scripts/versioning/changelog.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/scripts/versioning/changelog.sh -------------------------------------------------------------------------------- /scripts/versioning/generate_docs.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/scripts/versioning/generate_docs.sh -------------------------------------------------------------------------------- /scripts/versioning/helpgen.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/scripts/versioning/helpgen.sh -------------------------------------------------------------------------------- /scripts/versioning/semver: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/scripts/versioning/semver -------------------------------------------------------------------------------- /scripts/versioning/version.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/scripts/versioning/version.sh -------------------------------------------------------------------------------- /scripts/versioning/yank_version.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fly-apps/postgres-flex/HEAD/scripts/versioning/yank_version.sh --------------------------------------------------------------------------------