@@ -1215,6 +1215,14 @@ type AutomaticReplacementOptions struct {
1215
1215
// The default is false.
1216
1216
Enabled * bool `json:"enabled,omitempty"`
1217
1217
1218
+ // FaultDomainBasedReplacements controls whether automatic replacements are targeting all failed process groups
1219
+ // in a fault domain or only specific Process Groups. If this setting is enabled, the number of different fault
1220
+ // domains that can have all their failed process groups replaced at the same time will be equal to MaxConcurrentReplacements.
1221
+ // e.g. MaxConcurrentReplacements = 2 would mean that at most 2 different fault domains can have
1222
+ // their failed process groups replaced at the same time.
1223
+ // The default is false.
1224
+ FaultDomainBasedReplacements * bool `json:"faultDomainBasedReplacements,omitempty"`
1225
+
1218
1226
// FailureDetectionTimeSeconds controls how long a process must be
1219
1227
// failed or missing before it is automatically replaced.
1220
1228
// The default is 7200 seconds, or 2 hours.
@@ -2155,6 +2163,12 @@ func (cluster *FoundationDBCluster) GetMaxConcurrentAutomaticReplacements() int
2155
2163
return pointer .IntDeref (cluster .Spec .AutomationOptions .Replacements .MaxConcurrentReplacements , 1 )
2156
2164
}
2157
2165
2166
+ // FaultDomainBasedReplacements returns true if the operator is allowed to replace all failed process groups of a
2167
+ // fault domain. Default is false
2168
+ func (cluster * FoundationDBCluster ) FaultDomainBasedReplacements () bool {
2169
+ return pointer .BoolDeref (cluster .Spec .AutomationOptions .Replacements .FaultDomainBasedReplacements , false )
2170
+ }
2171
+
2158
2172
// CoordinatorSelectionSetting defines the process class and the priority of it.
2159
2173
// A higher priority means that the process class is preferred over another.
2160
2174
type CoordinatorSelectionSetting struct {
0 commit comments