Skip to content

Commit 415a44c

Browse files
sangdammadSangeetha Madamanchi
andauthored
Adapt to helm upgrade (#47)
* fix: adapt to the major helm controller upgrade 0.37.2 * updated the status to reflect all the helm release statuses even when in progress * removed the print line added for debugging * incremented the overwhelm image version --------- Co-authored-by: Sangeetha Madamanchi <smadamanchi@expediagroup.com>
1 parent b294cce commit 415a44c

File tree

4 files changed

+29
-18
lines changed

4 files changed

+29
-18
lines changed

.github/workflows/publish-latest.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ on:
55
branches: [master]
66
types: [completed]
77
env:
8-
VERSION: v0.0.11
8+
VERSION: v0.0.12
99
jobs:
1010
deploy:
1111
runs-on: ubuntu-latest

api/v1beta1/application_types.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,17 @@ func AppInProgressStatus(application *Application) {
134134
apimeta.SetStatusCondition(&application.Status.Conditions, condition)
135135
}
136136

137+
func AppUnknownStatus(application *Application, message string) {
138+
application.Status.Conditions = []metav1.Condition{}
139+
condition := metav1.Condition{
140+
Type: meta.ReadyCondition,
141+
Status: metav1.ConditionUnknown,
142+
Reason: meta.ProgressingReason,
143+
Message: message,
144+
}
145+
apimeta.SetStatusCondition(&application.Status.Conditions, condition)
146+
}
147+
137148
func AppErrorStatus(application *Application, error string) {
138149
condition := metav1.Condition{
139150
Type: meta.ReadyCondition,

controllers/application_controller.go

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -248,24 +248,26 @@ func (r *ApplicationReconciler) reconcileHelmReleaseStatus(ctx context.Context,
248248
} else {
249249
latestHRGeneration = hr.Status.LastAttemptedGeneration
250250
}
251-
if latestHRGeneration != hr.Generation {
252-
v1.AppErrorStatus(application, "updated Helm Release status not available")
253-
apimeta.RemoveStatusCondition(&application.Status.Conditions, v1.PodReady)
254-
return false, nil
255-
}
256251
helmReadyStatusNotReconciled := true
257252
for _, condition := range hr.GetConditions() {
258-
if condition.Reason == meta.ProgressingReason || condition.Status == metav1.ConditionUnknown {
259-
v1.AppInProgressStatus(application)
260-
break
261-
} else {
262-
apimeta.SetStatusCondition(&application.Status.Conditions, condition)
263-
}
264-
if condition.Type == meta.ReadyCondition && condition.Status == metav1.ConditionTrue {
265-
apimeta.RemoveStatusCondition(&application.Status.Conditions, v1.PodReady)
266-
helmReadyStatusNotReconciled = false
253+
if condition.ObservedGeneration == hr.Generation {
254+
latestHRGeneration = hr.Generation
255+
if condition.Type == meta.ReconcilingCondition {
256+
continue
257+
} else {
258+
apimeta.SetStatusCondition(&application.Status.Conditions, condition)
259+
}
260+
if condition.Type == meta.ReadyCondition && condition.Status == metav1.ConditionTrue {
261+
apimeta.RemoveStatusCondition(&application.Status.Conditions, v1.PodReady)
262+
helmReadyStatusNotReconciled = false
263+
}
267264
}
268265
}
266+
if latestHRGeneration != hr.Generation {
267+
v1.AppUnknownStatus(application, "Updated Helm Release status not yet available")
268+
apimeta.RemoveStatusCondition(&application.Status.Conditions, v1.PodReady)
269+
return false, nil
270+
}
269271
return helmReadyStatusNotReconciled, nil
270272
}
271273

controllers/application_controller_test.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package controllers
33
import (
44
"context"
55
"errors"
6-
"fmt"
76
"github.com/ExpediaGroup/overwhelm/api/v1beta1"
87
"time"
98

@@ -281,7 +280,7 @@ var _ = Describe("Application controller", func() {
281280
hr.Generation = hr.Status.LastAttemptedGeneration
282281
conditions := []metav1.Condition{{
283282
Type: meta.ReadyCondition,
284-
Status: metav1.ConditionStatus(v1.ConditionTrue),
283+
Status: metav1.ConditionStatus(v1.ConditionUnknown),
285284
ObservedGeneration: 1,
286285
LastTransitionTime: metav1.NewTime(time.Now()),
287286
Message: "Helm Release Reconciliation in Progress",
@@ -379,7 +378,6 @@ var _ = Describe("Application controller", func() {
379378
if err := k8sClient.Get(ctx, client.ObjectKey{Name: a.Name, Namespace: a.Namespace}, app); err != nil {
380379
return err
381380
}
382-
fmt.Println(app.Status.Conditions)
383381
if len(app.Status.Conditions) != 2 {
384382
return errors.New("waiting for Analysis condition")
385383
}

0 commit comments

Comments
 (0)