k8s.io icon indicating copy to clipboard operation
k8s.io copied to clipboard

add config for vsphere csi image promotion

Open divyenpatel opened this issue 1 year ago • 6 comments

Add config for vsphere CSI driver image promotion

cc: @XudongLiuHarold @xing-yang

divyenpatel avatar Aug 23 '24 00:08 divyenpatel

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: divyenpatel Once this PR has been reviewed and has the lgtm label, please assign dims for approval. For more information see the Kubernetes Code Review Process.

The full list of commands accepted by this bot can be found 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 avatar Aug 23 '24 00:08 k8s-ci-robot

/hold

wait for https://github.com/kubernetes/k8s.io/pull/7210 merge

divyenpatel avatar Aug 23 '24 00:08 divyenpatel

/verify-owners

divyenpatel avatar Aug 23 '24 00:08 divyenpatel

/hold cancel

divyenpatel avatar Aug 29 '24 18:08 divyenpatel

/lgtm

xing-yang avatar Aug 30 '24 14:08 xing-yang

@upodroid

We have started pushing images here

us-central1-docker.pkg.dev/k8s-staging-images/csi-vsphere/ci

what should be the final image we need to put in our manifest files? k8s-staging-images in the manifest for released tag does not sound correct.

divyenp@C02Z5410LVDQ ~ % docker manifest inspect us-central1-docker.pkg.dev/k8s-staging-images/csi-vsphere/ci/driver:latest
{
   "schemaVersion": 2,
   "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
   "manifests": [
      {
         "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
         "size": 1367,
         "digest": "sha256:801f284d243cb9836cc9327ccbc11634cddd752026a4d499a406215e00fc2efd",
         "platform": {
            "architecture": "amd64",
            "os": "linux"
         }
      },
      {
         "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
         "size": 951,
         "digest": "sha256:682567cac60eac9986b61d8fed15e572e1f8fcfd05bb3e02500d769ab81ff199",
         "platform": {
            "architecture": "amd64",
            "os": "windows",
            "os.version": "10.0.17763.6189"
         }
      },
      {
         "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
         "size": 951,
         "digest": "sha256:5814b73f8e8cab0ee074dcc3a89818fcd35ef0ecb67082a466d8be1f210b0c8f",
         "platform": {
            "architecture": "amd64",
            "os": "windows",
            "os.version": "10.0.19042.1889"
         }
      },
      {
         "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
         "size": 951,
         "digest": "sha256:c20117cd98590b957e3ff9f30f4e5c91d67ecf8a4665a6ad174de0d7143a3927",
         "platform": {
            "architecture": "amd64",
            "os": "windows",
            "os.version": "10.0.20348.2655"
         }
      }
   ]
}
divyenp@C02Z5410LVDQ ~ % docker manifest inspect us-central1-docker.pkg.dev/k8s-staging-images/csi-vsphere/ci/syncer:latest
{
	"schemaVersion": 2,
	"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
	"config": {
		"mediaType": "application/vnd.docker.container.image.v1+json",
		"size": 2691,
		"digest": "sha256:83f4297151b1e3f9a7885cd46002d0fe1eabde936a438762b67c236179178ca9"
	},
	"layers": [
		{
			"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
			"size": 17140337,
			"digest": "sha256:32818a0e2f0073d327491bc78606ce63875a6e8bc57f7ab55355756d7027f535"
		},
		{
			"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
			"size": 520,
			"digest": "sha256:aa834454e75303ffeb6b47d660b90a6e26cc852abe7e55f49ed2648f4790046a"
		},
		{
			"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
			"size": 17989360,
			"digest": "sha256:f4ce9c4165b29ba94b0156f45daa9df1ef0d300bb5707bfbd1a57fad38e5b704"
		}
	]
}

divyenpatel avatar Sep 03 '24 21:09 divyenpatel

@upodroid

Project cloud-provider-vsphere has been deleted.

https://github.com/kubernetes-sigs/vsphere-csi-driver/issues/3053

I think we can not migrate older release to new location. How do fix this?

cc: @xing-yang

divyenpatel avatar Sep 17 '24 21:09 divyenpatel

/lgtm cancel

xing-yang avatar Sep 18 '24 14:09 xing-yang

Discussed with @upodroid. He said we should update the pipeline to not insert a ci prefix. After that we can then promote the image and serve it registry.k8s.io/csi-vsphere/driver instead of registry.k8s.io/csi-vsphere/ci/driver.

xing-yang avatar Sep 18 '24 14:09 xing-yang

we are prefixing CI for images for main

# CI images
readonly CSI_IMAGE_CI=${BASE_IMAGE_REPO}/ci/driver
readonly SYNCER_IMAGE_CI=${BASE_IMAGE_REPO}/ci/syncer

for release tag we are prefixing image with

# Release images
readonly CSI_IMAGE_RELEASE=${BASE_IMAGE_REPO}/release/driver
readonly SYNCER_IMAGE_RELEASE=${BASE_IMAGE_REPO}/release/syncer

https://github.com/kubernetes-sigs/vsphere-csi-driver/blob/master/hack/release.sh#L31-L33

So are you saying we don't want to do this and keep all images under us-central1-docker.pkg.dev/k8s-staging-images/csi-vsphere

divyenpatel avatar Sep 18 '24 17:09 divyenpatel

That's correct, there should be no differences between the images. You should be able to promote any staging image to production right away.

upodroid avatar Sep 18 '24 18:09 upodroid

@upodroid I am not sure if this PR is required as source repository gcr.io/cloud-provider-vsphere/csi/release is no longer present and looks deleted.

cc: @xing-yang @XudongLiuHarold @sbueringer

divyenpatel avatar Sep 19 '24 01:09 divyenpatel

We should push to the community owned staging registry and then promote from there to the community owned production registry.

If the plan was to promote from VMware owned gcr.io/cloud-provider-vsphere/csi/release to the community owned production registry. This was never a valid option

sbueringer avatar Sep 19 '24 07:09 sbueringer