Skip to content

feat: add RDS cluster parameter group actions#838

Merged
hectorvent merged 1 commit into
floci-io:mainfrom
john-goloti:feat/rds-cluster-parameter-groups
May 15, 2026
Merged

feat: add RDS cluster parameter group actions#838
hectorvent merged 1 commit into
floci-io:mainfrom
john-goloti:feat/rds-cluster-parameter-groups

Conversation

@john-goloti
Copy link
Copy Markdown
Contributor

Summary

Implements the five missing Aurora cluster parameter group APIs in the RDS Query handler:

  • CreateDBClusterParameterGroup
  • DescribeDBClusterParameterGroups
  • DeleteDBClusterParameterGroup
  • ModifyDBClusterParameterGroup
  • DescribeDBClusterParameters

Motivation

Stacks defined with the Terraform/Pulumi AWS provider that declare an aws_rds_cluster_parameter_group (or Pulumi's aws.rds.ClusterParameterGroup) currently fail against Floci with:

api error UnsupportedOperation: Operation CreateDBClusterParameterGroup is not supported.

This prevents Aurora cluster deployment from completing, since the cluster resource references the parameter group via db_cluster_parameter_group_name. Floci already implements the instance-level parameter group APIs (CreateDBParameterGroup and friends); this PR adds the cluster-level counterparts that the AWS service model exposes as a parallel resource type.

Implementation

  • New model class DbClusterParameterGroup (mirrors DbParameterGroup).
  • RdsService gains an in-memory StorageBackend<String, DbClusterParameterGroup> and CRUD methods.
  • RdsQueryHandler dispatches the five new actions, writes the appropriate XML envelopes (<DBClusterParameterGroup> / <DBClusterParameterGroups> / <Parameters>), and matches the existing parameter-group code style.
  • No changes to existing instance-level behavior.

Tests

  • RdsServiceTest: round-trip, duplicate rejection, modify parameters, missing-name errors for delete/get.
  • RdsQueryHandlerTest: tag-shape assertions, required-field validation for create/delete/describe, argument passthrough, parameter parsing that ignores entries with no value.

./mvnw test -Dtest='RdsServiceTest,RdsQueryHandlerTest' runs 31 tests, 0 failures.

Verified against a real IaC deploy

The original blocker came from a Pulumi infrastructure-application stack that declared:

new aws.rds.ClusterParameterGroup("aurora-parameter-group-17", {
  family: "aurora-postgresql17",
  parameters: [
    { name: "log_statement", value: "all" },
    { name: "log_min_duration_statement", value: "500" },
    { name: "shared_preload_libraries", value: "pg_stat_statements" },
    { name: "rds.force_ssl", value: "0" },
  ],
});

With Floci 1.5.15 this errored before any Aurora resource was created. With this PR's branch built locally, the action succeeds and ModifyDBClusterParameterGroup accepts the four parameters above.

Out of scope

  • Cluster parameter group family validation — accepted as-is, matching the leniency of the instance-level implementation.
  • Tags on parameter groups — neither the instance-level handler nor this one currently emits them in the response (kept consistent for now; can be a follow-up).
  • Source attribute on individual parameters (engine-default / user) — emitted only as IsModifiable=true here, same as DescribeDBParameters.

Implement the missing Aurora cluster parameter group APIs that the
Pulumi/Terraform AWS provider invokes via aws.rds.ClusterParameterGroup:

- CreateDBClusterParameterGroup
- DescribeDBClusterParameterGroups
- DeleteDBClusterParameterGroup
- ModifyDBClusterParameterGroup
- DescribeDBClusterParameters

Storage and handler logic mirrors the existing instance-level
parameter group implementation. Without these actions, any IaC stack
that defines an Aurora ClusterParameterGroup fails with
UnsupportedOperation and never reaches Aurora cluster creation.

Tests cover the new XML envelope shape, required-field validation,
service round-trip, duplicate rejection, and parameter modification.
@hectorvent
Copy link
Copy Markdown
Collaborator

Thanks @john-goloti

Solid implementation. Great job!

@hectorvent hectorvent merged commit 5cae86f into floci-io:main May 15, 2026
10 checks passed
@john-goloti john-goloti deleted the feat/rds-cluster-parameter-groups branch May 15, 2026 11:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants