- APISnoop org-flow: Batchv1JobStatusTest.org
- Test approval issue : #
- Test PR : !
- Two weeks soak start date : testgrid-link
- Two weeks soak end date : xxxx-xx-xx
- Test promotion PR : !
According to this APIsnoop query, there are still some remaining Job status endpoints which are untested.
SELECT
endpoint,
path,
kind
FROM testing.untested_stable_endpoint
where eligible is true
and endpoint ilike '%JobStatus'
order by kind, endpoint desc
limit 10;
endpoint | path | kind
-----------------------------------+----------------------------------------------------------+------
replaceBatchV1NamespacedJobStatus | /apis/batch/v1/namespaces/{namespace}/jobs/{name}/status | Job
readBatchV1NamespacedJobStatus | /apis/batch/v1/namespaces/{namespace}/jobs/{name}/status | Job
patchBatchV1NamespacedJobStatus | /apis/batch/v1/namespaces/{namespace}/jobs/{name}/status | Job
(3 rows)
There are conformance tests for CronJob status endpoints already
select distinct endpoint, right(useragent,59) AS useragent
from public.audit_event
where endpoint ilike '%JobStatus%'
and useragent ilike '%Conformance%'
order by endpoint
limit 10;
endpoint | useragent
---------------------------------------+-------------------------------------------------------------
patchBatchV1NamespacedCronJobStatus | CronJob should support CronJob API operations [Conformance]
readBatchV1NamespacedCronJobStatus | CronJob should support CronJob API operations [Conformance]
replaceBatchV1NamespacedCronJobStatus | CronJob should support CronJob API operations [Conformance]
(3 rows)
framework.ConformanceIt("should support CronJob API operations", func() {
Feature: Test three Job Status api endpoints
Scenario: the test patches a job status subresource
Given the e2e test has as a running job
And a job status as been created with the current time
When the test patches the job status subresource with an annotation
Then the requested action is accepted without any error
And the applied status subresource is accepted
And the applied annotation is found
Scenario: the test updates a job status subresource
Given the e2e test has a running job
When the test updates the job status subresource without any conflict
Then the requested action is accepted without any error
And the appliced status subresource is accepted
Scenario: the test reads a job status subresource
Given the e2e test has a running job
When a dynamic client gets the status subresource
Then the requested action is accepted without any error
And a matching set of UIDs are found
Using the existing cronjob status test as a template, a new ginkgo test for job test has been created. The e2e logs for this test are listed below.
[sig-apps] Job
should verify changes to a job status
/home/ii/go/src/k8s.io/kubernetes/test/e2e/apps/job.go:370
[BeforeEach] [sig-apps] Job /home/ii/go/src/k8s.io/kubernetes/test/e2e/framework/framework.go:185
STEP: Creating a kubernetes client
Feb 15 08:31:36.270: INFO: >>> kubeConfig: /tmp/kubeconfig-1360618114
STEP: Building a namespace api object, basename job
W0215 08:31:36.327899 108002 warnings.go:70] policy/v1beta1 PodSecurityPolicy is deprecated in v1.21+, unavailable in v1.25+
Feb 15 08:31:36.328: INFO: Found PodSecurityPolicies; testing pod creation to see if PodSecurityPolicy is enabled
Feb 15 08:31:36.369: INFO: No PSP annotation exists on dry run pod; assuming PodSecurityPolicy is disabled
STEP: Waiting for a default service account to be provisioned in namespace
STEP: Waiting for kube-root-ca.crt to be provisioned in namespace
[It] should verify changes to a job status
/home/ii/go/src/k8s.io/kubernetes/test/e2e/apps/job.go:370
STEP: Creating a job
STEP: Ensure pods equal to paralellism count is attached to the job
STEP: patching /status
STEP: updating /status
STEP: get /status
[AfterEach] [sig-apps] Job
/home/ii/go/src/k8s.io/kubernetes/test/e2e/framework/framework.go:186
Feb 15 08:31:50.420: INFO: Waiting up to 3m0s for all (but 0) nodes to be ready
STEP: Destroying namespace "job-2408" for this suite.
This query shows the endpoints hit within a short period of running the e2e test
select distinct endpoint, right(useragent,41) AS useragent
from testing.audit_event
where endpoint ilike '%JobStatus%'
and release_date::BIGINT > round(((EXTRACT(EPOCH FROM NOW()))::numeric)*1000,0) - 60000
and useragent like 'e2e%should%'
order by endpoint
limit 10;
endpoint | useragent
-----------------------------------+-------------------------------------------
patchBatchV1NamespacedJobStatus | Job should verify changes to a job status
readBatchV1NamespacedJobStatus | Job should verify changes to a job status
replaceBatchV1NamespacedJobStatus | Job should verify changes to a job status
(3 rows)
If a test with these calls gets merged, test coverage will go up by 3 points
This test is also created with the goal of conformance promotion.
/sig testing
/sig architecture
/area conformance