[19.03 backport] distribution: modify warning logic when pulling v2 schema1 manifests
| ... | ... |
@@ -392,9 +392,14 @@ func (p *v2Puller) pullV2Tag(ctx context.Context, ref reference.Named, platform |
| 392 | 392 |
if p.config.RequireSchema2 {
|
| 393 | 393 |
return false, fmt.Errorf("invalid manifest: not schema2")
|
| 394 | 394 |
} |
| 395 |
- msg := schema1DeprecationMessage(ref) |
|
| 396 |
- logrus.Warn(msg) |
|
| 397 |
- progress.Message(p.config.ProgressOutput, "", msg) |
|
| 395 |
+ |
|
| 396 |
+ // give registries time to upgrade to schema2 and only warn if we know a registry has been upgraded long time ago |
|
| 397 |
+ // TODO: condition to be removed |
|
| 398 |
+ if reference.Domain(ref) == "docker.io" {
|
|
| 399 |
+ msg := fmt.Sprintf("Image %s uses outdated schema1 manifest format. Please upgrade to a schema2 image for better future compatibility. More information at https://docs.docker.com/registry/spec/deprecated-schema-v1/", ref)
|
|
| 400 |
+ logrus.Warn(msg) |
|
| 401 |
+ progress.Message(p.config.ProgressOutput, "", msg) |
|
| 402 |
+ } |
|
| 398 | 403 |
|
| 399 | 404 |
id, manifestDigest, err = p.pullSchema1(ctx, ref, v, platform) |
| 400 | 405 |
if err != nil {
|
| ... | ... |
@@ -791,7 +796,7 @@ func (p *v2Puller) pullManifestList(ctx context.Context, ref reference.Named, mf |
| 791 | 791 |
|
| 792 | 792 |
switch v := manifest.(type) {
|
| 793 | 793 |
case *schema1.SignedManifest: |
| 794 |
- msg := schema1DeprecationMessage(ref) |
|
| 794 |
+ msg := fmt.Sprintf("[DEPRECATION NOTICE] v2 schema1 manifests in manifest lists are not supported and will break in a future release. Suggest author of %s to upgrade to v2 schema2. More information at https://docs.docker.com/registry/spec/deprecated-schema-v1/", ref)
|
|
| 795 | 795 |
logrus.Warn(msg) |
| 796 | 796 |
progress.Message(p.config.ProgressOutput, "", msg) |
| 797 | 797 |
|
| ... | ... |
@@ -188,7 +188,7 @@ func (p *v2Pusher) pushV2Tag(ctx context.Context, ref reference.NamedTagged, id |
| 188 | 188 |
|
| 189 | 189 |
logrus.Warnf("failed to upload schema2 manifest: %v - falling back to schema1", err)
|
| 190 | 190 |
|
| 191 |
- msg := schema1DeprecationMessage(ref) |
|
| 191 |
+ msg := fmt.Sprintf("[DEPRECATION NOTICE] registry v2 schema1 support will be removed in an upcoming release. Please contact admins of the %s registry NOW to avoid future disruption. More information at https://docs.docker.com/registry/spec/deprecated-schema-v1/", reference.Domain(ref))
|
|
| 192 | 192 |
logrus.Warn(msg) |
| 193 | 193 |
progress.Message(p.config.ProgressOutput, "", msg) |
| 194 | 194 |
|
| ... | ... |
@@ -156,7 +156,3 @@ func (th *existingTokenHandler) AuthorizeRequest(req *http.Request, params map[s |
| 156 | 156 |
req.Header.Set("Authorization", fmt.Sprintf("Bearer %s", th.token))
|
| 157 | 157 |
return nil |
| 158 | 158 |
} |
| 159 |
- |
|
| 160 |
-func schema1DeprecationMessage(ref reference.Named) string {
|
|
| 161 |
- return fmt.Sprintf("[DEPRECATION NOTICE] registry v2 schema1 support will be removed in an upcoming release. Please contact admins of the %s registry NOW to avoid future disruption.", reference.Domain(ref))
|
|
| 162 |
-} |