Skip to content

Commit 9cd2858

Browse files
authored
[Feature] Define OptionalReplace Upgrade Mode option (#1944)
1 parent 1684d2e commit 9cd2858

File tree

7 files changed

+78
-23
lines changed

7 files changed

+78
-23
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
- (Feature) (Platform) MetaV1 List Operation
1515
- (Feature) (Platform) Enable HTTP to HTTPS Redirect
1616
- (Bugfix) (Platform) Fix NoAuth Mode
17+
- (Feature) Define OptionalReplace Upgrade Mode option
1718

1819
## [1.2.50](https://github.com/arangodb/kube-arangodb/tree/1.2.50) (2025-07-04)
1920
- (Feature) (Platform) MetaV1 Integration Service

docs/api/ArangoDeployment.V1.md

Lines changed: 35 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -232,13 +232,14 @@ LabelsMode Define labels mode which should be use while overriding labels
232232

233233
### .spec.agents.manualUpgradeMode
234234

235-
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L224)</sup>
235+
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L226)</sup>
236236

237237
ManualUpgradeMode Defines the manually triggered upgrade mode for the Member
238238

239239
Possible Values:
240240
* `"inplace"` (default) - Inplace Upgrade procedure (with Upgrade initContainer)
241241
* `"replace"` - Replaces server instead of upgrading. Takes an effect only on DBServer
242+
* `"optional-replace"` - Replaces the member if upgrade fails with predefined exit codes. Takes an effect only on DBServer
242243

243244
***
244245

@@ -623,7 +624,7 @@ Links:
623624

624625
### .spec.agents.restartPolicy
625626

626-
Type: `core.RestartPolicy` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L231)</sup>
627+
Type: `core.RestartPolicy` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L233)</sup>
627628

628629
RestartPolicy for all pods within the group.
629630

@@ -864,13 +865,14 @@ Links:
864865

865866
### .spec.agents.upgradeMode
866867

867-
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L218)</sup>
868+
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L219)</sup>
868869

869870
UpgradeMode Defines the upgrade mode for the Member
870871

871872
Possible Values:
872873
* `"inplace"` (default) - Inplace Upgrade procedure (with Upgrade initContainer)
873874
* `"replace"` - Replaces server instead of upgrading. Takes an effect only on DBServer
875+
* `"optional-replace"` - Replaces the member if upgrade fails with predefined exit codes. Takes an effect only on DBServer
874876
* `"manual"` - Waits for the manual upgrade. Requires replacement or the annotation on the member
875877

876878
***
@@ -1341,13 +1343,14 @@ LabelsMode Define labels mode which should be use while overriding labels
13411343

13421344
### .spec.coordinators.manualUpgradeMode
13431345

1344-
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L224)</sup>
1346+
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L226)</sup>
13451347

13461348
ManualUpgradeMode Defines the manually triggered upgrade mode for the Member
13471349

13481350
Possible Values:
13491351
* `"inplace"` (default) - Inplace Upgrade procedure (with Upgrade initContainer)
13501352
* `"replace"` - Replaces server instead of upgrading. Takes an effect only on DBServer
1353+
* `"optional-replace"` - Replaces the member if upgrade fails with predefined exit codes. Takes an effect only on DBServer
13511354

13521355
***
13531356

@@ -1732,7 +1735,7 @@ Links:
17321735

17331736
### .spec.coordinators.restartPolicy
17341737

1735-
Type: `core.RestartPolicy` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L231)</sup>
1738+
Type: `core.RestartPolicy` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L233)</sup>
17361739

17371740
RestartPolicy for all pods within the group.
17381741

@@ -1973,13 +1976,14 @@ Links:
19731976

19741977
### .spec.coordinators.upgradeMode
19751978

1976-
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L218)</sup>
1979+
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L219)</sup>
19771980

19781981
UpgradeMode Defines the upgrade mode for the Member
19791982

