- [X] APISnoop org-flow : CoreV1PodEphemeralcontainersTest.org
- [X] test approval issue : Write e2e test for PodEphemeralcontainers endpoints + 2 Endpoints #117894
- [X] test pr : Write e2e test for PodEphemeralcontainers endpoints + 2 Endpoints #117895
- [X] two weeks soak start date : testgrid-link 18 May 2023
- [X] two weeks soak end date : 01 June 2023
- [X] test promotion pr : Promote e2e test for PodEphemeralcontainers endpoints + 2 Endpoints #118304
According to following APIsnoop query, there are still 2 PodEphemeralcontainers endpoints that are not tested for Conformance.
SELECT
endpoint,
path,
kind
FROM testing.untested_stable_endpoint
where eligible is true
and endpoint ilike '%PodEphemeralcontainers'
order by kind, endpoint
limit 10;
endpoint | path | kind
-----------------------------------------------+----------------------------------------------------------------+------
readCoreV1NamespacedPodEphemeralcontainers | /api/v1/namespaces/{namespace}/pods/{name}/ephemeralcontainers | Pod
replaceCoreV1NamespacedPodEphemeralcontainers | /api/v1/namespaces/{namespace}/pods/{name}/ephemeralcontainers | Pod
(2 rows)
- https://apisnoop.cncf.io/1.27.0/stable/core/readCoreV1NamespacedPodEphemeralcontainers
- https://apisnoop.cncf.io/1.27.0/stable/core/replaceCoreV1NamespacedPodEphemeralcontainers
Scenario: Confirm that a pod ephemeral container can be both read and updated. Given the e2e test has a pod with a single ephemeralcontainer When the test checks that there is only a single PodEphemeralcontainer Then the requested action is accepted without any error And the count of ephemeralcontainers is one. Given the e2e test has a pod with a single ephemeralcontainer When the test updates the pod.spec.ephemeralcontainers to add another ephemeralcontainer Then the requested action is accepted without any error Given the e2e test has a pod with two ephemeralcontainers When the test checks that there is two single ephemeralcontainer Then the requested action is accepted without any error And the count of ephemeralcontainers is two.
Using a number of existing e2e test practices a new ginkgo test has been created to address these 2 endpoints. The e2e logs for this test are listed below.
[sig-node] Ephemeral Containers [NodeConformance] should update the ephemeral containers in an existing pod /home/ii/go/src/k8s.io/kubernetes/test/e2e/common/node/ephemeral_containers.go:90 STEP: Creating a kubernetes client @ 05/10/23 09:24:36.331 May 10 09:24:36.331: INFO: >>> kubeConfig: /home/ii/.kube/config STEP: Building a namespace api object, basename ephemeral-containers-test @ 05/10/23 09:24:36.332 STEP: Waiting for a default service account to be provisioned in namespace @ 05/10/23 09:24:36.38 STEP: Waiting for kube-root-ca.crt to be provisioned in namespace @ 05/10/23 09:24:36.384 STEP: creating a target pod @ 05/10/23 09:24:36.389 STEP: adding an ephemeral container @ 05/10/23 09:24:44.445 STEP: checking pod container endpoints @ 05/10/23 09:24:46.496 May 10 09:24:46.496: INFO: ExecWithOptions {Command:[/bin/echo marco] Namespace:ephemeral-containers-test-1135 PodName:ephemeral-containers-target-pod ContainerName:debugge r Stdin:<nil> CaptureStdout:true CaptureStderr:true PreserveWhitespace:false Quiet:false} May 10 09:24:46.496: INFO: >>> kubeConfig: /home/ii/.kube/config May 10 09:24:46.497: INFO: ExecWithOptions: Clientset creation May 10 09:24:46.497: INFO: ExecWithOptions: execute(POST https://127.0.0.1:42191/api/v1/namespaces/ephemeral-containers-test-1135/pods/ephemeral-containers-target-pod/exec?command=%2Fbin%2Fecho&command=marco&container=debugger&container=debugger&stderr=true&stdout=true) May 10 09:24:46.646: INFO: Exec stderr: "" STEP: checking pod "ephemeral-containers-target-pod" has only one ephemeralcontainer @ 05/10/23 09:24:46.683 STEP: adding another ephemeralcontainer to pod "ephemeral-containers-target-pod" @ 05/10/23 09:24:46.689 STEP: checking pod "ephemeral-containers-target-pod" has only two ephemeralcontainers @ 05/10/23 09:24:46.712 May 10 09:24:46.719: INFO: Waiting up to 7m0s for all (but 0) nodes to be ready STEP: Destroying namespace "ephemeral-containers-test-1135" for this suite. @ 05/10/23 09:24:46.723
This query shows the following podephemeralcontainers endpoints are hit within a short period of running this e2e test.
select distinct substring(endpoint from '\w+') AS endpoint,
right(useragent,57) AS useragent
from testing.audit_event
where useragent like 'e2e%should%'
and release_date::BIGINT > round(((EXTRACT(EPOCH FROM NOW()))::numeric)*1000,0) - 60000
and endpoint ilike '%PodEphemeralcontainers%'
order by endpoint
limit 10;
endpoint | useragent
-----------------------------------------------+-----------------------------------------------------------
patchCoreV1NamespacedPodEphemeralcontainers | should update the ephemeral containers in an existing pod
readCoreV1NamespacedPodEphemeralcontainers | should update the ephemeral containers in an existing pod
replaceCoreV1NamespacedPodEphemeralcontainers | should update the ephemeral containers in an existing pod
(3 rows)
If a test with these calls gets merged, test coverage will go up by 2 points
This test is also created with the goal of conformance promotion.
/sig testing
/sig architecture
/area conformance