Skip to content

fix: preserve api mongo_db_major_version on real upgrades#4399

Closed
mkusaka wants to merge 1 commit intomongodb:masterfrom
mkusaka:fix-mongo-db-major-version-state
Closed

fix: preserve api mongo_db_major_version on real upgrades#4399
mkusaka wants to merge 1 commit intomongodb:masterfrom
mkusaka:fix-mongo-db-major-version-state

Conversation

@mkusaka
Copy link
Copy Markdown

@mkusaka mkusaka commented Apr 23, 2026

Description

This narrows the mongo_db_major_version compatibility workaround in mongodbatlas_advanced_cluster so it only preserves the previous state value when the difference is formatting-only, for example 8 vs 8.0.

When Atlas API returns a genuinely different major version, such as 7.0 -> 8.0 after an out-of-band upgrade and FCV unpin, the provider now keeps the API value instead of forcing the previous state value back into state.

This preserves the original intent of avoiding unnecessary diffs from version normalization while allowing real major-version transitions to converge.

Link to any related issue(s):

Type of change:

  • Bug fix (non-breaking change which fixes an issue). Please, add the "bug" label to the PR.
  • New feature (non-breaking change which adds functionality). Please, add the "enhancement" label to the PR. A migration guide must be created or updated if the new feature will go in a major version.
  • Breaking change (fix or feature that would cause existing functionality to not work as expected). Please, add the "breaking change" label to the PR. A migration guide must be created or updated.
  • This change requires a documentation update
  • Documentation fix/enhancement

Required Checklist:

  • I have signed the MongoDB CLA
  • I have read the contributing guides
  • I have checked that this change does not generate any credentials and that they are NOT accidentally logged anywhere.
  • I have added tests that prove my fix is effective or that my feature works per HashiCorp requirements
  • I have added any necessary documentation (if appropriate)
  • I have run make fix and verified my code
  • If changes include deprecations or removals I have added appropriate changelog entries.
  • If changes include removal or addition of 3rd party GitHub actions, I updated our internal document. Reach out to the APIx Integration slack channel to get access to the internal document.

Further comments

Added a unit test that covers both:

  • formatting-only normalization: previous state 8, API value 8.0
  • real version transition: previous state 7.0, API value 8.0

Validation run:

  • go test ./internal/service/advancedcluster -run '^TestOverrideAttributesWithPrevStateValueMongoDBMajorVersion$'
  • go test ./internal/service/advancedcluster -run 'TestPlanChecksClusterTwoRepSpecsWithAutoScalingAndSpecs'

@marcabreracast
Copy link
Copy Markdown
Collaborator

Closing in favor of #4400, to follow our Merging Guidelines.

@mkusaka mkusaka deleted the fix-mongo-db-major-version-state branch April 23, 2026 16:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants