Simplify image/tag syndication
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
Research direction
Read related issue #2239 first, then compare the manifest.json before/after examples and trace the commands that currently handle tag-level syndication. The change is done when syndication is represented at the image level, syndicated images remain 1:1 with primary images, and copying or retagging is limited to the final publishing step.
Written by the indexing model from the issue text.
Description
Related: #2239 (more context therein)
Right now, syndication is declared on a platform/tag level. Syndication is rarely used, but we pay the cost with every command that has to reason about tags. Because the current model does not guarantee that all platforms in an image are syndicated, it forces us to have special handling for syndicated images in every command.
Most of the time with syndication, you would want images/tags to be replicated 1:1 to the syndicated repo. To make this simpler, I propose that syndication is moved from tags to images.
Here is an example of how much simpler this makes things:
manifest.json image before/after
Manifest before proposal:
{
"sharedTags": {
"13.6.0": {
"syndication": {
"repo": "dotnet/nightly/aspire-dashboard"
}
},
"13": {
"syndication": {
"repo": "dotnet/nightly/aspire-dashboard",
"destinationTags": ["13", "latest"]
}
}
},
"platforms": [
{
"tags": {
"13.6.0-amd64": {
"syndication": {
"repo": "dotnet/nightly/aspire-dashboard"
}
}
}
},
{
"tags": {
"13.6.0-arm64v8": {
"syndication": {
"repo": "dotnet/nightly/aspire-dashboard"
}
}
}
}
]
}
Manifest after proposal:
{
"syndication": "dotnet/nightly/aspire-dashboard",
"sharedTags": {
"13.6.0": {},
"13": {},
"latest": {}
},
"platforms": [
{
"tags": {
"13.6.0-amd64": {}
}
},
{
"tags": {
"13.6.0-arm64v8": {}
}
}
]
}
By forcing syndicated images to be 1:1 with primary images, this lets us ignore syndication for all purposes except the final publishing step, at which point we would simply re-tag/copy syndicated images and manifest lists to an extra destination.
- Dominant language
- C#
- Stars
- 182
- Forks
- 67
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 15
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from dotnet/docker-tools
-
area-dockerfiles up-for-grabs
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
dotnet/docker-tools#2080 ·
-
area-infrastructure
dotnet/docker-tools#2166 · 1 comment · 1 assignee ·
-
area-infrastructure
dotnet/docker-tools#2165 · 1 assignee ·
-
area-infrastructure
dotnet/docker-tools#2153 · 1 assignee ·
-
area-infrastructure up-for-grabs
Difficulty 3/5 1-2 days Newbie friendliness 55/100
dotnet/docker-tools#2094 ·
All issues in dotnet/docker-tools
Similar issues
-
type/automation type/tech-debt
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
t/bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
ci-failure-cause test-failure
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
area:auth FE mvp P3
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
klasolsson81/jobbliggaren#1788 ·