Skip to content

Conversation

@hakman
Copy link
Member

@hakman hakman commented Oct 5, 2025

gcr.io/k8s-staging-etcd is not actually needed when promoting etcd images, as the primary mirror is gcr.io/etcd-development/etcd. This should simplify the release process.
As proof of concept, also promoting v3.5.23:

% crane digest gcr.io/etcd-development/etcd:v3.5.23
sha256:e1864730b4b0979f669c1b3b5b0f378b8df2a394f7a22ea36577d4a8ae9e1204

% crane manifest gcr.io/etcd-development/etcd:v3.5.23
{
   "schemaVersion": 2,
   "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
   "manifests": [
      {
         "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
         "size": 3650,
         "digest": "sha256:35d9aa2b8584643ff795b5670c4d821eb3a9ae1ebfe12410246dc75d9183b39e",
         "platform": {
            "architecture": "amd64",
            "os": "linux"
         }
      },
      {
         "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
         "size": 3650,
         "digest": "sha256:88b5e48236125ae7b5159d81500dcbe12736c6b4cc2b13750fd5c02943cdbfbc",
         "platform": {
            "architecture": "arm64",
            "os": "linux"
         }
      },
      {
         "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
         "size": 3650,
         "digest": "sha256:2965c60817c5ca1cb138198cc40fdffa6dae577eaa051e1a6b2d134670d11b7f",
         "platform": {
            "architecture": "ppc64le",
            "os": "linux"
         }
      },
      {
         "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
         "size": 3650,
         "digest": "sha256:4375c7dfe98bb1d01a1b1571b494ad4e88fdfe419e3de0a43632ab320956ebae",
         "platform": {
            "architecture": "s390x",
            "os": "linux"
         }
      }
   ]
}

/cc @ahrtr @joshjms @ameukam

@k8s-ci-robot k8s-ci-robot added cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. area/artifacts Issues or PRs related to the hosting of release artifacts for subprojects area/registry.k8s.io Code in registry.k8s.io/ area/release-eng Issues or PRs related to the Release Engineering subproject sig/api-machinery Categorizes an issue or PR as relevant to SIG API Machinery. sig/k8s-infra Categorizes an issue or PR as relevant to SIG K8s Infra. sig/release Categorizes an issue or PR as relevant to SIG Release. size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. labels Oct 5, 2025
@hakman
Copy link
Member Author

hakman commented Oct 5, 2025

/hold for comments

@k8s-ci-robot k8s-ci-robot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Oct 5, 2025
@joshjms
Copy link
Member

joshjms commented Oct 5, 2025