19801983
Possible Values:
19811984
* `"inplace"` (default) - Inplace Upgrade procedure (with Upgrade initContainer)
19821985
* `"replace"` - Replaces server instead of upgrading. Takes an effect only on DBServer
1986+
* `"optional-replace"` - Replaces the member if upgrade fails with predefined exit codes. Takes an effect only on DBServer
19831987
* `"manual"` - Waits for the manual upgrade. Requires replacement or the annotation on the member
19841988

19851989
***
@@ -2319,13 +2323,14 @@ LabelsMode Define labels mode which should be use while overriding labels
23192323

23202324
### .spec.dbservers.manualUpgradeMode
23212325

2322-
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L224)</sup>
2326+
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L226)</sup>
23232327

23242328
ManualUpgradeMode Defines the manually triggered upgrade mode for the Member
23252329

23262330
Possible Values:
23272331
* `"inplace"` (default) - Inplace Upgrade procedure (with Upgrade initContainer)
23282332
* `"replace"` - Replaces server instead of upgrading. Takes an effect only on DBServer
2333+
* `"optional-replace"` - Replaces the member if upgrade fails with predefined exit codes. Takes an effect only on DBServer
23292334

23302335
***
23312336

@@ -2710,7 +2715,7 @@ Links:
27102715

27112716
### .spec.dbservers.restartPolicy
27122717

2713-
Type: `core.RestartPolicy` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L231)</sup>
2718+
Type: `core.RestartPolicy` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L233)</sup>
27142719

27152720
RestartPolicy for all pods within the group.
27162721

@@ -2951,13 +2956,14 @@ Links:
29512956

29522957
### .spec.dbservers.upgradeMode
29532958

2954-
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L218)</sup>
2959+
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L219)</sup>
29552960

29562961
UpgradeMode Defines the upgrade mode for the Member
29572962

29582963
Possible Values:
29592964
* `"inplace"` (default) - Inplace Upgrade procedure (with Upgrade initContainer)
29602965
* `"replace"` - Replaces server instead of upgrading. Takes an effect only on DBServer
2966+
* `"optional-replace"` - Replaces the member if upgrade fails with predefined exit codes. Takes an effect only on DBServer
29612967
* `"manual"` - Waits for the manual upgrade. Requires replacement or the annotation on the member
29622968

29632969
***
@@ -3520,13 +3526,14 @@ LabelsMode Define labels mode which should be use while overriding labels
35203526

35213527
### .spec.gateways.manualUpgradeMode
35223528

3523-
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L224)</sup>
3529+
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L226)</sup>
35243530

35253531
ManualUpgradeMode Defines the manually triggered upgrade mode for the Member
35263532

35273533
Possible Values:
35283534
* `"inplace"` (default) - Inplace Upgrade procedure (with Upgrade initContainer)
35293535
* `"replace"` - Replaces server instead of upgrading. Takes an effect only on DBServer
3536+
* `"optional-replace"` - Replaces the member if upgrade fails with predefined exit codes. Takes an effect only on DBServer
35303537

35313538
***
35323539

@@ -3911,7 +3918,7 @@ Links:
39113918

39123919
### .spec.gateways.restartPolicy
39133920

3914-
Type: `core.RestartPolicy` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L231)</sup>
3921+
Type: `core.RestartPolicy` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L233)</sup>
39153922

39163923
RestartPolicy for all pods within the group.
39173924

@@ -4152,13 +4159,14 @@ Links:
41524159

41534160
### .spec.gateways.upgradeMode
41544161

4155-
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L218)</sup>
4162+
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L219)</sup>
41564163

41574164
UpgradeMode Defines the upgrade mode for the Member
41584165

