Skip to content

Commit f3b799c

Browse files
kimtorefrodesundbyjhrv
committed
Populate the .status.problems field with critical errors
This patch duplicates the information from `.status.conditions` into the new `.status.problems` field. Co-authored-by: Frode Sundby <[email protected]> Co-authored-by: Johnny Horvi <[email protected]>
1 parent a942164 commit f3b799c

File tree

3 files changed

+10
-3
lines changed

3 files changed

+10
-3
lines changed

Diff for: go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ require (
1313
github.com/magiconair/properties v1.8.9
1414
github.com/mitchellh/hashstructure v1.1.0
1515
github.com/mitchellh/mapstructure v1.5.0
16-
github.com/nais/liberator v0.0.0-20250120121331-1a7304c71267
16+
github.com/nais/liberator v0.0.0-20250127133505-12f7ef36a778
1717
github.com/novln/docker-parser v1.0.0
1818
github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.74.0
1919
github.com/prometheus/client_golang v1.20.5

Diff for: go.sum

+2-2
Original file line numberDiff line numberDiff line change
@@ -123,8 +123,8 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G
123123
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
124124
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
125125
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
126-
github.com/nais/liberator v0.0.0-20250120121331-1a7304c71267 h1:Ngg/i5VCv0yinrrlOef9ualH6Xml0Ga3DcxlfESUHFU=
127-
github.com/nais/liberator v0.0.0-20250120121331-1a7304c71267/go.mod h1:DtQgc26XvoZFe8jy0++wbuFUu5yCFTQ3vGV+y7TA7Uw=
126+
github.com/nais/liberator v0.0.0-20250127133505-12f7ef36a778 h1:MWdNTpbe4mXTWZhfRzA7w6mX7AB53+L8Fy879ZJNzpg=
127+
github.com/nais/liberator v0.0.0-20250127133505-12f7ef36a778/go.mod h1:PwYxh3ZMUsk4YluGK+XbamXcMCQUpCBM/DUSQdU/Th0=
128128
github.com/novln/docker-parser v1.0.0 h1:PjEBd9QnKixcWczNGyEdfUrP6GR0YUilAqG7Wksg3uc=
129129
github.com/novln/docker-parser v1.0.0/go.mod h1:oCeM32fsoUwkwByB5wVjsrsVQySzPWkl3JdlTn1txpE=
130130
github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE=

Diff for: pkg/synchronizer/synchronizer.go

+7
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,9 @@ func (n *Synchronizer) Reconcile(ctx context.Context, req ctrl.Request, app reso
152152
// fixme: can be removed when we don't have garbage data anymore. Late 2024?
153153
app.GetStatus().Conditions = nil
154154

155+
// Clear out any old problems from previous synchronizations.
156+
app.GetStatus().ClearProblems()
157+
155158
kind := app.GetObjectKind().GroupVersionKind().Kind
156159
changed := true
157160

@@ -224,6 +227,7 @@ func (n *Synchronizer) Reconcile(ctx context.Context, req ctrl.Request, app reso
224227
rollout, err := n.Prepare(ctx, app)
225228
if err != nil {
226229
app.GetStatus().SetSynchronizationStateWithCondition(events.FailedPrepare, err.Error())
230+
app.GetStatus().SetError(err.Error())
227231
n.reportError(ctx, app.GetStatus().SynchronizationState, err, app)
228232
return ctrl.Result{RequeueAfter: prepareRetryInterval}, nil
229233
}
@@ -247,6 +251,7 @@ func (n *Synchronizer) Reconcile(ctx context.Context, req ctrl.Request, app reso
247251
rollout.ResourceOperations, err = n.generator.Generate(rollout.Source, rollout.Options)
248252
if err != nil {
249253
app.GetStatus().SetSynchronizationStateWithCondition(events.FailedGenerate, err.Error())
254+
app.GetStatus().SetError(err.Error())
250255
n.reportError(ctx, app.GetStatus().SynchronizationState, err, app)
251256
return ctrl.Result{}, err
252257
}
@@ -260,9 +265,11 @@ func (n *Synchronizer) Reconcile(ctx context.Context, req ctrl.Request, app reso
260265
if err != nil {
261266
if retry {
262267
app.GetStatus().SetSynchronizationStateWithCondition(events.Retrying, err.Error())
268+
// No error in problems array, because this is a transient error which the user has no control over.
263269
n.reportError(ctx, app.GetStatus().SynchronizationState, err, app)
264270
} else {
265271
app.GetStatus().SetSynchronizationStateWithCondition(events.FailedSynchronization, err.Error())
272+
app.GetStatus().SetError(err.Error())
266273
app.GetStatus().SynchronizationHash = rollout.SynchronizationHash // permanent failure
267274
n.reportError(ctx, app.GetStatus().SynchronizationState, err, app)
268275
err = nil

0 commit comments

Comments
 (0)