Skip to content

Commit 2c59705

Browse files
authored
[Bugfix] Ensure Wait actions to be present after AddMember (#1032)
1 parent 55ac6e4 commit 2c59705

File tree

6 files changed

+8
-25
lines changed

6 files changed

+8
-25
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
- (Feature) Unify agency access
2424
- (Feature) Change DBServer Cleanup Logic
2525
- (Feature) Set Logger format
26+
- (Bugfix) Ensure Wait actions to be present after AddMember
2627

2728
## [1.2.13](https://github.com/arangodb/kube-arangodb/tree/1.2.13) (2022-06-07)
2829
- (Bugfix) Fix arangosync members state inspection

pkg/deployment/reconcile/action_add_member.go

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -74,21 +74,9 @@ func (a *actionAddMember) Start(ctx context.Context) (bool, error) {
7474

7575
// ActionPlanAppender appends wait methods to the plan
7676
func (a *actionAddMember) ActionPlanAppender(current api.Plan) (api.Plan, bool) {
77-
var app api.Plan
78-
79-
if _, ok := a.action.Params[api.ActionTypeWaitForMemberUp.String()]; ok {
80-
app = append(app, actions.NewAction(api.ActionTypeWaitForMemberUp, a.action.Group, withPredefinedMember(a.newMemberID), "Wait for member in sync after creation"))
81-
}
82-
83-
if _, ok := a.action.Params[api.ActionTypeWaitForMemberInSync.String()]; ok {
84-
app = append(app, actions.NewAction(api.ActionTypeWaitForMemberInSync, a.action.Group, withPredefinedMember(a.newMemberID), "Wait for member in sync after creation"))
77+
np := api.Plan{
78+
actions.NewAction(api.ActionTypeWaitForMemberUp, a.action.Group, withPredefinedMember(a.newMemberID), "Wait for member in sync after creation"),
79+
actions.NewAction(api.ActionTypeWaitForMemberInSync, a.action.Group, withPredefinedMember(a.newMemberID), "Wait for member in sync after creation"),
8580
}
86-
87-
if len(app) > 0 {
88-
return app.AfterFirst(func(a api.Action) bool {
89-
return a.Type == api.ActionTypeAddMember
90-
}, app...), true
91-
}
92-
93-
return current, false
81+
return append(current, np...), true
9482
}

pkg/deployment/reconcile/plan_builder_normal.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,6 @@ func (r *Reconciler) createMemberFailedRestorePlan(ctx context.Context, apiObjec
149149
plan = append(plan,
150150
actions.NewAction(api.ActionTypeRemoveMember, group, m),
151151
actions.NewAction(api.ActionTypeAddMember, group, withPredefinedMember("")),
152-
actions.NewAction(api.ActionTypeWaitForMemberUp, group, withPredefinedMember(api.MemberIDPreviousAction)),
153152
)
154153
} else {
155154
memberLog.Info("Restoring old member. Recreation is disabled for group")

pkg/deployment/reconcile/plan_builder_scale.go

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -119,9 +119,7 @@ func (r *Reconciler) createReplaceMemberPlan(ctx context.Context, apiObject k8su
119119
if member.Conditions.IsTrue(api.ConditionTypeMarkedToRemove) {
120120
switch group {
121121
case api.ServerGroupDBServers:
122-
plan = append(plan, actions.NewAction(api.ActionTypeAddMember, group, withPredefinedMember("")).
123-
AddParam(api.ActionTypeWaitForMemberInSync.String(), "").
124-
AddParam(api.ActionTypeWaitForMemberUp.String(), ""))
122+
plan = append(plan, actions.NewAction(api.ActionTypeAddMember, group, withPredefinedMember("")))
125123
r.planLogger.
126124
Str("role", group.AsRole()).
127125
Debug("Creating replacement plan")
@@ -134,9 +132,7 @@ func (r *Reconciler) createReplaceMemberPlan(ctx context.Context, apiObject k8su
134132
return nil
135133
case api.ServerGroupAgents:
136134
plan = append(plan, actions.NewAction(api.ActionTypeRemoveMember, group, member),
137-
actions.NewAction(api.ActionTypeAddMember, group, withPredefinedMember("")).
138-
AddParam(api.ActionTypeWaitForMemberInSync.String(), "").
139-
AddParam(api.ActionTypeWaitForMemberUp.String(), ""))
135+
actions.NewAction(api.ActionTypeAddMember, group, withPredefinedMember("")))
140136
r.planLogger.
141137
Str("role", group.AsRole()).
142138
Debug("Creating replacement plan")

pkg/deployment/reconcile/plan_builder_storage.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ func (r *Reconciler) pvcResizePlan(group api.ServerGroup, groupSpec api.ServerGr
133133
actions.NewAction(api.ActionTypePVCResized, group, member),
134134
actions.NewAction(api.ActionTypeRotateStopMember, group, member),
135135
actions.NewAction(api.ActionTypeWaitForMemberUp, group, member),
136+
actions.NewAction(api.ActionTypeWaitForMemberInSync, group, member),
136137
}
137138
default:
138139
r.planLogger.Str("server-group", group.AsRole()).Str("mode", mode.String()).

pkg/deployment/reconcile/plan_builder_test.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1057,7 +1057,6 @@ func TestCreatePlan(t *testing.T) {
10571057
ExpectedPlan: []api.Action{
10581058
actions.NewAction(api.ActionTypeRemoveMember, api.ServerGroupCoordinators, withPredefinedMember("id")),
10591059
actions.NewAction(api.ActionTypeAddMember, api.ServerGroupCoordinators, withPredefinedMember("")),
1060-
actions.NewAction(api.ActionTypeWaitForMemberUp, api.ServerGroupCoordinators, withPredefinedMember(api.MemberIDPreviousAction)),
10611060
},
10621061
ExpectedLog: "Creating member replacement plan because member has failed",
10631062
},
@@ -1076,7 +1075,6 @@ func TestCreatePlan(t *testing.T) {
10761075
ExpectedPlan: []api.Action{
10771076
actions.NewAction(api.ActionTypeRemoveMember, api.ServerGroupDBServers, withPredefinedMember("id")),
10781077
actions.NewAction(api.ActionTypeAddMember, api.ServerGroupDBServers, withPredefinedMember("")),
1079-
actions.NewAction(api.ActionTypeWaitForMemberUp, api.ServerGroupDBServers, withPredefinedMember(api.MemberIDPreviousAction)),
10801078
},
10811079
ExpectedLog: "Creating member replacement plan because member has failed",
10821080
},

0 commit comments

Comments
 (0)