Skip to content

Commit cdaae14

Browse files
authored
Merge pull request #6600 from thaJeztah/remove_trust_e2e
e2e: remove DCT tests
2 parents 7fb94da + 50598d2 commit cdaae14

38 files changed

+7
-1457
lines changed

Dockerfile

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -122,10 +122,6 @@ FROM docker/buildx-bin:${BUILDX_VERSION} AS buildx
122122
FROM docker/compose-bin:${COMPOSE_VERSION} AS compose
123123

124124
FROM e2e-base-${BASE_VARIANT} AS e2e
125-
ARG NOTARY_VERSION=v0.6.1
126-
ADD --chmod=0755 https://github.com/theupdateframework/notary/releases/download/${NOTARY_VERSION}/notary-Linux-amd64 /usr/local/bin/notary
127-
COPY --link e2e/testdata/notary/root-ca.cert /usr/share/ca-certificates/notary.cert
128-
RUN echo 'notary.cert' >> /etc/ca-certificates.conf && update-ca-certificates
129125
COPY --link --from=gotestsum /out/gotestsum /usr/bin/gotestsum
130126
COPY --link --from=build /out ./build/
131127
COPY --link --from=build-plugins /out ./build/

e2e/compose-env.yaml

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,3 @@ services:
99
command: ['--insecure-registry=registry:5000', '--experimental']
1010
environment:
1111
- DOCKER_TLS_CERTDIR=
12-
13-
notary-server:
14-
build:
15-
context: ./testdata
16-
dockerfile: Dockerfile.notary-server
17-
ports:
18-
- 4443:4443
19-
command: ['notary-server', '-config=/fixtures/notary-config.json']
20-
21-
evil-notary-server:
22-
build:
23-
context: ./testdata
24-
dockerfile: Dockerfile.evil-notary-server
25-
ports:
26-
- 4444:4443
27-
command: ['notary-server', '-config=/fixtures/notary-config.json']

e2e/container/create_test.go

Lines changed: 0 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -1,107 +1,12 @@
11
package container
22

33
import (
4-
"fmt"
54
"testing"
65

76
"github.com/docker/cli/e2e/internal/fixtures"
8-
"github.com/docker/cli/internal/test/environment"
97
"gotest.tools/v3/icmd"
10-
"gotest.tools/v3/skip"
118
)
129

