transparency-dev / transparency-dev/tesseract

[AWS] Aurora MySQL database engine version in Terraform config

Open
#543 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Go
Stars
37
Forks
18
Avg merge
19h 22m
Merged PRs (30d)
15

Description

Description

We used to define the Aurora MySQL minor version in aws_rds_cluster resource. The minor version was removed in https://github.com/transparency-dev/tesseract/pull/532 due to the unexpected behavior of OpenTofu/Terraform when the minor version was automatically bumped in the background.

https://github.com/transparency-dev/tesseract/blob/b1ce3bff35966aa75de866f560db0cb9a25a10b0/deployment/modules/aws/storage/main.tf#L28

https://github.com/transparency-dev/tesseract/blob/54ec80296fe1e0061cf3012b0437cc03440c132b/deployment/modules/aws/storage/main.tf#L28

Key findings

  • There is no way to disable minor version upgrade via terraform config.
  • The AWS Aurora database minor version upgrade will still be applied in cases of critical security issues or when a version reaches its end-of-support date.
  • Dependabot does not know how to bump this version in terraform config.
  • The performance regression test would not be hermetic if the minor version is not fixed.

Objective

We're looking for a way to keep track of the exact RDS database engine version in Terraform config, and that does not require anyone manually bumping the minor version from time to time. The version change should NOT break OpenTofu/Terraform.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading deployment/modules/aws/storage/main.tf at the linked resource and the changes in pull request 532. Determine how the exact Aurora MySQL engine version can be tracked without manual periodic bumps, while preserving OpenTofu/Terraform behavior. Done means the Terraform configuration tracks the version and the version change does not break OpenTofu/Terraform.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, mysql, terraform
Domain
cloud, databases, infrastructure
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.