Skip to content

CLOUDP-383487: Fix cluster update removing replica set properties#84

Open
ashortt-mdb wants to merge 2 commits intomainfrom
feature/fix-cluster-update-settings-loss
Open

CLOUDP-383487: Fix cluster update removing replica set properties#84
ashortt-mdb wants to merge 2 commits intomainfrom
feature/fix-cluster-update-settings-loss

Conversation

@ashortt-mdb
Copy link
Copy Markdown
Collaborator

@ashortt-mdb ashortt-mdb commented Apr 7, 2026

Summary

  • Fix lossy describe→update roundtrip in internal/convert/ that silently drops replica set settings, net compression, member tags/horizons, and CPU affinity
  • Add explicit field mappings for ReplicaSet.Settings, WriteConcernMajorityJournalDefault, Net.Compression, Net.MaxIncomingConnections, Net.ServiceExecutor, Member.Horizons, Member.Tags, and Process.CPUAffinity
  • Extend keepSettings() as defense-in-depth for hand-written config files

Out of scope

  • numactl.numCores — requires upstream SDK change (go.mongodb.org/ops-manager has no NumaCtl field on Process)

Test plan

  • New unit tests for each field roundtrip (RS settings, net fields, member fields, CPU affinity, keepSettings)
  • Updated fixtures in AutomationConfigWithOneReplicaSet to exercise new fields
  • All existing convert package tests updated and passing
  • golangci-lint clean on ./internal/convert/...

…ndtrip

Add missing field mappings to the convert package so that
clusters describe → clusters update no longer silently drops:
- ReplicaSet.Settings (chainingAllowed, heartbeatTimeoutSecs, etc.)
- ReplicaSet.WriteConcernMajorityJournalDefault
- Net.Compression, Net.MaxIncomingConnections, Net.ServiceExecutor
- Member.Horizons, Member.Tags

Fixes CLOUDP-383487
- Map Process.CPUAffinity in both directions
- Extend keepSettings to preserve Net.Compression,
  MaxIncomingConnections, ServiceExecutor from old processes
- Fix keepSettings to not unconditionally overwrite user-supplied
  OperationProfiling, BasisTech, ProcessManagement, SNMP
- Add missing IPV6 write-back in net() (was read but never written)
- Remove duplicate audit log block in replicaSetArgs26
- Update AutomationConfigWithOneReplicaSet fixture to include
  Settings, WriteConcernMajorityJournalDefault, Compression, Tags
- Update all test expected outputs for new fixture fields
@ashortt-mdb ashortt-mdb force-pushed the feature/fix-cluster-update-settings-loss branch from 2ef31f2 to 77ecedd Compare April 7, 2026 10:52
@ashortt-mdb ashortt-mdb marked this pull request as ready for review April 7, 2026 10:52
@ashortt-mdb ashortt-mdb requested a review from a team as a code owner April 7, 2026 10:52
@ashortt-mdb ashortt-mdb requested review from apokhyla-inc and nakulh and removed request for a team April 7, 2026 10:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant