Skip to content

Conversation

@Rainbrand
Copy link

@Rainbrand Rainbrand commented Oct 26, 2025

feat(expertMode): implemented expert mode for clusters

Closes #756

Additionally

  • Changed backup variable names to lowercase (commit)
    • Standardizes backup-related variable names from uppercase to lowercase across Ansible roles and UI transformation logic for consistency. Updates references in pgbackrest and wal_g configuration, cron jobs, and extra vars mapping.
  • Changed extra_vars to JSON string format (commit, commit)
    • Refactored extra_vars fields in API schema, models, and internal logic to use a single JSON string instead of an array of strings.
  • Fixed issue with automation image pulling (commit)
  • Some optimizations and fixes have been made to the logic of ansible roles.

@vitabaks vitabaks added enhancement Improvement of the current functionality console PostgreSQL Cluster Console UI PostgreSQL Cluster Console UI labels Oct 27, 2025
@vitabaks vitabaks self-assigned this Oct 27, 2025
@vitabaks vitabaks added this to the 2.5 milestone Oct 28, 2025
Rainbrand and others added 20 commits October 28, 2025 21:47
Corrected the spelling of 'Postgresql' to 'PostgreSQL' in the English locale file for cluster-related UI labels.
Set postgres_max_version to '18' for several extensions in the public.extensions table to reflect updated compatibility.
Set enable_timescale, enable_pg_stat_kcache, and enable_pg_partman to true in both default and pg_upgrade Molecule converge playbooks. This allows testing these extensions, which were previously disabled for PostgreSQL 18.
Upgraded multiple dependencies and devDependencies in package.json to their latest versions, including MUI, React, Redux Toolkit, i18next, yup, esbuild, typescript, vite, and testing libraries. Corresponding updates were made in yarn.lock to ensure consistency and compatibility.
Updated the logic for setting 'enable_timescale' in molecule converge playbooks to disable it when running on RHEL 10, as TimescaleDB is not available for PostgreSQL 18 on this platform.
Updated PostgreSQL max version for third-party and contrib extensions, set max version for 'adminpack' and 'old_snapshot', and added 'pg_logicalinspect' as a new contrib extension.
Rainbrand and others added 30 commits November 13, 2025 05:25
Introduces a new task to wait for EC2 Spot instances to be created before renaming them. The previous retry logic for renaming now checks for overall task success instead of IP address availability.
Simplifies and improves type conversion logic in getIntValFromExtraVars by handling json.Number, float64, and string representations more robustly. This change ensures better compatibility with varied input types and reduces code complexity.
Improves the Jinja2 template logic for rendering pool parameters in pgbouncer.ini. Pool parameters are now collected into a list and joined, ensuring consistent formatting for both string and mapping types.
Adds a default value of 'LOGIN' for the role_attr_flags when not specified in the user item, ensuring users have login privileges by default.
Replaces all instances of pg_data_mount_path and pg_data_mount_fstype with postgresql_data_dir_mount_path and postgresql_data_dir_mount_fstype across playbooks, roles, and UI code for consistency and clarity in variable naming.
Updated the sysctl task to use 'item.option' as the parameter name if provided, falling back to 'item.name'.
…ey vars

Introduces access and secret key variables for DigitalOcean Spaces in cloud_resources defaults.
Revised the description for expert mode to improve clarity and conciseness.
Bumped versions for Python packages in requirements.txt and updated minimum versions for Ansible collections in requirements.yml to ensure compatibility and access to latest features and fixes.
Removed redundant and manual settings of consul_bootstrap_expect in inventory, molecule, and playbooks. Now, consul_bootstrap_expect is automatically set based on consul_node_role in common defaults. Updated cloud_resources to set consul_node_role per host and adjusted datacenter assignment to use server_location. This simplifies Consul configuration and improves consistency.
Replaced duplicate DIGITAL_OCEAN provider checks with DIGITAL_OCEAN and HETZNER to correctly apply extra vars for Hetzner clusters.
Eliminated conditional checks for access and secret key length in the Hetzner object storage creation task.
Updated the access key and secret key selection to use a prioritized fallback mechanism, checking for specific variables before defaulting to others.
Updated the Hetzner S3 bucket creation task to use default access and secret keys if specific Hetzner keys are not provided.
The YAML editor now uses the 'vs' theme in light mode and 'vs-dark' in dark mode, based on the current MUI theme. This improves visual consistency with the application's overall appearance.
Replaced direct access to vpc_info.data with vpc_info.get('data', []) to prevent errors when 'data' is missing. Updated conditional checks and set_fact tasks for more robust handling of VPC information.
Updates the region assignment for Hetzner object storage to use 'nbg1' as the default if the server location is not one of 'hel1', 'fsn1', or 'nbg1'. This ensures a valid region is always set for object storage creation.
Updated region selection logic to use 'nyc3' for 'nyc1' and 'nyc2' server locations in cloud_resources, pgbackrest, and wal_g roles.
Adds custom failure condition to ignore 'GetBucketRequestPayment' errors during S3 bucket creation.

Fixed:
fatal: [localhost]: FAILED! => {"boto3_version": "1.40.74", "botocore_version": "1.40.74", "changed": false, "error": {"code": "NotImplemented", "message": "This operation is not implemented."}, "msg": "Failed to get bucket request payment settings (not supported by cloud): An error occurred (NotImplemented) when calling the GetBucketRequestPayment operation: This operation is not implemented.", "response_metadata": {"http_headers": {"cache-control": "no-cache", "connection": "close", "content-type": "application/xml"}, "http_status_code": 501, "retry_attempts": 0}}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

console PostgreSQL Cluster Console enhancement Improvement of the current functionality UI PostgreSQL Cluster Console UI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Console (UI): Expert mode

2 participants