Complimentary Gartner® Report! 'A CTO's Guide to Open-Source Software: Answering the Top 10 FAQs.'Read more

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 USER bindplane WITH PASSWORD 'your_password';
2CREATE DATABASE bindplane;

Switch to the bindplane database with \c bindplane, or reconfigure your Postgres client to reconnect to the bindplane database. Once connected, execute the following GRANT commands.

sql
1GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO bindplane;
2GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO bindplane;
3GRANT ALL PRIVILEGES ON SCHEMA public TO bindplane;

Sizing

Postgres can be scaled vertically based on the number of managed agents. See the Postgresql Prerequisites documentation for sizing details.

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.