Releases: pgEdge/control-plane
Releases · pgEdge/control-plane
v0.5.0-rc.1
v0.5.0 - 2025-11-04
Added
- Added support for Postgres 18.0.
- Added a new "client-only" Etcd mode to enable larger clusters and clusters with an even number of hosts.
- Added access logging.
- Added ability to run the Control Plane on Docker Swarm worker nodes.
Changed
- Moved the cluster ID configuration setting to be an optional parameter on the init-cluster endpoint.
- Changed the default behavior when adding a node. Instead of initializing to an empty state, new nodes will always be populated from an existing node unless the new node has a
restore_config. - Changed the shape of the return type for
list-hosts,restart-instance,stop-instance, andstart-instance. - Renamed Etcd server and client configuration options.
Removed
- Removed cohort ID from host API endpoints.
Fixed
- Fixed unknown host status and missing component status in host API endpoints.
- Fixed a bug that prevented users from using Service Accounts for pgBackRest credentials in GCS.
- Fixed missing replication sets after restoring from backup.
- Fixed incorrect response in
update-databasewhen a non-existent host ID is specified. - Fixed a bug with scheduled instance restarts.
Get the Docker image for this release from:
ghcr.io/pgedge/control-plane:v0.5.0-rc.1
v0.4.0
v0.4.0 - 2025-10-06
Added
- Introduced stop-instance and start-instance APIs to allow users to manually trigger a stop/start of a specific Postgres instance.
- Added support for adding new database nodes with zero downtime.
- Added stopped state for instances
- Added switchover support via the control plane API
- Added a "cancel database task" API endpoint
- Added validation to update-database to reject requests that update the database name.
- Added support for mTLS to the Control Plane API via user-managed certificates.
- Implemented the "get host" and "get cluster" endpoints.
- Added Failover support via the control plane API
Changed
- Switched to the new images from github.com/pgEdge/postgres-images.
- Added the postgres minor version to the
postgres_versionfields in the database and host APIs. - Changed the database creation behavior so that the first host in
host_idsgets the primary instance for a node. - Database update process so that nodes are processed one at a time. Within a node, replicas are always updated before the primary.
- Added automated switchovers before and after an instance is restarted as part of an update.
- Added validation to the update database API to reject requests that update the Postgres major version.
- Changed MQTT interface in client library to take an endpoint. This removes the need to generate unique client IDs per server. Callers are responsible for calling
Connect()andDisconnect()on the endpoint. - Enable fast basebackup for new nodes. This noticeably speeds up the creation process for a node with replicas.
- Changed patroni configuration to use pg_rewind for faster recovery after a switchover.
Fixed
- Fixed join cluster timeouts when requests were submitted to a member other than the raft leader.
- Ensure that join and init cluster calls only return once the server is ready to take requests. Any errors during the initialization process will now be returned to callers.
Get the Docker image for this release from:
ghcr.io/pgedge/control-plane:v0.4.0
v0.4.0-rc.2
v0.4.0 - 2025-10-06
Added
- Introduced stop-instance and start-instance APIs to allow users to manually trigger a stop/start of a specific Postgres instance.
- Added support for adding new database nodes with zero downtime.
- Added stopped state for instances
- Added switchover support via the control plane API
- Added a "cancel database task" API endpoint
- Added validation to update-database to reject requests that update the database name.
- Added support for mTLS to the Control Plane API via user-managed certificates.
- Implemented the "get host" and "get cluster" endpoints.
- Added Failover support via the control plane API
Changed
- Switched to the new images from github.com/pgEdge/postgres-images.
- Added the postgres minor version to the
postgres_versionfields in the database and host APIs. - Changed the database creation behavior so that the first host in
host_idsgets the primary instance for a node. - Database update process so that nodes are processed one at a time. Within a node, replicas are always updated before the primary.
- Added automated switchovers before and after an instance is restarted as part of an update.
- Added validation to the update database API to reject requests that update the Postgres major version.
- Changed MQTT interface in client library to take an endpoint. This removes the need to generate unique client IDs per server. Callers are responsible for calling
Connect()andDisconnect()on the endpoint. - Enable fast basebackup for new nodes. This noticeably speeds up the creation process for a node with replicas.
- Changed patroni configuration to use pg_rewind for faster recovery after a switchover.
Fixed
- Fixed join cluster timeouts when requests were submitted to a member other than the raft leader.
- Ensure that join and init cluster calls only return once the server is ready to take requests. Any errors during the initialization process will now be returned to callers.
Get the Docker image for this release from:
ghcr.io/pgedge/control-plane:v0.4.0-rc.2
v0.4.0-rc.1
v0.4.0 - 2025-10-06
Added
- Introduced stop-instance and start-instance APIs to allow users to manually trigger a stop/start of a specific Postgres instance.
- Added support for adding new database nodes with zero downtime.
- Added stopped state for instances
- Added switchover support via the control plane API
- Added a "cancel database task" API endpoint
- Added validation to update-database to reject requests that update the database name.
- Added support for mTLS to the Control Plane API via user-managed certificates.
- Implemented the "get host" and "get cluster" endpoints.
Changed
- Switched to the new images from github.com/pgEdge/postgres-images.
- Added the postgres minor version to the
postgres_versionfields in the database and host APIs. - Changed the database creation behavior so that the first host in
host_idsgets the primary instance for a node. - Database update process so that nodes are processed one at a time. Within a node, replicas are always updated before the primary.
- Added automated switchovers before and after an instance is restarted as part of an update.
- Added validation to the update database API to reject requests that update the Postgres major version.
- Changed MQTT interface in client library to take an endpoint. This removes the need to generate unique client IDs per server. Callers are responsible for calling
Connect()andDisconnect()on the endpoint. - Enable fast basebackup for new nodes. This noticeably speeds up the creation process for a node with replicas.
- Changed patroni configuration to use pg_rewind for faster recovery after a switchover.
Fixed
- Fixed join cluster timeouts when requests were submitted to a member other than the raft leader.
Get the Docker image for this release from:
ghcr.io/pgedge/control-plane:v0.4.0-rc.1
v0.3.0
v0.3.0 - 2025-08-19
Added
- Added ability to override 'database modifiable state' check via
forceparameters on several endpoints. - Added a
clientpackage that wraps the generated client code in a friendlier interface.
Changed
- Merged separate Go modules into single top-level
github.com/pgEdge/control-planemodule.
Fixed
- Fixed high CPU usage from Etcd after recovering from some network partition scenarios.
- Fixed error in restore database workflow when the request is submitted to a host that is not running the target instance.
- Fixed client-side validation errors from missing enum values in our generated client code.
- Fixed timing issue where a new database operation could not be started immediately after the task was marked as completed.
- Fixed a bug in the restore database workflow where, sometimes, the restore would start before Postgres had finished shutting down.
Get the Docker image for this release from:
ghcr.io/pgedge/control-plane:v0.3.0
v0.3.0-rc.1
v0.3.0 - 2025-08-19
Added
- Added ability to override 'database modifiable state' check via
forceparameters on several endpoints. - Added a
clientpackage that wraps the generated client code in a friendlier interface.
Changed
- Merged separate Go modules into single top-level
github.com/pgEdge/control-planemodule.
Fixed
- Fixed high CPU usage from Etcd after recovering from some network partition scenarios.
- Fixed error in restore database workflow when the request is submitted to a host that is not running the target instance.
- Fixed client-side validation errors from missing enum values in our generated client code.
- Fixed timing issue where a new database operation could not be started immediately after the task was marked as completed.
- Fixed a bug in the restore database workflow where, sometimes, the restore would start before Postgres had finished shutting down.
Get the Docker image for this release from:
ghcr.io/pgedge/control-plane:v0.3.0-rc.1
v0.2.0
v0.2.0 - 2025-07-22
Added
- Tasks and task logs for every database operation.
parent_id,node_name,host_id, andinstance_idfields to task API entities.- Support for performing database backups to a mounted file system using the posix repository type via pgBackRest.
- Enabled volume validation during database creation and update to verify that specified extra_volumes paths exist and are accessible.
- APIError type for simpler, more consistent API errors.
- Summaries and groups to API endpoints in OpenAPI spec.
- Introduced restart-instance API to allow users to manually trigger a restart of a specific Postgres instance.
- Added support for attaching database containers to additional Docker networks to enable routing via Traefik and other custom setups.
- Added ability to apply arbitrary labels to the database service/container.
- Add support to disable direct database port exposure on the host in Swarm deployments.
remove-hostendpoint.- Added scheduling functionality in the Control Plane.
Changed
- Create, update, delete, and restore API responses to include task information.
initiate-database-backupoperation name tobackup-database-node- Task logs entries from log lines to structured log entries.
- Renamed
inspectendpoints toget:get-cluster,get-host,get-database-task. - Introduced restore_options as a structured map, and renamed extra_options to backup_options for consistency.
- Moved existing API endpoints under a
/v1prefix. - Allow human-readable IDs in all user-specified ID fields, including
cluster_id,host_id,database_idand backup repository IDs. - Censor sensitive fields, such as user passwords or cloud credentials, in all API responses. Likewise, these fields can be omitted from update requests if they're not being modified.
- Updated
pgedgeimages to 5.0.0-1 - Moved pgEdge and Control Plane images to ghcr.io
control-planebase image fromscratchtogcr.io/distroless/static-debian12for CA certificates
Removed
- Unused fields from API specification.
Fixed
- Delay when resuming workflows after a restart.
- Database operation errors when instance IPs change after restarting.
- Method to determine default IPv4 address to always return IPv4.
Get the Docker image for this release from:
ghcr.io/pgedge/control-plane:v0.2.0
v0.2.0-rc.3
v0.2.0 - 2025-07-22
Added
- Tasks and task logs for every database operation.
parent_id,node_name,host_id, andinstance_idfields to task API entities.- Support for performing database backups to a mounted file system using the posix repository type via pgBackRest.
- Enabled volume validation during database creation and update to verify that specified extra_volumes paths exist and are accessible.
- APIError type for simpler, more consistent API errors.
- Summaries and groups to API endpoints in OpenAPI spec.
- Introduced restart-instance API to allow users to manually trigger a restart of a specific Postgres instance.
- Added support for attaching database containers to additional Docker networks to enable routing via Traefik and other custom setups.
- Added ability to apply arbitrary labels to the database service/container.
- Add support to disable direct database port exposure on the host in Swarm deployments.
remove-hostendpoint.- Added scheduling functionality in the Control Plane.
Changed
- Create, update, delete, and restore API responses to include task information.
initiate-database-backupoperation name tobackup-database-node- Task logs entries from log lines to structured log entries.
- Renamed
inspectendpoints toget:get-cluster,get-host,get-database-task. - Introduced restore_options as a structured map, and renamed extra_options to backup_options for consistency.
- Moved existing API endpoints under a
/v1prefix. - Allow human-readable IDs in all user-specified ID fields, including
cluster_id,host_id,database_idand backup repository IDs. - Censor sensitive fields, such as user passwords or cloud credentials, in all API responses. Likewise, these fields can be omitted from update requests if they're not being modified.
- Updated
pgedgeimages to 5.0.0-1 - Moved pgEdge and Control Plane images to ghcr.io
control-planebase image fromscratchtogcr.io/distroless/static-debian12for CA certificates
Removed
- Unused fields from API specification.
Fixed
- Delay when resuming workflows after a restart.
- Database operation errors when instance IPs change after restarting.
- Method to determine default IPv4 address to always return IPv4.
Get the Docker image for this release from:
ghcr.io/pgedge/control-plane:v0.2.0-rc.3
v0.2.0-rc.2
v0.2.0 - 2025-07-22
Added
- Tasks and task logs for every database operation.
parent_id,node_name,host_id, andinstance_idfields to task API entities.- Support for performing database backups to a mounted file system using the posix repository type via pgBackRest.
- Enabled volume validation during database creation and update to verify that specified extra_volumes paths exist and are accessible.
- APIError type for simpler, more consistent API errors.
- Summaries and groups to API endpoints in OpenAPI spec.
- Introduced restart-instance API to allow users to manually trigger a restart of a specific Postgres instance.
- Added support for attaching database containers to additional Docker networks to enable routing via Traefik and other custom setups.
- Added ability to apply arbitrary labels to the database service/container.
- Add support to disable direct database port exposure on the host in Swarm deployments.
remove-hostendpoint.- Added scheduling functionality in the Control Plane.
Changed
- Create, update, delete, and restore API responses to include task information.
initiate-database-backupoperation name tobackup-database-node- Task logs entries from log lines to structured log entries.
- Renamed
inspectendpoints toget:get-cluster,get-host,get-database-task. - Introduced restore_options as a structured map, and renamed extra_options to backup_options for consistency.
- Moved existing API endpoints under a
/v1prefix. - Allow human-readable IDs in all user-specified ID fields, including
cluster_id,host_id,database_idand backup repository IDs. - Censor sensitive fields, such as user passwords or cloud credentials, in all API responses. Likewise, these fields can be omitted from update requests if they're not being modified.
- Updated
pgedgeimages to 5.0.0-1 - Moved pgEdge and Control Plane images to ghcr.io
control-planebase image fromscratchtogcr.io/distroless/static-debian12for CA certificates
Removed
- Unused fields from API specification.
Fixed
- Delay when resuming workflows after a restart.
- Database operation errors when instance IPs change after restarting.
- Method to determine default IPv4 address to always return IPv4.
Get the Docker image for this release from:
ghcr.io/pgedge/control-plane:v0.2.0-rc.2
v0.2.0-rc.1
v0.2.0 - 2025-07-22
Added
- Tasks and task logs for every database operation.
parent_id,node_name,host_id, andinstance_idfields to task API entities.- Support for performing database backups to a mounted file system using the posix repository type via pgBackRest.
- Enabled volume validation during database creation and update to verify that specified extra_volumes paths exist and are accessible.
- APIError type for simpler, more consistent API errors.
- Summaries and groups to API endpoints in OpenAPI spec.
- Introduced restart-instance API to allow users to manually trigger a restart of a specific Postgres instance.
- Added support for attaching database containers to additional Docker networks to enable routing via Traefik and other custom setups.
- Added ability to apply arbitrary labels to the database service/container.
- Add support to disable direct database port exposure on the host in Swarm deployments.
remove-hostendpoint.- Added scheduling functionality in the Control Plane.
Changed
- Create, update, delete, and restore API responses to include task information.
initiate-database-backupoperation name tobackup-database-node- Task logs entries from log lines to structured log entries.
- Renamed
inspectendpoints toget:get-cluster,get-host,get-database-task. - Introduced restore_options as a structured map, and renamed extra_options to backup_options for consistency.
- Moved existing API endpoints under a
/v1prefix. - Allow human-readable IDs in all user-specified ID fields, including
cluster_id,host_id,database_idand backup repository IDs. - Censor sensitive fields, such as user passwords or cloud credentials, in all API responses. Likewise, these fields can be omitted from update requests if they're not being modified.
- Updated
pgedgeimages to 5.0.0-1 - Moved pgEdge and Control Plane images to ghcr.io
control-planebase image fromscratchtogcr.io/distroless/static-debian12for CA certificates
Removed
- Unused fields from API specification.
Fixed
- Delay when resuming workflows after a restart.
- Database operation errors when instance IPs change after restarting.
- Method to determine default IPv4 address to always return IPv4.
Security
- Updated
pgedgeimages to 4.0.10-4
Get the Docker image for this release from:
ghcr.io/pgedge/control-plane:v0.2.0-rc.1