docker / docker/cli

Feature request: CRUD on Manifests

Open
#822 5 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area/distribution area/manifest kind/enhancement
Dominant language
Go
Stars
6.1k
Forks
2.2k
Avg merge
1d 15h
Merged PRs (30d)
43

Description

Today's implementation of docker manifest is not able to perform following tasks:

  • create empty manifest list (useful before loops in image building scripts)
  • overwrite existing manifest list (allow building scripts to overwrite previous half-baked manifests and start from scratch)
  • list locally created manifests
  • delete local manifest lists, pushed or not
  • remove local image manifest from manifest list
  • clear the annotations for selected image

To solve those, I'm proposing a bit of a changes to manifest commands:

  • manifest create MANIFEST_LIST [MANIFEST...] [flags] - creates manifest list, possibly empty.
    Flags can be:
    • --overwrite - remove previous and create new list
  • manifest list and manifests - list all local manifests
  • manifest delete MANIFEST_LIST
  • manifest prune - delete all local manifests, after confirmation
  • manifest add MANIFEST_LIST MANIFEST [annotations] - add local image manifest to a list, possibly with annotations, in format as defined today.
  • manifest annotate MANIFEST_LIST MANIFEST [flags] [annotations]. Same as today, add/overview annotations for already added image.
    Flags:
    • --clear - delete all previous annotations for selected image manifest, and then add ones from the list. manifest annotate MANIFEST_LIST MANIFEST --clear (without new annotations) would, effectively clear all annotations.
  • manifest rm MANIFEST_LIST MANIFEST [MANIFEST...] - remove local image(s) manifest from a list.

Thanks!

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the existing docker manifest command implementation and its current create and annotate behavior; the issue names no files or tests. Done means supporting the listed create, list, delete, prune, add, annotate, and rm operations, including empty or overwrite creation and annotation clearing.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, go
Domain
cli
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.