13-
func TestCreateWithContentTrust(t *testing.T) {
14-
skip.If(t, environment.RemoteDaemon())
15-
16-
dir := fixtures.SetupConfigFile(t)
17-
defer dir.Remove()
18-
image := fixtures.CreateMaskedTrustedRemoteImage(t, registryPrefix, "trust-create", "latest")
19-
20-
defer func() {
21-
icmd.RunCommand("docker", "image", "rm", image).Assert(t, icmd.Success)
22-
}()
23-
24-
result := icmd.RunCmd(
25-
icmd.Command("docker", "create", image),
26-
fixtures.WithConfig(dir.Path()),
27-
fixtures.WithTrust,
28-
fixtures.WithNotary,
29-
)
30-
result.Assert(t, icmd.Expected{
31-
Err: fmt.Sprintf("Tagging %s@sha", image[:len(image)-7]),
32-
})
33-
}
34-
35-
func TestTrustedCreateFromUnreachableTrustServer(t *testing.T) {
36-
dir := fixtures.SetupConfigFile(t)
37-
defer dir.Remove()
38-
image := fixtures.CreateMaskedTrustedRemoteImage(t, registryPrefix, "trust-create", "latest")
39-
40-
result := icmd.RunCmd(
41-
icmd.Command("docker", "create", image),
42-
fixtures.WithConfig(dir.Path()),
43-
fixtures.WithTrust,
44-
fixtures.WithNotaryServer("https://notary.invalid"),
45-
)
46-
result.Assert(t, icmd.Expected{
47-
ExitCode: 1,
48-
Err: "error contacting notary server",
49-
})
50-
}
51-
52-
func TestTrustedCreateFromBadTrustServer(t *testing.T) {
53-
evilImageName := "registry:5000/evil-alpine:latest"
54-
dir := fixtures.SetupConfigFile(t)
55-
defer dir.Remove()
56-
57-
// tag the image and upload it to the private registry
58-
icmd.RunCmd(icmd.Command("docker", "tag", fixtures.AlpineImage, evilImageName),
59-
fixtures.WithConfig(dir.Path()),
60-
).Assert(t, icmd.Success)
61-
icmd.RunCmd(icmd.Command("docker", "image", "push", evilImageName),
62-
fixtures.WithConfig(dir.Path()),
63-
fixtures.WithPassphrase("root_password", "repo_password"),
64-
fixtures.WithTrust,
65-
fixtures.WithNotary,
66-
).Assert(t, icmd.Success)
67-
icmd.RunCmd(icmd.Command("docker", "image", "rm", evilImageName)).Assert(t, icmd.Success)
68-
69-
// try create
70-
icmd.RunCmd(icmd.Command("docker", "create", evilImageName),
71-
fixtures.WithConfig(dir.Path()),
72-
fixtures.WithTrust,
73-
fixtures.WithNotary,
74-
).Assert(t, icmd.Success)
75-
icmd.RunCmd(icmd.Command("docker", "image", "rm", evilImageName)).Assert(t, icmd.Success)
76-
77-
// init a client with the evil-server and a new trust dir
78-
evilNotaryDir := fixtures.SetupConfigWithNotaryURL(t, "evil-test", fixtures.EvilNotaryURL)
79-
defer evilNotaryDir.Remove()
80-
81-
// tag the same image and upload it to the private registry but signed with evil notary server
82-
icmd.RunCmd(icmd.Command("docker", "tag", fixtures.AlpineImage, evilImageName),
83-
fixtures.WithConfig(evilNotaryDir.Path()),
84-
).Assert(t, icmd.Success)
85-
icmd.RunCmd(icmd.Command("docker", "image", "push", evilImageName),
86-
fixtures.WithConfig(evilNotaryDir.Path()),
87-
fixtures.WithPassphrase("root_password", "repo_password"),
88-
fixtures.WithTrust,
89-
fixtures.WithNotaryServer(fixtures.EvilNotaryURL),
90-
).Assert(t, icmd.Success)
91-
icmd.RunCmd(icmd.Command("docker", "image", "rm", evilImageName)).Assert(t, icmd.Success)
92-
93-
// try creating with the original client from the evil notary server. This should failed
94-
// because the new root is invalid
95-
icmd.RunCmd(icmd.Command("docker", "create", evilImageName),
96-
fixtures.WithConfig(dir.Path()),
97-
fixtures.WithTrust,
98-
fixtures.WithNotaryServer(fixtures.EvilNotaryURL),
99-
).Assert(t, icmd.Expected{
100-
ExitCode: 1,
101-
Err: "could not rotate trust to a new trusted root",
102-
})
103-
}
104-
10510
func TestCreateWithEmptySourceVolume(t *testing.T) {
10611
icmd.RunCmd(icmd.Command("docker", "create", "-v", ":/volume", fixtures.AlpineImage)).
10712
Assert(t, icmd.Expected{

e2e/container/run_test.go

Lines changed: 0 additions & 99 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package container
22

33
import (
44
"bytes"
5-
"fmt"
65
"io"
76
"math/rand"
87
"os/exec"
@@ -90,104 +89,6 @@ func TestRunInvalidEntrypointWithAutoremove(t *testing.T) {
9089
}
9190
}
9291

93-
func TestRunWithContentTrust(t *testing.T) {
94-
skip.If(t, environment.RemoteDaemon())
95-
96-
dir := fixtures.SetupConfigFile(t)
97-
defer dir.Remove()
98-
image := fixtures.CreateMaskedTrustedRemoteImage(t, registryPrefix, "trust-run", "latest")
99-
100-
defer func() {
101-
icmd.RunCommand("docker", "image", "rm", image).Assert(t, icmd.Success)
102-
}()
103-
104-
result := icmd.RunCmd(
105-
icmd.Command("docker", "run", image),
106-
fixtures.WithConfig(dir.Path()),
107-
fixtures.WithTrust,
108-
fixtures.WithNotary,
109-
)
110-
result.Assert(t, icmd.Expected{
111-
Err: fmt.Sprintf("Tagging %s@sha", image[:len(image)-7]),
112-
})
113-
}
114-
115-
func TestUntrustedRun(t *testing.T) {
116-
dir := fixtures.SetupConfigFile(t)
117-
defer dir.Remove()
118-
image := registryPrefix + "/alpine:untrusted"
119-
// tag the image and upload it to the private registry
120-
icmd.RunCommand("docker", "tag", fixtures.AlpineImage, image).Assert(t, icmd.Success)
121-
defer func() {
122-
icmd.RunCommand("docker", "image", "rm", image).Assert(t, icmd.Success)
123-
}()
124-
125-
// try trusted run on untrusted tag
126-
result := icmd.RunCmd(
127-
icmd.Command("docker", "run", image),
128-
fixtures.WithConfig(dir.Path()),
129-
fixtures.WithTrust,
130-
fixtures.WithNotary,
131-
)
132-
result.Assert(t, icmd.Expected{
133-
ExitCode: 125,
134-
Err: "does not have trust data for",
135-
})
136-
}
137-
138-
func TestTrustedRunFromBadTrustServer(t *testing.T) {
139-
evilImageName := registryPrefix + "/evil-alpine:latest"
140-
dir := fixtures.SetupConfigFile(t)
141-
defer dir.Remove()
142-
143-
// tag the image and upload it to the private registry
144-
icmd.RunCmd(icmd.Command("docker", "tag", fixtures.AlpineImage, evilImageName),
145-
fixtures.WithConfig(dir.Path()),
146-
).Assert(t, icmd.Success)
147-
icmd.RunCmd(icmd.Command("docker", "image", "push", evilImageName),
148-
fixtures.WithConfig(dir.Path()),
149-
fixtures.WithPassphrase("root_password", "repo_password"),
150-
fixtures.WithTrust,
151-
fixtures.WithNotary,
152-
).Assert(t, icmd.Success)
153-
icmd.RunCmd(icmd.Command("docker", "image", "rm", evilImageName)).Assert(t, icmd.Success)
154-
155-
// try run
156-
icmd.RunCmd(icmd.Command("docker", "run", evilImageName),
157-
fixtures.WithConfig(dir.Path()),
158-
fixtures.WithTrust,
159-
fixtures.WithNotary,
160-
).Assert(t, icmd.Success)
161-
icmd.RunCmd(icmd.Command("docker", "image", "rm", evilImageName)).Assert(t, icmd.Success)
162-
163-
// init a client with the evil-server and a new trust dir
164-
evilNotaryDir := fixtures.SetupConfigWithNotaryURL(t, "evil-test", fixtures.EvilNotaryURL)
165-
defer evilNotaryDir.Remove()
166-
167-
// tag the same image and upload it to the private registry but signed with evil notary server
168-
icmd.RunCmd(icmd.Command("docker", "tag", fixtures.AlpineImage, evilImageName),
169-
fixtures.WithConfig(evilNotaryDir.Path()),
170-
).Assert(t, icmd.Success)
171-
icmd.RunCmd(icmd.Command("docker", "image", "push", evilImageName),
172-
fixtures.WithConfig(evilNotaryDir.Path()),
173-
fixtures.WithPassphrase("root_password", "repo_password"),
174-
fixtures.WithTrust,
175-
fixtures.WithNotaryServer(fixtures.EvilNotaryURL),
176-
).Assert(t, icmd.Success)
177-
icmd.RunCmd(icmd.Command("docker", "image", "rm", evilImageName)).Assert(t, icmd.Success)
178-
179-
// try running with the original client from the evil notary server. This should failed
180-
// because the new root is invalid
181-
icmd.RunCmd(icmd.Command("docker", "run", evilImageName),
182-
fixtures.WithConfig(dir.Path()),
183-
fixtures.WithTrust,
184-
fixtures.WithNotaryServer(fixtures.EvilNotaryURL),
185-
).Assert(t, icmd.Expected{
186-
ExitCode: 125,
187-
Err: "could not rotate trust to a new trusted root",
188-
})
189-
}
190-
19192
// TODO: create this with registry API instead of engine API
19293
func createRemoteImage(t *testing.T) string {
19394
t.Helper()

e2e/global/cli_test.go

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,6 @@ func TestPromptExitCode(t *testing.T) {
8989

9090
defaultCmdOpts := []icmd.CmdOp{
9191
fixtures.WithConfig(dir.Path()),
92-
fixtures.WithNotary,
9392
}
9493

9594
testCases := []struct {
@@ -131,13 +130,6 @@ func TestPromptExitCode(t *testing.T) {
131130
return icmd.Command("docker", "system", "prune")
132131
},
133132
},
134-
{
135-
name: "revoke trust",
136-
run: func(t *testing.T) icmd.Cmd {
137-
t.Helper()
138-
return icmd.Command("docker", "trust", "revoke", "example/trust-demo")
139-
},
140-
},
141133
{
142134
name: "plugin install",
143135
run: func(t *testing.T) icmd.Cmd {

e2e/image/build_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ func TestBuildFromContextDirectoryWithTag(t *testing.T) {
6262
}
6363

6464
func TestBuildIidFileSquash(t *testing.T) {
65+
t.Skip("Not implemented with containerd")
6566
environment.SkipIfNotExperimentalDaemon(t)
6667
t.Setenv("DOCKER_BUILDKIT", "0")
6768

e2e/image/pull_test.go

Lines changed: 1 addition & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -4,81 +4,16 @@ import (
44
"testing"
55

66
"github.com/docker/cli/e2e/internal/fixtures"
7-
"github.com/docker/cli/internal/test/environment"
87
"gotest.tools/v3/assert"
98
is "gotest.tools/v3/assert/cmp"
10-
"gotest.tools/v3/golden"
119
"gotest.tools/v3/icmd"
12-
"gotest.tools/v3/skip"
1310
)
1411

1512
const registryPrefix = "registry:5000"
1613

17-
func TestPullWithContentTrust(t *testing.T) {
18-
skip.If(t, environment.RemoteDaemon())
19-
20-
// Digests in golden files are linux/amd64 specific.
21-
// TODO: Fix this test and make it work on all platforms.
22-
environment.SkipIfNotPlatform(t, "linux/amd64")
23-
24-
dir := fixtures.SetupConfigFile(t)
25-
defer dir.Remove()
26-
image := fixtures.CreateMaskedTrustedRemoteImage(t, registryPrefix, "trust-pull", "latest")
27-
defer func() {
28-
icmd.RunCommand("docker", "image", "rm", image).Assert(t, icmd.Success)
29-
}()
30-
31-
result := icmd.RunCmd(icmd.Command("docker", "pull", image),
32-
fixtures.WithConfig(dir.Path()),
33-
fixtures.WithTrust,
34-
fixtures.WithNotary,
35-
)
36-
result.Assert(t, icmd.Success)
37-
golden.Assert(t, result.Stderr(), "pull-with-content-trust-err.golden")
38-
golden.Assert(t, result.Stdout(), "pull-with-content-trust.golden")
39-
}
40-
4114
func TestPullQuiet(t *testing.T) {
4215
result := icmd.RunCommand("docker", "pull", "--quiet", fixtures.AlpineImage)
4316
result.Assert(t, icmd.Success)
44-
assert.Check(t, is.Equal(result.Stdout(), "registry:5000/alpine:frozen\n"))
17+
assert.Check(t, is.Equal(result.Stdout(), registryPrefix+"/alpine:frozen\n"))
4518
assert.Check(t, is.Equal(result.Stderr(), ""))
4619
}
47-
48-
func TestPullWithContentTrustUsesCacheWhenNotaryUnavailable(t *testing.T) {
49-
skip.If(t, environment.RemoteDaemon())
50-
51-
dir := fixtures.SetupConfigFile(t)
52-
defer dir.Remove()
53-
image := fixtures.CreateMaskedTrustedRemoteImage(t, registryPrefix, "trust-pull-unreachable", "latest")
54-
defer func() {
55-
icmd.RunCommand("docker", "image", "rm", image).Assert(t, icmd.Success)
56-
}()
57-
result := icmd.RunCmd(icmd.Command("docker", "pull", image),
58-
fixtures.WithConfig(dir.Path()),
59-
fixtures.WithTrust,
60-
fixtures.WithNotaryServer("https://invalidnotaryserver"),
61-
)
62-
result.Assert(t, icmd.Expected{
63-
ExitCode: 1,
64-
Err: "error contacting notary server",
65-
})
66-
67-
// Do valid trusted pull to warm cache
68-
result = icmd.RunCmd(icmd.Command("docker", "pull", image),
69-
fixtures.WithConfig(dir.Path()),
70-
fixtures.WithTrust,
71-
fixtures.WithNotary,
72-
)
73-
result.Assert(t, icmd.Success)
74-
result = icmd.RunCommand("docker", "rmi", image)
75-
result.Assert(t, icmd.Success)
76-
77-
// Try pull again with invalid notary server, should use cache
78-
result = icmd.RunCmd(icmd.Command("docker", "pull", image),
79-
fixtures.WithConfig(dir.Path()),
80-
fixtures.WithTrust,
81-
fixtures.WithNotaryServer("https://invalidnotaryserver"),
82-
)
83-
result.Assert(t, icmd.Success)
84-
}

0 commit comments

Comments
 (0)