Oh wow you can do that. I suppose this will simplify things a lot more (so we don't have to push to registry.k8s.io at all hmm).

@joshjms
Copy link
Member

joshjms commented Oct 5, 2025

/approve

@joshjms
Copy link
Member

joshjms commented Oct 5, 2025

Actually, should we make adding the registry and promoting the images a different commit (or PR)?

@hakman
Copy link
Member Author

hakman commented Oct 5, 2025

Oh wow you can do that. I suppose this will simplify things a lot more (so we don't have to push to registry.k8s.io at all hmm).

No, you just won't need to push to gcr.io/k8s-staging-etcd. The promo PRs will still be needed to push to registry.k8s.io/etcd.

Actually, should we make adding the registry and promoting the images a different commit (or PR)?

Don't actually have a preference on this, single PR was simpler and proves that it works.

Comment on lines +580 to +583
"sha256:35d9aa2b8584643ff795b5670c4d821eb3a9ae1ebfe12410246dc75d9183b39e": ["v3.5.23-amd64"]
"sha256:88b5e48236125ae7b5159d81500dcbe12736c6b4cc2b13750fd5c02943cdbfbc": ["v3.5.23-arm64"]
"sha256:2965c60817c5ca1cb138198cc40fdffa6dae577eaa051e1a6b2d134670d11b7f": ["v3.5.23-ppc64le"]
"sha256:4375c7dfe98bb1d01a1b1571b494ad4e88fdfe419e3de0a43632ab320956ebae": ["v3.5.23-s390x"]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This could have been a single image with multi-arch.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It also that, I think the plan is to drop the *-arch images in the next minor release.
If registry.k8s.io is supposed to be mirror, has to have all tags available via the main mirror.


registries:
- name: gcr.io/k8s-staging-etcd
- name: gcr.io/etcd-development/etcd
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Question: some places are using registry.k8s.io/etcd, should we keep them consistent?

see kubernetes/kubernetes#134251

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ahrtr Not sure what you mean. This change would just meant that you don't have to push images to gcr.io/etcd-development/etcd before creating promo PRs. gcr.io/etcd-development/etcd would be used as staging bucket`.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you don't have to push images to gcr.io/etcd-development/etcd

You mean gcr.io/k8s-staging-etcd? thx for the clarification in etcd-io/etcd#20756 (comment). I didn't know the details/workflow.

It seems that it makes etcd as a special case as I see that all other images are using gcr.io/k8s-staging-*.

I understood your intention now, but I am not sure what's the impact.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The other projects use registry.k8s.io as the main and, in most cases, only mirror.
There is no value in using gcr.io/k8s-staging-* when you already have a gcr.io/etcd-development with all images published there.
Obviously, you can switch to using gcr.io/k8s-staging-etcd at any time in the future if you decide to have a different release workflow.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Based on the discussion in etcd-io/etcd#20756, we don't need to build etcd image using cluster/images/etcd anymore, instead we use etcd officially released image directly. So no image will be pushed to gcr.io/k8s-staging-etcd any more. So we have to use gcr.io/etcd-development/etcd as the source here?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, or push manually or with a script to gcr.io/k8s-staging-etcd, though, I don't think there's much value in that.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, makes sense now. thx again for the clafication.


registries:
- name: gcr.io/k8s-staging-etcd
- name: gcr.io/etcd-development
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The registry is gcr.io/etcd-development/etcd, I assume the suffix /etcd will automatically added somewhere.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be coming from here:

@ahrtr
Copy link
Member

ahrtr commented Oct 5, 2025

/lgtm
/approve

/hold for others to review

Please feel free to cancel the hold.

Thanks

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Oct 5, 2025
@ameukam
Copy link
Member

ameukam commented Oct 5, 2025

/approve

@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: ahrtr, ameukam, hakman, joshjms

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Oct 5, 2025
@hakman
Copy link
Member Author

hakman commented Oct 5, 2025

Let's see if there's anything else needed to adjust.
/unhold

@k8s-ci-robot k8s-ci-robot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Oct 5, 2025
@k8s-ci-robot k8s-ci-robot merged commit 71e3c1d into kubernetes:main Oct 5, 2025
6 of 7 checks passed
@k8s-ci-robot k8s-ci-robot added this to the v1.35 milestone Oct 5, 2025
@hakman hakman deleted the etcd-source branch October 5, 2025 17:55
@hakman
Copy link
Member Author

hakman commented Oct 5, 2025

Looks like it worked just fine:

$ crane ls registry.k8s.io/etcd | grep 3.5.23
3.5.23-0
v3.5.23
v3.5.23-amd64
v3.5.23-arm64
v3.5.23-ppc64le
v3.5.23-s390x

@upodroid
Copy link
Member

upodroid commented Oct 6, 2025

Hi All

Can we have this PR reverted, particularly the image registry change? We need to start publishing images via Prow into GCR. Images are built and pushed manually which we need to fix ASAP.

Also, gcr.io/etcd-development/* should be deprecated after the next minor release and removed after a year.

@ahrtr
Copy link
Member

ahrtr commented Oct 6, 2025

Also, gcr.io/etcd-development/* should be deprecated after the next minor release and removed after a year.

You are proposing to remove a registry which has been used by users for about 10 years!

@upodroid
Copy link
Member

upodroid commented Oct 6, 2025

You are proposing to remove a registry which has been used by users for about 10 years!

Yes(but not right now), the Kubernetes project went through the same exercise a few years ago and built a cost-efficient image registry.

The good news is that gcr.io/etcd-development/* doesn't cost a lot to serve today; hopefully its cost should reduce as we direct users to registry.k8s.io.

@marosset
Copy link
Contributor

marosset commented Oct 6, 2025

This image doesn't have Windows flavors (which are used in some e2e tests)

Previously etcd images published to registry.k8s.io did include windows flavors.

regctl manifest get registry.k8s.io/etcd:3.6.4-0
Name:        registry.k8s.io/etcd:3.6.4-0
MediaType:   application/vnd.docker.distribution.manifest.list.v2+json
Digest:      sha256:e36c081683425b5b3bc1425bc508b37e7107bb65dfa9367bf5a80125d431fa19

Manifests:

  Name:      registry.k8s.io/etcd:3.6.4-0@sha256:71170330936954286be203a7737459f2838dd71cc79f8ffaac91548a9e079b8f
  Digest:    sha256:71170330936954286be203a7737459f2838dd71cc79f8ffaac91548a9e079b8f
  MediaType: application/vnd.docker.distribution.manifest.v2+json
  Platform:  linux/amd64

  Name:      registry.k8s.io/etcd:3.6.4-0@sha256:867ecac79776bf83ce7dee030a3b14eaa4a1cda2898df7e25ed3524a9f809fd8
  Digest:    sha256:867ecac79776bf83ce7dee030a3b14eaa4a1cda2898df7e25ed3524a9f809fd8
  MediaType: application/vnd.docker.distribution.manifest.v2+json
  Platform:  linux/arm/v7

  Name:      registry.k8s.io/etcd:3.6.4-0@sha256:5db83f9e7ee85732a647f5cf5fbdf85652afa8561b66c99f20756080ebd82ea5
  Digest:    sha256:5db83f9e7ee85732a647f5cf5fbdf85652afa8561b66c99f20756080ebd82ea5
  MediaType: application/vnd.docker.distribution.manifest.v2+json
  Platform:  linux/arm64

  Name:      registry.k8s.io/etcd:3.6.4-0@sha256:8fbb16da31eb870d31b541e591b89504125373cc4e5d682bf6214ad08eb376c6
  Digest:    sha256:8fbb16da31eb870d31b541e591b89504125373cc4e5d682bf6214ad08eb376c6
  MediaType: application/vnd.docker.distribution.manifest.v2+json
  Platform:  linux/ppc64le

  Name:      registry.k8s.io/etcd:3.6.4-0@sha256:14a4b7ef3df0910c311b5a89f4c2e4fa6270717a2a6b9271b810e770a26b9ac1
  Digest:    sha256:14a4b7ef3df0910c311b5a89f4c2e4fa6270717a2a6b9271b810e770a26b9ac1
  MediaType: application/vnd.docker.distribution.manifest.v2+json
  Platform:  linux/s390x

  Name:      registry.k8s.io/etcd:3.6.4-0@sha256:7682a4e72f88f7a0546a78befbf848810527a30b93b729936bdda59dc03ef8cc
  Digest:    sha256:7682a4e72f88f7a0546a78befbf848810527a30b93b729936bdda59dc03ef8cc
  MediaType: application/vnd.docker.distribution.manifest.v2+json
  Platform:  windows/amd64
  OSVersion: 10.0.17763.7558

  Name:      registry.k8s.io/etcd:3.6.4-0@sha256:314419e0383b72dfb740986b8cea10e8c4e44f5eab528ef1d5d26133b92d5320
  Digest:    sha256:314419e0383b72dfb740986b8cea10e8c4e44f5eab528ef1d5d26133b92d5320
  MediaType: application/vnd.docker.distribution.manifest.v2+json
  Platform:  windows/amd64
  OSVersion: 10.0.20348.3932

cc @zylxjtu

@hakman
Copy link
Member Author

hakman commented Oct 6, 2025

Can we have this PR reverted, particularly the image registry change? We need to start publishing images via Prow into GCR. Images are built and pushed manually which we need to fix ASAP.

@upodroid gcr.io/etcd-development/* is currently the official/main mirror. I understand that it's not ideal, but there's no value in reverting the change until the whole release process changes and registry.k8s.io/etcd becomes the primary mirror.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. area/artifacts Issues or PRs related to the hosting of release artifacts for subprojects area/registry.k8s.io Code in registry.k8s.io/ area/release-eng Issues or PRs related to the Release Engineering subproject cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. lgtm "Looks good to me", indicates that a PR is ready to be merged. sig/api-machinery Categorizes an issue or PR as relevant to SIG API Machinery. sig/k8s-infra Categorizes an issue or PR as relevant to SIG K8s Infra. sig/release Categorizes an issue or PR as relevant to SIG Release. size/XS Denotes a PR that changes 0-9 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants