Hi All
Google Cloud Container Registry (GCR) has been deprecated since May 2023 and is being shutdown by Google, you might have seen the banners when you open this service in Google Cloud. This product has been replaced by Artifact Registry (AR). We have been tracking this issue for a long time and we have one final change to make.
https://cloud.google.com/artifact-registry/docs/transition/prepare-gcr-shutdown
We migrated the project’s production/user-facing image registries (registry.k8s.io) from GCR to AR at the end of 2022 but we need to migrate the images used in the staging registries. For reference, we publish pre-release images for most projects to gcr.io/k8s-staging-[subproject]/controller:vDDMMYYYY-tag and then copy the release images to registry.k8s.io using the image promotion process in the k/k8s.io GitHub repository. Your project’s users should already be pulling images from registry.k8s.io, not gcr.io/k8s-staging* and your users should not be impacted by these changes. If this is not the case, please start promoting release images and stop pointing users to the staging registries, they are subject to change and direct usage prevents us from splitting egress costs across providers effectively.
Artifact Registry supports in-place migration of gcr.io registries without URL changes but requires a one-off automatic migration on all the projects that host our staging image registries.
For subprojects that have requested staging image registries since June 2024, they are hosted on Artifact Registry at us-central1-docker.pkg.dev/k8s-staging-images/[subproject-name] and we intend on migrating all the image registries from gcr.io/k8s-staging-* to these new staging registries later in 2025 and consolidate to a single shared google cloud project with dedicated image registries for each subproject.
Therefore SIG K8s Infra will do the following:
If you would like to migrate your staging registry to us-central1-docker.pkg.dev/k8s-staging-images/ before the GCR shutdown, please reach out to us and we’ll help you with the migration. You will need to tweak a few files in your own repository, k/test-infra and k/k8s.io
If we don’t hear from the maintainers & contributors of the affected subproject by 15th of February, we will execute the automatic migration described by Google[1] and retain the existing gcr.io urls and enable an image expiry policy of 90 days[2]. We will then liaise with you to migrate to us-central1-docker.pkg.dev/k8s-staging-images/* after the GCR shutdown.
Images will no longer be available for pulling from *.gcr.io/k8s-artifacts-prod/* after the GCR shutdown. Please pull our images from registry.k8s.io and don’t rely on any underlying urls or implementation details. These registries were frozen[3] a long time ago when we redirected k8s.gcr.io to registry.k8s.io.
We will be updating the docs at https://github.com/kubernetes/k8s.io/tree/main/registry.k8s.io soon but they are partially out of date.
Thanks
Mahamed Ali,
on behalf of Kubernetes SIG K8s Infra
[1] https://cloud.google.com/artifact-registry/docs/transition/auto-migrate-gcr-ar
[2] gcr.io/k8s-staging-test-infra and few select registries owned by sig testing are exempt from the 90 day expiry as they host critical images used internally in CI
[3] https://kubernetes.io/blog/2023/02/06/k8s-gcr-io-freeze-announcement/