Skip to content

Commit a4d7331

Browse files
authored
[Bugfix] Use Rendered Spec in case of scheduling compare (#1640)
1 parent f5c362e commit a4d7331

File tree

2 files changed

+22
-22
lines changed

2 files changed

+22
-22
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
- (Feature) Scheduler BatchJob Integration Service
2020
- (Maintenance) Update Go to 1.22.2
2121
- (Feature) Object Checksum
22+
- (Bugfix) Use Rendered Spec in case of scheduling compare
2223

2324
## [1.2.39](https://github.com/arangodb/kube-arangodb/tree/1.2.39) (2024-03-11)
2425
- (Feature) Extract Scheduler API

pkg/deployment/reconcile/plan_builder_member_pod_scheduling_failure.go

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
//
22
// DISCLAIMER
33
//
4-
// Copyright 2023 ArangoDB GmbH, Cologne, Germany
4+
// Copyright 2023-2024 ArangoDB GmbH, Cologne, Germany
55
//
66
// Licensed under the Apache License, Version 2.0 (the "License");
77
// you may not use this file except in compliance with the License.
@@ -67,31 +67,30 @@ func (r *Reconciler) createMemberPodSchedulingFailurePlan(ctx context.Context,
6767
continue
6868
}
6969

70-
if r.isSchedulingParametersChanged(renderedPod.Spec, m.Member, context) {
71-
l.Info("Adding KillMemberPod action: scheduling failed and parameters already updated")
72-
p = append(p,
73-
actions.NewAction(api.ActionTypeKillMemberPod, m.Group, m.Member, "Scheduling failed"),
74-
)
70+
cache, ok := context.ACS().ClusterCache(m.Member.ClusterID)
71+
if !ok {
72+
continue
7573
}
76-
}
7774

78-
return p
79-
}
75+
memberName := m.Member.ArangoMemberName(context.GetName(), m.Group)
76+
member, ok := cache.ArangoMember().V1().GetSimple(memberName)
77+
if !ok {
78+
continue
79+
}
8080

81-
// isSchedulingParametersChanged returns true if parameters related to pod scheduling has changed
82-
func (r *Reconciler) isSchedulingParametersChanged(expectedSpec core.PodSpec, member api.MemberStatus, context PlanBuilderContext) bool {
83-
cache, ok := context.ACS().ClusterCache(member.ClusterID)
84-
if !ok {
85-
return false
86-
}
87-
pod, ok := cache.Pod().V1().GetSimple(member.Pod.GetName())
88-
if !ok {
89-
return false
90-
}
91-
if r.schedulingParametersAreTheSame(expectedSpec, pod.Spec) {
92-
return false
81+
if template := member.Spec.Template; template != nil {
82+
if pod := template.PodSpec; pod != nil {
83+
if !r.schedulingParametersAreTheSame(renderedPod.Spec, pod.Spec) {
84+
l.Info("Adding KillMemberPod action: scheduling failed and parameters already updated")
85+
p = append(p,
86+
actions.NewAction(api.ActionTypeKillMemberPod, m.Group, m.Member, "Scheduling failed"),
87+
)
88+
}
89+
}
90+
}
9391
}
94-
return true
92+
93+
return p
9594
}
9695

9796
func (r *Reconciler) schedulingParametersAreTheSame(expectedSpec, actualSpec core.PodSpec) bool {

0 commit comments

Comments
 (0)