Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 9cd2858

Browse files
[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)

AltStyle によって変換されたページ (->オリジナル) /