Skip to content

Commit 9951738

Browse files
authored
[Bugfix] Fix AKS Volume resize mode (#688)
1 parent 5b7dddd commit 9951738

File tree

8 files changed

+21
-6
lines changed

8 files changed

+21
-6
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Change Log
22

33
## [master](https://github.com/arangodb/kube-arangodb/tree/master) (N/A)
4+
- Fix AKS Volume Resize mode
45

56
## [1.1.4](https://github.com/arangodb/kube-arangodb/tree/1.1.4) (2021-02-15)
67
- Add support for spec.ClusterDomain to be able to use FQDN in ArangoDB cluster communication

pkg/apis/deployment/v1/member_phase.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ const (
4242
MemberPhaseShuttingDown MemberPhase = "ShuttingDown"
4343
// MemberPhaseRotating indicates that a member is being rotated
4444
MemberPhaseRotating MemberPhase = "Rotating"
45+
// MemberPhaseRotateStart indicates that a member is being rotated but wont get up outside of plan
46+
MemberPhaseRotateStart MemberPhase = "RotateStart"
4547
// MemberPhaseUpgrading indicates that a member is in the process of upgrading its database data format
4648
MemberPhaseUpgrading MemberPhase = "Upgrading"
4749
)

pkg/apis/deployment/v2alpha1/member_phase.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ const (
4242
MemberPhaseShuttingDown MemberPhase = "ShuttingDown"
4343
// MemberPhaseRotating indicates that a member is being rotated
4444
MemberPhaseRotating MemberPhase = "Rotating"
45+
// MemberPhaseRotateStart indicates that a member is being rotated but wont get up outside of plan
46+
MemberPhaseRotateStart MemberPhase = "RotateStart"
4547
// MemberPhaseUpgrading indicates that a member is in the process of upgrading its database data format
4648
MemberPhaseUpgrading MemberPhase = "Upgrading"
4749
)

pkg/deployment/reconcile/action_rotate_start_member.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ func (a *actionRotateStartMember) Start(ctx context.Context) (bool, error) {
9292
}
9393
}
9494
// Update status
95-
m.Phase = api.MemberPhaseRotating
95+
m.Phase = api.MemberPhaseRotateStart
9696

9797
if err := a.actionCtx.UpdateMember(m); err != nil {
9898
return false, errors.WithStack(err)

pkg/deployment/reconcile/plan_builder_storage.go

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,13 +141,23 @@ func pvcResizePlan(log zerolog.Logger, group api.ServerGroup, groupSpec api.Serv
141141
api.NewAction(api.ActionTypePVCResize, group, memberID),
142142
}
143143
case api.PVCResizeModeRotate:
144-
return api.Plan{
144+
var plan api.Plan
145+
146+
if group == api.ServerGroupDBServers {
147+
plan = append(plan,
148+
api.NewAction(api.ActionTypeCleanOutMember, group, memberID),
149+
)
150+
}
151+
152+
plan = append(plan,
145153
api.NewAction(api.ActionTypeRotateStartMember, group, memberID),
146154
api.NewAction(api.ActionTypePVCResize, group, memberID),
147155
api.NewAction(api.ActionTypePVCResized, group, memberID),
148156
api.NewAction(api.ActionTypeRotateStopMember, group, memberID),
149157
api.NewAction(api.ActionTypeWaitForMemberUp, group, memberID),
150-
}
158+
)
159+
160+
return plan
151161
default:
152162
log.Error().Str("server-group", group.AsRole()).Str("mode", mode.String()).
153163
Msg("Requested mode is not supported")

pkg/deployment/reconcile/timeouts.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ const (
3333
renewTLSCACertificateTimeout = time.Minute * 30
3434
operationTLSCACertificateTimeout = time.Minute * 30
3535
rotateMemberTimeout = time.Minute * 15
36-
pvcResizeTimeout = time.Minute * 15
36+
pvcResizeTimeout = time.Minute * 30
3737
pvcResizedTimeout = time.Minute * 15
3838
backupRestoreTimeout = time.Minute * 15
3939
shutdownMemberTimeout = time.Minute * 30

pkg/deployment/resilience/member_failure.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ func (r *Resilience) CheckMemberFailure() error {
5656
switch m.Phase {
5757
case api.MemberPhaseNone:
5858
continue
59-
case api.MemberPhaseUpgrading, api.MemberPhaseRotating, api.MemberPhaseCleanOut:
59+
case api.MemberPhaseUpgrading, api.MemberPhaseRotating, api.MemberPhaseCleanOut, api.MemberPhaseRotateStart:
6060
if len(status.Plan) == 0 {
6161
log.Error().Msgf("No plan but member is in phase %s - marking as failed", m.Phase)
6262
m.Phase = api.MemberPhaseFailed

pkg/deployment/resources/pod_inspector.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ func (r *Resources) InspectPods(ctx context.Context, cachedStatus inspector.Insp
248248
case api.MemberPhaseNone:
249249
// Do nothing
250250
log.Debug().Str("pod-name", podName).Msg("PodPhase is None, waiting for the pod to be recreated")
251-
case api.MemberPhaseShuttingDown, api.MemberPhaseUpgrading, api.MemberPhaseFailed:
251+
case api.MemberPhaseShuttingDown, api.MemberPhaseUpgrading, api.MemberPhaseFailed, api.MemberPhaseRotateStart:
252252
// Shutdown was intended, so not need to do anything here.
253253
// Just mark terminated
254254
wasTerminated := m.Conditions.IsTrue(api.ConditionTypeTerminated)

0 commit comments

Comments
 (0)