fix various links that redirected / 404'd#13598
Conversation
There was a problem hiding this comment.
Pull request overview
This PR updates documentation and README hyperlinks across the containerd repository to address redirects/404s and modernize references (e.g., moving from golang.org to go.dev, http to https, and updating vendor/service documentation URLs).
Changes:
- Refreshes a large set of external links across project docs (Kubernetes, Go, Docker, Red Hat, OpenTelemetry, cloud provider docs).
- Fixes/adjusts internal relative links within the docs tree.
- Updates project/adopter references to newer canonical URLs.
Reviewed changes
Copilot reviewed 16 out of 16 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| README.md | Updates badges and several project/documentation links. |
| docs/tracing.md | Updates OpenTelemetry semantic convention links. |
| docs/snapshotters/remote-snapshotter.md | Fixes relative link to core/unpack/unpacker.go. |
| docs/snapshotters/erofs.md | Updates EROFS documentation URL. |
| docs/snapshotters/devmapper.md | Refreshes Docker/Red Hat external references. |
| docs/RUNC.md | Updates the seccomp Wikipedia link casing. |
| docs/rootless.md | Switches man7 link from http to https. |
| docs/historical/cri/proposal.md | Replaces dead Docker blog link with archive and updates runC link. |
| docs/getting-started.md | Updates managed Kubernetes provider doc links. |
| docs/garbage-collection.md | Updates RFC3339 references to datatracker.ietf.org. |
| docs/cri/registry.md | Updates Google registry-related links (but introduces GCR vs Artifact Registry wording mismatch). |
| docs/cri/config.md | Tweaks snapshotter docs link and Go template doc links to pkg.go.dev. |
| contrib/aws/snapshotter_bench_readme.md | Switches man7 links from http to https. |
| contrib/ansible/README.md | Updates Ansible documentation links. |
| BUILDING.md | Updates Go docs links and Kubernetes CRI blog link to https. |
| ADOPTERS.md | Refreshes numerous adopter/product URLs. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Apparently these should now be something like;
| docker login -u _json_key -p "$(cat key.json)" us-central1-docker.pkg.dev | |
| docker pull busybox | |
| docker tag busybox us-central1-docker.pkg.dev/your-gcp-project-id/your-repository/busybox | |
| docker push us-central1-docker.pkg.dev/your-gcp-project-id/your-repository/busybox | |
| docker logout us-central1-docker.pkg.dev |
But that makes it much harder to write a universal example, so kept that out for now 🫠
There was a problem hiding this comment.
The text above was updated to use GAR instead of GCR, but the command here was unchanged
There was a problem hiding this comment.
Yeah, I wasn't sure if we wanted to boil the ocean here; see my comment further up; #13598 (comment)
|
@AkihiroSuda @samuelkarp updated; PTAL (if someone with a Google account can verify if the steps are correct, that'd be appreciated). |
gcr.io is deprecated in favor of Google Artifact Registry. Signed-off-by: Sebastiaan van Stijn <[email protected]>
Signed-off-by: Sebastiaan van Stijn <[email protected]>
| * For authentication to GCR: Create [service account and JSON key](https://cloud.google.com/container-registry/docs/advanced-authentication#json-key) | ||
| * Create a Google Cloud Platform (GCP) account and project if not already created (see [GCP getting started](https://docs.cloud.google.com/docs/get-started/)) | ||
| * Enable the Artifact Registry API and create a Docker repository (see [Quickstart for Artifact Registry](https://docs.cloud.google.com/artifact-registry/docs/docker/store-docker-container-images)) | ||
| * For authentication to Artifact Registry: Create a [service account and JSON key](https://docs.cloud.google.com/artifact-registry/docs/repositories/configure-remote-authentication#json-key) |
There was a problem hiding this comment.
This is linking to the wrong documentation page; the page covers remote repositories which are more of a mirroring use-case than typical repositories. I think you were intending to link to https://docs.cloud.google.com/artifact-registry/docs/docker/authentication#json-key instead.
| After modifying this config, you need to restart the `containerd` service. | ||
|
|
||
| ### Configure Registry Credentials Example - GCR with Service Account Key Authentication | ||
| ### Configure Registry Credentials Example - Google Artifact Registry with Service Account Key Authentication |
There was a problem hiding this comment.
I know I work at Google and this might be an odd question for me to ask, but: should we really be documenting (and maintaining) provider-specific instructions as examples for containerd? This could live in Artifact Registry's documentation, maintained by that team, instead. We'd need some example to replace it, but that could be focused more on something OSS or self-hosted instead.
There was a problem hiding this comment.
Yes, that crossed my mind as well; I started this branch thinking "OK; let's fix those broken links; low-hanging fruit", but then ending up with this section and that became much more involved.
I wasn't sure if there was a specific background on describing these steps (I didn't go looking), but it definitely felt too much in-depth on a specific vendor providing a registry.
But I hesitated removing it, as it may have given the impression that I ripped it out because of my own affiliation 😂
I'll have a look tomorrow to see if we can remove it without losing important / useful containerd-specific information
There was a problem hiding this comment.
I think that's probably the better path. I don't think that as a project we need to give examples based on specific vendors. The instructions as-written also rely on the service account key, which is generally discouraged since it's a static credential (see Choose the right authentication method for your use case) and is restricted by default in newer organizations (and in our internal ones, which would mean I'd have to jump through some hoops to validate these docs too).
| password = 'paste output from jq' | ||
| password = 'paste output from jq -c . key.json' | ||
| ``` | ||
| + In containerd 1.x |
There was a problem hiding this comment.
Now that we have per-minor documentation maybe we can drop the 1.x examples. But that could be done separately from this link update.
| ``` | ||
|
|
||
| > Note: `username` of `_json_key` signifies that JSON key authentication will be used. | ||
| > Note: Setting username to `_json_key` signifies that service account JSON key authentication will be used. If using a base64-encoded JSON key instead, use `_json_key_base64`. |
There was a problem hiding this comment.
This note is redundant with line 80.
|
PR needs rebase. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |

Before:
After: