Skip to content

Deprecate and migrate away from gs://kubernetes-release-dev and gcr.io/kubernetes-ci-images #2318

@spiffxp

Description

@spiffxp

Part of umbrella issue to migrate the kubernetes project away from use of GCP project google-containers: #1571

This issue covers the deprecation of and migration away from two google.com assets:

  • the google.com-owned GCS bucket gs://kubernetes-release-dev living in GCP project google-containers, in favor of the community-owned GCS bucket gs://k8s-release-dev living in GCP project k8s-release
  • the google.com-owned GCR repo gcr.io/kubernetes-ci-images, in favor of the community-owned GCR repo gcr.io/k8s-staging-ci-images

Step 1: Set and announce deprecation window

The first part is setting and announcing a deprecation window for CI artifacts placed in gs://kubernetes-release-dev, and their companion images in gcr.io/kubernetes-ci-images e.g.

  • v1.17 was the first release that had CI builds of kubernetes land in gs://k8s-release-dev/ci and gs://kubernetes-release-dev/ci simultaneously
  • v1.18 was the first release that cluster-api and kubeadm started defaulting to gcr.io/k8s-staging-ci-images instead of gcr.io/kubernetes-ci-images
  • v1.20 was the last release that had CI builds land in gs://kubernetes-release-dev/ci-cross
  • v1.22 is the last release to have CI builds of kubernetes land in gs://kubernetes-release-dev and gcr.io/kubernetes-ci-images
  • we will stop using gs://kubernetes-release-dev and gcr.io/kubernetes-ci-images completely once older CI jobs have aged out according to the kubernetes version support policy, or when we see no remaining traffic to gs://kubernetes-release-dev for a period of N weeks

Step 2: Setup community-owned alternatives, and use them for release-blocking / merge-blocking CI

This is a rough breakdown of the work necessary to complete the heavy lifting before we can shard out work to all repos across the project

Step 3: Ensure no references to kubernetes-release-dev within project

The next part of this is ensuring there are no remaining references to kubernetes-release-dev outside of vendor/ directories (except those necessary for the ci-kubernetes-build-.*deprecated.* jobs to satisfy the deprecation window)

  • Migrate documentation to refer to k8s-release-dev instead of kubernetes-release-dev
  • Migrate any remaining scripts / tooling across the project to use k8s-release-dev

This is pretty easily verifiable (with human inspection of results) using https://cs.k8s.io

$ curl -s -X POST   \
  -F "q=kubernetes-release-dev" \
  -F "repos=*" \
  -F "excludeFiles=vendor/"  \
  "https://cs.k8s.io/api/v1/search" \
  | jq -r '.Results | keys | .[]' \
  | sort \
  | sed -e 's/^/- [ ] /g'

Step 4: Ensure no references to kubernetes-ci-images within project

  • Migrate documentation to refer to k8s-staging-ci-images instead of kubernetes-ci-images
  • Migrate any remaining scripts / tooling across the project to use k8s-staging-ci-images
$ curl -s -X POST   \
>   -F "q=kubernetes-ci-images" \
>   -F "repos=*" \
>   -F "excludeFiles=vendor/"  \
>   "https://cs.k8s.io/api/v1/search" \
>   | jq -r '.Results | keys | .[]' \
>   | sort \
>   | sed -e 's/^/- [ ] /g'

Step 5: Complete deprecation

Related issues

/wg k8s-infra

/sig testing
/area prow
FYI @kubernetes/sig-testing-leads

/sig release
/area artifacts
/area release-eng
FYI @kubernetes/release-engineering

/kind cleanup
/kind deprecation
/priority important-soon
/milestone v1.22

/assign

Metadata

Metadata

Assignees

Labels

area/artifactsIssues or PRs related to the hosting of release artifacts for subprojectsarea/prowSetting up or working with prow in general, prow.k8s.io, prow build clustersarea/release-engIssues or PRs related to the Release Engineering subprojectkind/cleanupCategorizes issue or PR as related to cleaning up code, process, or technical debt.kind/deprecationCategorizes issue or PR as related to a feature/enhancement marked for deprecation.priority/important-soonMust be staffed and worked on either currently, or very soon, ideally in time for the next release.sig/releaseCategorizes an issue or PR as relevant to SIG Release.sig/testingCategorizes an issue or PR as relevant to SIG Testing.

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions