Skip to content

Commit 2624ba9

Browse files
committed
Record suspension metric
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
1 parent f90e037 commit 2624ba9

6 files changed

+88
-5
lines changed

controllers/bucket_controller.go

+22
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,9 @@ func (r *BucketReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctr
9191
return ctrl.Result{}, client.IgnoreNotFound(err)
9292
}
9393

94+
// Record suspended status metric
95+
defer r.recordSuspension(ctx, bucket)
96+
9497
// Add our finalizer if it does not exist
9598
if !controllerutil.ContainsFinalizer(&bucket, sourcev1.SourceFinalizer) {
9699
controllerutil.AddFinalizer(&bucket, sourcev1.SourceFinalizer)
@@ -421,6 +424,25 @@ func (r *BucketReconciler) recordReadiness(ctx context.Context, bucket sourcev1.
421424
}
422425
}
423426

427+
func (r *BucketReconciler) recordSuspension(ctx context.Context, bucket sourcev1.Bucket) {
428+
if r.MetricsRecorder == nil {
429+
return
430+
}
431+
log := logr.FromContext(ctx)
432+
433+
objRef, err := reference.GetReference(r.Scheme, &bucket)
434+
if err != nil {
435+
log.Error(err, "unable to record suspended metric")
436+
return
437+
}
438+
439+
if !bucket.DeletionTimestamp.IsZero() {
440+
r.MetricsRecorder.RecordSuspend(*objRef, false)
441+
} else {
442+
r.MetricsRecorder.RecordSuspend(*objRef, bucket.Spec.Suspend)
443+
}
444+
}
445+
424446
func (r *BucketReconciler) updateStatus(ctx context.Context, req ctrl.Request, newStatus sourcev1.BucketStatus) error {
425447
var bucket sourcev1.Bucket
426448
if err := r.Get(ctx, req.NamespacedName, &bucket); err != nil {

controllers/gitrepository_controller.go

+22
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,9 @@ func (r *GitRepositoryReconciler) Reconcile(ctx context.Context, req ctrl.Reques
8787
return ctrl.Result{}, client.IgnoreNotFound(err)
8888
}
8989

90+
// Record suspended status metric
91+
defer r.recordSuspension(ctx, repository)
92+
9093
// Add our finalizer if it does not exist
9194
if !controllerutil.ContainsFinalizer(&repository, sourcev1.SourceFinalizer) {
9295
controllerutil.AddFinalizer(&repository, sourcev1.SourceFinalizer)
@@ -364,6 +367,25 @@ func (r *GitRepositoryReconciler) recordReadiness(ctx context.Context, repositor
364367
}
365368
}
366369

370+
func (r *GitRepositoryReconciler) recordSuspension(ctx context.Context, gitrepository sourcev1.GitRepository) {
371+
if r.MetricsRecorder == nil {
372+
return
373+
}
374+
log := logr.FromContext(ctx)
375+
376+
objRef, err := reference.GetReference(r.Scheme, &gitrepository)
377+
if err != nil {
378+
log.Error(err, "unable to record suspended metric")
379+
return
380+
}
381+
382+
if !gitrepository.DeletionTimestamp.IsZero() {
383+
r.MetricsRecorder.RecordSuspend(*objRef, false)
384+
} else {
385+
r.MetricsRecorder.RecordSuspend(*objRef, gitrepository.Spec.Suspend)
386+
}
387+
}
388+
367389
func (r *GitRepositoryReconciler) updateStatus(ctx context.Context, req ctrl.Request, newStatus sourcev1.GitRepositoryStatus) error {
368390
var repository sourcev1.GitRepository
369391
if err := r.Get(ctx, req.NamespacedName, &repository); err != nil {

controllers/helmchart_controller.go

+22
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,9 @@ func (r *HelmChartReconciler) Reconcile(ctx context.Context, req ctrl.Request) (
123123
return ctrl.Result{Requeue: true}, client.IgnoreNotFound(err)
124124
}
125125

126+
// Record suspended status metric
127+
defer r.recordSuspension(ctx, chart)
128+
126129
// Add our finalizer if it does not exist
127130
if !controllerutil.ContainsFinalizer(&chart, sourcev1.SourceFinalizer) {
128131
controllerutil.AddFinalizer(&chart, sourcev1.SourceFinalizer)
@@ -939,3 +942,22 @@ func validHelmChartName(s string) error {
939942
}
940943
return nil
941944
}
945+
946+
func (r *HelmChartReconciler) recordSuspension(ctx context.Context, chart sourcev1.HelmChart) {
947+
if r.MetricsRecorder == nil {
948+
return
949+
}
950+
log := logr.FromContext(ctx)
951+
952+
objRef, err := reference.GetReference(r.Scheme, &chart)
953+
if err != nil {
954+
log.Error(err, "unable to record suspended metric")
955+
return
956+
}
957+
958+
if !chart.DeletionTimestamp.IsZero() {
959+
r.MetricsRecorder.RecordSuspend(*objRef, false)
960+
} else {
961+
r.MetricsRecorder.RecordSuspend(*objRef, chart.Spec.Suspend)
962+
}
963+
}

controllers/helmrepository_controller.go

+19
Original file line numberDiff line numberDiff line change
@@ -361,3 +361,22 @@ func (r *HelmRepositoryReconciler) updateStatus(ctx context.Context, req ctrl.Re
361361

362362
return r.Status().Patch(ctx, &repository, patch)
363363
}
364+
365+
func (r *HelmRepositoryReconciler) recordSuspension(ctx context.Context, hr sourcev1.HelmRepository) {
366+
if r.MetricsRecorder == nil {
367+
return
368+
}
369+
log := logr.FromContext(ctx)
370+
371+
objRef, err := reference.GetReference(r.Scheme, &hr)
372+
if err != nil {
373+
log.Error(err, "unable to record suspended metric")
374+
return
375+
}
376+
377+
if !hr.DeletionTimestamp.IsZero() {
378+
r.MetricsRecorder.RecordSuspend(*objRef, false)
379+
} else {
380+
r.MetricsRecorder.RecordSuspend(*objRef, hr.Spec.Suspend)
381+
}
382+
}

go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ require (
1313
github.com/fluxcd/pkg/gitutil v0.0.1
1414
github.com/fluxcd/pkg/helmtestserver v0.1.0
1515
github.com/fluxcd/pkg/lockedfile v0.0.5
16-
github.com/fluxcd/pkg/runtime v0.8.4
16+
github.com/fluxcd/pkg/runtime v0.8.5
1717
github.com/fluxcd/pkg/ssh v0.0.5
1818
github.com/fluxcd/pkg/untar v0.0.5
1919
github.com/fluxcd/pkg/version v0.0.1

go.sum

+2-4
Original file line numberDiff line numberDiff line change
@@ -262,8 +262,8 @@ github.com/fluxcd/pkg/helmtestserver v0.1.0 h1:RiVVxIHD6PJdKinW46feFIYf1LUj6xXSp
262262
github.com/fluxcd/pkg/helmtestserver v0.1.0/go.mod h1:3L+tbPn74PsHwHsyhbfk/kZAosrwMFTTA92XEFiwVAE=
263263
github.com/fluxcd/pkg/lockedfile v0.0.5 h1:C3T8wfdff1UY1bvplmCkGOLrdMWJHO8Q8+tdlEXJYzQ=
264264
github.com/fluxcd/pkg/lockedfile v0.0.5/go.mod h1:uAtPUBId6a2RqO84MTH5HKGX0SbM1kNW3Wr/FhYyDVA=
265-
github.com/fluxcd/pkg/runtime v0.8.4 h1:amuhfoHGCUfFCPXg3Zrcyy7f9J+fho+/+FbQDDyewko=
266-
github.com/fluxcd/pkg/runtime v0.8.4/go.mod h1:JD0eZIn5xkTeHHQUWXSqJPIh/ecO0d0qrUKbSVHnpnw=
265+
github.com/fluxcd/pkg/runtime v0.8.5 h1:ynh8fszbLQ3QSisQBNOABEUTnvt+/QfCdaL6gOJQcoQ=
266+
github.com/fluxcd/pkg/runtime v0.8.5/go.mod h1:JD0eZIn5xkTeHHQUWXSqJPIh/ecO0d0qrUKbSVHnpnw=
267267
github.com/fluxcd/pkg/ssh v0.0.5 h1:rnbFZ7voy2JBlUfMbfyqArX2FYaLNpDhccGFC3qW83A=
268268
github.com/fluxcd/pkg/ssh v0.0.5/go.mod h1:7jXPdXZpc0ttMNz2kD9QuMi3RNn/e0DOFbj0Tij/+Hs=
269269
github.com/fluxcd/pkg/testserver v0.0.2 h1:SoaMtO9cE5p/wl2zkGudzflnEHd9mk68CGjZOo7w0Uk=
@@ -603,8 +603,6 @@ github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182aff
603603
github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
604604
github.com/minio/md5-simd v1.1.0 h1:QPfiOqlZH+Cj9teu0t9b1nTBfPbyTl16Of5MeuShdK4=
605605
github.com/minio/md5-simd v1.1.0/go.mod h1:XpBqgZULrMYD3R+M28PcmP0CkI7PEMzB3U77ZrKZ0Gw=
606-
github.com/minio/minio-go/v7 v7.0.5 h1:I2NIJ2ojwJqD/YByemC1M59e1b4FW9kS7NlOar7HPV4=
607-
github.com/minio/minio-go/v7 v7.0.5/go.mod h1:TA0CQCjJZHM5SJj9IjqR0NmpmQJ6bCbXifAJ3mUU6Hw=
608606
github.com/minio/minio-go/v7 v7.0.10 h1:1oUKe4EOPUEhw2qnPQaPsJ0lmVTYLFu03SiItauXs94=
609607
github.com/minio/minio-go/v7 v7.0.10/go.mod h1:td4gW1ldOsj1PbSNS+WYK43j+P1XVhX/8W8awaYlBFo=
610608
github.com/minio/sha256-simd v0.1.1 h1:5QHSlgo3nt5yKOJrC7W8w7X+NFl8cMPZm96iu8kKUJU=

0 commit comments

Comments
 (0)