postgresql_cluster
postgresql_cluster copied to clipboard
Console (UI): Expert mode
With the release version 2.0, we introduced a Console (UI) that provides an easy way to deploy clusters using a graphical interface. Now we are planning to add Expert Mode to unlock advanced user interface options tailored for experienced users.
Expert mode is disabled by default to provide a simple mode to simplify the user experience and can be enabled (if necessary) on the Settings page.
This mode reveals additional settings and features that allow for precise configuration of clusters, including complex parameter adjustments not visible in the standard mode, including:
1. Custom server type
The ability to specify another server (instance) type that is not represented in the console list (for cloud deployments).
2. Spot instances
The ability to select Spot instances when creating a cluster (for cloud deployments).
3. Volume and File System Type
The ability to select volume and file system type when creating a cluster (for cloud deployments).
4. Network
The ability to specify a Network/VPC (for cloud deployments).
- If provided, the server will be added to this network (needs to be created beforehand).
5. DCS
The ability to select the type of DCS (etcd or consul), deploy new servers, or use an already deployed DCS cluster.
6. Data directory
The ability to redefine the data directory path.
7. Databases
The ability to add databases and users when creating a cluster.
8. Connection pools
The ability to configure PgBouncer connection pooler when creating a cluster.
9. Extensions
The ability to choosing extensions when creating a cluster.
10. Backups
The ability to configure Backups when creating a cluster.
11. Postgres and system settings
The ability to configure Postgres and system (kernel) settings when creating a cluster.
12. Additional settings
The ability to choosing additional settings when creating a cluster.
13. YAML tab
Another function for "Expert Mode" could be to provide a "YAML tab" where all current parameters are displayed in the form of variables. This tab would also allow users to set predefined values for functions that may not have been added to the UI yet but are available through automation capabilities.
[!NOTE] Access to the Figma project with all implementation details will be provided during development.
If you're interested in this feature, please consider becoming a sponsor.
The development of this feature requires sponsorship to fund developer efforts. If you're already a sponsor and are interested in this feature, please leave a comment here so we can prioritize this issue accordingly.
We also welcome contributions from those willing to dedicate their time to implement this feature on a voluntary basis. Please see the Contributing Guide for more information.
Also consider the possibility of managing public access settings:
ssh_public_access: true # Allow public ssh access (required for deployment from the public network).
ssh_public_allowed_ips: "" # (comma-separated list of IP addresses in CIDR format) If empty, then public access is allowed for any IP address.
netdata_public_access: true # Allow access to the Netdata monitoring from the public network (if 'netdata_install' is 'true').
netdata_public_allowed_ips: "" # (comma-separated list of IP addresses in CIDR format) If empty, then public access is allowed for any IP address.
database_public_access: false # Allow access to the database from the public network.
database_public_allowed_ips: "" # (comma-separated list of IP addresses in CIDR format) If empty, then public access is allowed for any IP address.
UPDATE May 2025:
We’re currently looking for more sponsors to help fund frontend development and make these features a reality.
context: comment
Not sure, but my initial estimation of the stated requirements is $1100 (15-25 hours), pretty much flexible and am fine with a rough estimate of yours, will pretty much need to dive in the code to see what it takes.
@vitabaks
@abhishek818 Thanks for the estimate.
I believe it may take more than 25 hours, so it might make sense to move the “YAML tab” into a separate task.