PostgeSQL

PostgreSQL is required when operating BindPlane in high availability.

PostgreSQL allows multiple BindPlane servers to share and access data concurrently, enabling the ability to operate BindPlane in high availability.

Prerequisites

Version

BindPlane OP supports the following PostgreSQL versions:

  • 14
  • 15
  • 16

User and Database

Create a database named bindplane and a user that has full access to that database. The BindPlane user does not require permission to do anything outside of its database.

The following psql commands can be used to create the database and user. Make sure to replace your_password with a secure password.

sql
1CREATE DATABASE bindplane;
2CREATE USER bindplane WITH PASSWORD 'your_password';
3GRANT ALL PRIVILEGES ON DATABASE bindplane TO bindplane;
4ALTER DATABASE bindplane owner to bindplane;

Sizing

Postgres can be scaled vertically based on the number of managed agents.

Agent CountCPUMemory
1,00028GB
10,000416GB
20,000832GB

Installation

It is up to the user to deploy and manage Postgres. If operating in a cloud environment, it is recommended that you use one of the following services.

Configuration

The configuration looks like this:

yaml
1store:
2  type: postgres
3  postgres:
4    host: localhost
5    port: '5432'
6    username: postgres
7    password: password
8    database: bindplane
9    sslmode: disable
10    maxConnections: 100
11    maxIdleConnections: 50
12    maxIdleTime: 1m0s

Make sure to update host, username, and password.

For a list of supported options, see the Postgres Configuration section in the configuration documentation.