41594166
Possible Values:
41604167
* `"inplace"` (default) - Inplace Upgrade procedure (with Upgrade initContainer)
41614168
* `"replace"` - Replaces server instead of upgrading. Takes an effect only on DBServer
4169+
* `"optional-replace"` - Replaces the member if upgrade fails with predefined exit codes. Takes an effect only on DBServer
41624170
* `"manual"` - Waits for the manual upgrade. Requires replacement or the annotation on the member
41634171

41644172
***
@@ -5263,13 +5271,14 @@ LabelsMode Define labels mode which should be use while overriding labels
52635271

52645272
### .spec.single.manualUpgradeMode
52655273

5266-
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L224)</sup>
5274+
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L226)</sup>
52675275

52685276
ManualUpgradeMode Defines the manually triggered upgrade mode for the Member
52695277

52705278
Possible Values:
52715279
* `"inplace"` (default) - Inplace Upgrade procedure (with Upgrade initContainer)
52725280
* `"replace"` - Replaces server instead of upgrading. Takes an effect only on DBServer
5281+
* `"optional-replace"` - Replaces the member if upgrade fails with predefined exit codes. Takes an effect only on DBServer
52735282

52745283
***
52755284

@@ -5654,7 +5663,7 @@ Links:
56545663

56555664
### .spec.single.restartPolicy
56565665

5657-
Type: `core.RestartPolicy` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L231)</sup>
5666+
Type: `core.RestartPolicy` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L233)</sup>
56585667

56595668
RestartPolicy for all pods within the group.
56605669

@@ -5895,13 +5904,14 @@ Links:
58955904

58965905
### .spec.single.upgradeMode
58975906

5898-
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L218)</sup>
5907+
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L219)</sup>
58995908

59005909
UpgradeMode Defines the upgrade mode for the Member
59015910

59025911
Possible Values:
59035912
* `"inplace"` (default) - Inplace Upgrade procedure (with Upgrade initContainer)
59045913
* `"replace"` - Replaces server instead of upgrading. Takes an effect only on DBServer
5914+
* `"optional-replace"` - Replaces the member if upgrade fails with predefined exit codes. Takes an effect only on DBServer
59055915
* `"manual"` - Waits for the manual upgrade. Requires replacement or the annotation on the member
59065916

59075917
***
@@ -6455,13 +6465,14 @@ LabelsMode Define labels mode which should be use while overriding labels
64556465

64566466
### .spec.syncmasters.manualUpgradeMode
64576467

6458-
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L224)</sup>
6468+
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L226)</sup>
64596469

64606470
ManualUpgradeMode Defines the manually triggered upgrade mode for the Member
64616471

64626472
Possible Values:
64636473
* `"inplace"` (default) - Inplace Upgrade procedure (with Upgrade initContainer)
64646474
* `"replace"` - Replaces server instead of upgrading. Takes an effect only on DBServer
6475+
* `"optional-replace"` - Replaces the member if upgrade fails with predefined exit codes. Takes an effect only on DBServer
64656476

64666477
***
64676478

@@ -6846,7 +6857,7 @@ Links:
68466857

68476858
### .spec.syncmasters.restartPolicy
68486859

6849-
Type: `core.RestartPolicy` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L231)</sup>
6860+
Type: `core.RestartPolicy` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L233)</sup>
68506861

68516862
RestartPolicy for all pods within the group.
68526863

@@ -7087,13 +7098,14 @@ Links:
70877098

70887099
### .spec.syncmasters.upgradeMode
70897100

7090-
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L218)</sup>
7101+
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L219)</sup>
70917102

70927103
UpgradeMode Defines the upgrade mode for the Member
70937104

70947105
Possible Values:
70957106
* `"inplace"` (default) - Inplace Upgrade procedure (with Upgrade initContainer)
70967107
* `"replace"` - Replaces server instead of upgrading. Takes an effect only on DBServer
7108+
* `"optional-replace"` - Replaces the member if upgrade fails with predefined exit codes. Takes an effect only on DBServer
70977109
* `"manual"` - Waits for the manual upgrade. Requires replacement or the annotation on the member
70987110

