display presence of attestations in docker images --tree

Signed-off-by: Yves Brissaud <yves.brissaud@docker.com>
This commit is contained in:
Yves Brissaud 2024-09-18 16:27:26 +02:00
parent a5fb752ecf
commit 69e1a636ac
No known key found for this signature in database
1 changed files with 20 additions and 0 deletions

View File

@ -51,6 +51,12 @@ func runTree(ctx context.Context, dockerCLI command.Cli, opts treeOptions) error
var totalContent int64 var totalContent int64
children := make([]subImage, 0, len(img.Manifests)) children := make([]subImage, 0, len(img.Manifests))
attestations := make(map[string]bool)
for _, im := range img.Manifests {
if im.Kind == imagetypes.ManifestKindAttestation {
attestations[im.AttestationData.For.String()] = true
}
}
for _, im := range img.Manifests { for _, im := range img.Manifests {
if im.Kind != imagetypes.ManifestKindImage { if im.Kind != imagetypes.ManifestKindImage {
continue continue
@ -65,6 +71,7 @@ func runTree(ctx context.Context, dockerCLI command.Cli, opts treeOptions) error
DiskUsage: units.HumanSizeWithPrecision(float64(im.Size.Total), 3), DiskUsage: units.HumanSizeWithPrecision(float64(im.Size.Total), 3),
Used: len(im.ImageData.Containers) > 0, Used: len(im.ImageData.Containers) > 0,
ContentSize: units.HumanSizeWithPrecision(float64(im.Size.Content), 3), ContentSize: units.HumanSizeWithPrecision(float64(im.Size.Content), 3),
Attestation: attestations[im.ID],
}, },
} }
@ -102,6 +109,7 @@ type imageDetails struct {
DiskUsage string DiskUsage string
Used bool Used bool
ContentSize string ContentSize string
Attestation bool
} }
type topImage struct { type topImage struct {
@ -162,6 +170,18 @@ func printImageTree(dockerCLI command.Cli, view treeView) error {
return stringid.TruncateID(d.ID) return stringid.TruncateID(d.ID)
}, },
}, },
{
Title: "Attest",
Align: alignLeft,
Width: 6,
Color: &greenColor,
DetailsValue: func(d *imageDetails) string {
if d.Attestation {
return "✔"
}
return " "
},
},
{ {
Title: "Disk usage", Title: "Disk usage",
Align: alignRight, Align: alignRight,