Skip to content

Commit 34abbcf

Browse files
committed
Address Review Comments
1 parent 076987a commit 34abbcf

File tree

2 files changed

+40
-9
lines changed

2 files changed

+40
-9
lines changed

internal/store/job.go

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
generator "k8s.io/kube-state-metrics/v2/pkg/metric_generator"
2727

2828
v1batch "k8s.io/api/batch/v1"
29+
v1 "k8s.io/api/core/v1"
2930
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3031
"k8s.io/apimachinery/pkg/runtime"
3132
"k8s.io/apimachinery/pkg/watch"
@@ -365,12 +366,9 @@ func jobMetricFamilies(allowAnnotationsList, allowLabelsList []string) []generat
365366
ms := []*metric.Metric{}
366367
for _, c := range j.Status.Conditions {
367368
if c.Type == v1batch.JobSuspended {
368-
metrics := addConditionMetrics(c.Status)
369-
for _, m := range metrics {
370-
metric := m
371-
metric.LabelKeys = []string{"condition"}
372-
ms = append(ms, metric)
373-
}
369+
ms = append(ms, &metric.Metric{
370+
Value: boolFloat64(c.Status == v1.ConditionTrue),
371+
})
374372
}
375373
}
376374

internal/store/job_test.go

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ var (
4444

4545
func TestJobStore(t *testing.T) {
4646
var trueValue = true
47+
var falseValue = false
4748

4849
// Fixed metadata on type and help text. We prepend this to every expected
4950
// output so we only have to modify a single place when doing adjustments.
@@ -308,9 +309,41 @@ func TestJobStore(t *testing.T) {
308309
kube_job_status_failed{job_name="SuspendedNoActiveDeadlineSeconds",namespace="ns1"} 0
309310
kube_job_status_start_time{job_name="SuspendedNoActiveDeadlineSeconds",namespace="ns1"} 1.495800607e+09
310311
kube_job_status_succeeded{job_name="SuspendedNoActiveDeadlineSeconds",namespace="ns1"} 0
311-
kube_job_status_suspended{job_name="SuspendedNoActiveDeadlineSeconds",namespace="ns1",condition="false"} 0
312-
kube_job_status_suspended{job_name="SuspendedNoActiveDeadlineSeconds",namespace="ns1",condition="true"} 1
313-
kube_job_status_suspended{job_name="SuspendedNoActiveDeadlineSeconds",namespace="ns1",condition="unknown"} 0
312+
kube_job_status_suspended{job_name="SuspendedNoActiveDeadlineSeconds",namespace="ns1"} 1
313+
`,
314+
},
315+
{
316+
Obj: &v1batch.Job{
317+
ObjectMeta: metav1.ObjectMeta{
318+
Name: "UnsuspendedNoActiveDeadlineSeconds",
319+
Namespace: "ns1",
320+
Generation: 1,
321+
},
322+
Status: v1batch.JobStatus{
323+
Active: 0,
324+
Failed: 0,
325+
Succeeded: 0,
326+
StartTime: &metav1.Time{Time: SuccessfulJob2StartTime},
327+
Conditions: []v1batch.JobCondition{
328+
{Type: v1batch.JobSuspended, Status: v1.ConditionFalse},
329+
},
330+
},
331+
Spec: v1batch.JobSpec{
332+
Suspend: &falseValue,
333+
Parallelism: &Parallelism1,
334+
Completions: &Completions1,
335+
},
336+
},
337+
Want: metadata + `
338+
kube_job_owner{job_name="UnsuspendedNoActiveDeadlineSeconds",namespace="ns1",owner_is_controller="",owner_kind="",owner_name=""} 1
339+
kube_job_info{job_name="UnsuspendedNoActiveDeadlineSeconds",namespace="ns1"} 1
340+
kube_job_spec_completions{job_name="UnsuspendedNoActiveDeadlineSeconds",namespace="ns1"} 1
341+
kube_job_spec_parallelism{job_name="UnsuspendedNoActiveDeadlineSeconds",namespace="ns1"} 1
342+
kube_job_status_active{job_name="UnsuspendedNoActiveDeadlineSeconds",namespace="ns1"} 0
343+
kube_job_status_failed{job_name="UnsuspendedNoActiveDeadlineSeconds",namespace="ns1"} 0
344+
kube_job_status_start_time{job_name="UnsuspendedNoActiveDeadlineSeconds",namespace="ns1"} 1.495800607e+09
345+
kube_job_status_succeeded{job_name="UnsuspendedNoActiveDeadlineSeconds",namespace="ns1"} 0
346+
kube_job_status_suspended{job_name="UnsuspendedNoActiveDeadlineSeconds",namespace="ns1"} 0
314347
`,
315348
},
316349
}

0 commit comments

Comments
 (0)