70997111
***
@@ -7425,13 +7437,14 @@ LabelsMode Define labels mode which should be use while overriding labels
74257437

74267438
### .spec.syncworkers.manualUpgradeMode
74277439

7428-
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L224)</sup>
7440+
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L226)</sup>
74297441

74307442
ManualUpgradeMode Defines the manually triggered upgrade mode for the Member
74317443

74327444
Possible Values:
74337445
* `"inplace"` (default) - Inplace Upgrade procedure (with Upgrade initContainer)
74347446
* `"replace"` - Replaces server instead of upgrading. Takes an effect only on DBServer
7447+
* `"optional-replace"` - Replaces the member if upgrade fails with predefined exit codes. Takes an effect only on DBServer
74357448

74367449
***
74377450

@@ -7816,7 +7829,7 @@ Links:
78167829

78177830
### .spec.syncworkers.restartPolicy
78187831

7819-
Type: `core.RestartPolicy` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L231)</sup>
7832+
Type: `core.RestartPolicy` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L233)</sup>
78207833

78217834
RestartPolicy for all pods within the group.
78227835

@@ -8057,13 +8070,14 @@ Links:
80578070

80588071
### .spec.syncworkers.upgradeMode
80598072

8060-
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L218)</sup>
8073+
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/deployment/v1/server_group_spec.go#L219)</sup>
80618074

80628075
UpgradeMode Defines the upgrade mode for the Member
80638076

80648077
Possible Values:
80658078
* `"inplace"` (default) - Inplace Upgrade procedure (with Upgrade initContainer)
80668079
* `"replace"` - Replaces server instead of upgrading. Takes an effect only on DBServer
8080+
* `"optional-replace"` - Replaces the member if upgrade fails with predefined exit codes. Takes an effect only on DBServer
80678081
* `"manual"` - Waits for the manual upgrade. Requires replacement or the annotation on the member
80688082

80698083
***

