e2e: add private registry pull/push regression test#7007
Conversation
aa3a10d to
b2e3d39
Compare
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
febb222 to
236b3d4
Compare
|
@vvoland @thaJeztah Codecov is reporting 0% patch coverage for Is this acceptable as-is, or would you prefer additional coverage changes here? |
|
Hey all the Ci seems to be passing i just need to change the commit body to remove closes #XXXX and stuff as mentioned by thaJeztah in one of my other PR sorry for the trouble. |
b5f226f to
2fbbd74
Compare
Address reviewer feedback on docker/cli PR docker#7007: - Merge TestPullPushPrivateRepository and TestPullPushTlsRepository into one test with "insecure" and "tls" subtests - Generate TLS certs at setup time instead of committing them - Remove committed cert files from git Signed-off-by: Lohit Kolluri <lohitkolluri@gmail.com>
|
I pushed two more commits to address the CI failures:
|
|
Should i squash all commits into one? |
|
Yes |
|
/review |
|
Once the CI run finishes, I'll squash the commits and push the changes. |
|
⏱️ PR Review Timed Out — The review agent hit the 1800 s time limit before completing. This usually happens on large or complex diffs. You can re-trigger with |
|
I did a quick RCA on both failures. For [e2e / tests (connhelper-ssh, debian, 25)], I believe the failure is related to For [test / ctn (test-coverage)], my understanding is that this is unrelated to the changes in this PR. The coverage job excludes the Could you take a quick look and let me know if my assessment seems reasonable? If you think the coverage failure is worth investigating, I'm happy to dig into it and open a separate PR if needed. |
16df6a4 to
9706732
Compare
Address reviewer feedback on docker/cli PR docker#7007: - Merge TestPullPushPrivateRepository and TestPullPushTlsRepository into one test with "insecure" and "tls" subtests - Generate TLS certs at setup time instead of committing them - Remove committed cert files from git Signed-off-by: Lohit Kolluri <lohitkolluri@gmail.com>
9706732 to
fd735c2
Compare
This adds an e2e regression test for authenticated pull/push against a private registry, covering the auth regression reported in docker#5963. Includes: - New privateregistry service in the e2e Compose stack with htpasswd auth on port 5001, and --insecure-registry for the engine container. - TestPullPushPrivateRepository test that verifies authenticated push/pull and rejects unauthenticated operations. - Auth config and test credentials in e2e/testdata/registry/. - 90-second retry loop for transient DNS/container startup races. - Service health wait loop in scripts/test/e2e/run. - Increase TestProcessTermination timeout from 10s to 20s for connhelper-ssh + engine 25 combination. - Connhelper-ssh engine Dockerfile for private registry integration. Signed-off-by: Lohit Kolluri <lohitkolluri@gmail.com>
fd735c2 to
d9698ed
Compare
This adds an e2e regression test for authenticated pull/push against a private registry, covering the auth regression reported in #5963.
What's included
New
privateregistryservice in the e2e Compose stack that runs a Docker registry with htpasswd authentication on port 5001, and a--insecure-registryflag for it in the engine container.TestPullPushPrivateRepositorytest that:Auth config entries for
privateregistry:5001in the e2e fixture config, with test credentials stored in a newe2e/testdata/registry/auth/htpasswdfile.90-second retry loop in the test that re-runs docker commands when the registry or DNS is not yet ready (covers the container startup race in CI). Transient errors are detected by matching known DNS/network failure strings; all other failures are returned immediately.
Service health wait loop in
scripts/test/e2e/runthat pollsdocker compose psfor all three services (registry,privateregistry,engine) before connecting the test runner to the Compose network. If any service fails to start within 120 seconds, it prints service logs and exits with a clear error instead of letting tests hang on DNS timeouts.About the earlier attempt (#6940)
The earlier version of this test failed in CI because the htpasswd volume mount in
compose-env.yamlused a path resolved relative to the project root (./e2e/testdata/registry/auth), but Compose resolves volume paths relative to the compose file's directory (e2e/). The auth file never mounted, the registry started without authentication, and every registry operation either succeeded unauthenticated (giving false negatives) or timed out with a DNS error when the registry failed to start entirely. This version uses./testdata/registry/authso the mount resolves correctly.Closes #5965.