pkg/apis/deployment/v1/server_group_spec.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,13 +213,15 @@ type ServerGroupSpec struct {
213213
// UpgradeMode Defines the upgrade mode for the Member
214214
// +doc/enum: inplace|Inplace Upgrade procedure (with Upgrade initContainer)
215215
// +doc/enum: replace|Replaces server instead of upgrading. Takes an effect only on DBServer
216+
// +doc/enum: optional-replace|Replaces the member if upgrade fails with predefined exit codes. Takes an effect only on DBServer
216217
// +doc/enum: manual| Waits for the manual upgrade. Requires replacement or the annotation on the member
217218
// +doc/default: inplace
218219
UpgradeMode *ServerGroupUpgradeMode `json:"upgradeMode,omitempty"`
219220

220221
// ManualUpgradeMode Defines the manually triggered upgrade mode for the Member
221222
// +doc/enum: inplace|Inplace Upgrade procedure (with Upgrade initContainer)
222223
// +doc/enum: replace|Replaces server instead of upgrading. Takes an effect only on DBServer
224+
// +doc/enum: optional-replace|Replaces the member if upgrade fails with predefined exit codes. Takes an effect only on DBServer
223225
// +doc/default: inplace
224226
ManualUpgradeMode *ServerGroupUpgradeMode `json:"manualUpgradeMode,omitempty"`
225227

pkg/apis/deployment/v1/server_group_spec_upgrade_mode.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ const (
3232
// ServerGroupUpgradeModeReplace Replaces server instead of upgrading. Takes an effect only on DBServer
3333
ServerGroupUpgradeModeReplace ServerGroupUpgradeMode = "replace"
3434

35+
// ServerGroupUpgradeModeOptionalReplace Replaces the member if upgrade fails with specific exit codes:
36+
// Code 30: In case of the Compaction Failure
37+
ServerGroupUpgradeModeOptionalReplace ServerGroupUpgradeMode = "optional-replace"
38+
3539
// ServerGroupUpgradeModeManual Waits for the manual upgrade. Requires replacement or the annotation on the member.
3640
// Requires annotation `upgrade.deployment.arangodb.com/allow` on a Pod
3741
ServerGroupUpgradeModeManual ServerGroupUpgradeMode = "manual"
@@ -42,7 +46,7 @@ const (
4246

4347
func (n *ServerGroupUpgradeMode) Validate() error {
4448
switch v := n.Get(); v {
45-
case ServerGroupUpgradeModeInplace, ServerGroupUpgradeModeReplace, ServerGroupUpgradeModeManual:
49+
case ServerGroupUpgradeModeInplace, ServerGroupUpgradeModeReplace, ServerGroupUpgradeModeManual, ServerGroupUpgradeModeOptionalReplace:
4650
return nil
4751
default:
4852
return errors.WithStack(errors.Wrapf(ValidationError, "Unknown UpgradeMode %s", v.String()))

pkg/apis/deployment/v2alpha1/server_group_spec.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,13 +213,15 @@ type ServerGroupSpec struct {
213213
// UpgradeMode Defines the upgrade mode for the Member
214214
// +doc/enum: inplace|Inplace Upgrade procedure (with Upgrade initContainer)
215215
// +doc/enum: replace|Replaces server instead of upgrading. Takes an effect only on DBServer
216+
// +doc/enum: optional-replace|Replaces the member if upgrade fails with predefined exit codes. Takes an effect only on DBServer
216217
// +doc/enum: manual| Waits for the manual upgrade. Requires replacement or the annotation on the member
217218
// +doc/default: inplace
218219
UpgradeMode *ServerGroupUpgradeMode `json:"upgradeMode,omitempty"`
219220

220221
// ManualUpgradeMode Defines the manually triggered upgrade mode for the Member
221222
// +doc/enum: inplace|Inplace Upgrade procedure (with Upgrade initContainer)
222223
// +doc/enum: replace|Replaces server instead of upgrading. Takes an effect only on DBServer
224+
// +doc/enum: optional-replace|Replaces the member if upgrade fails with predefined exit codes. Takes an effect only on DBServer
223225
// +doc/default: inplace
224226
ManualUpgradeMode *ServerGroupUpgradeMode `json:"manualUpgradeMode,omitempty"`
225227

pkg/apis/deployment/v2alpha1/server_group_spec_upgrade_mode.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ const (
3232
// ServerGroupUpgradeModeReplace Replaces server instead of upgrading. Takes an effect only on DBServer
3333
ServerGroupUpgradeModeReplace ServerGroupUpgradeMode = "replace"
3434

35+
// ServerGroupUpgradeModeOptionalReplace Replaces the member if upgrade fails with specific exit codes:
36+
// Code 30: In case of the Compaction Failure
37+
ServerGroupUpgradeModeOptionalReplace ServerGroupUpgradeMode = "optional-replace"
38+
3539
// ServerGroupUpgradeModeManual Waits for the manual upgrade. Requires replacement or the annotation on the member.
3640
// Requires annotation `upgrade.deployment.arangodb.com/allow` on a Pod
3741
ServerGroupUpgradeModeManual ServerGroupUpgradeMode = "manual"
@@ -42,7 +46,7 @@ const (
4246

4347
func (n *ServerGroupUpgradeMode) Validate() error {
4448
switch v := n.Get(); v {
45-
case ServerGroupUpgradeModeInplace, ServerGroupUpgradeModeReplace, ServerGroupUpgradeModeManual:
49+
case ServerGroupUpgradeModeInplace, ServerGroupUpgradeModeReplace, ServerGroupUpgradeModeManual, ServerGroupUpgradeModeOptionalReplace:
4650
return nil
4751
default:
4852
return errors.WithStack(errors.Wrapf(ValidationError, "Unknown UpgradeMode %s", v.String()))

0 commit comments

Comments
 (0)