Skip to content

Add support for "multi-zone" volume handle provisioning and deletion #1733

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

pwschuurman
Copy link
Contributor

What type of PR is this?
/kind feature

What this PR does / why we need it:
Add support for multi-zone volume handle provisioning. Volumes created with the enable-multi-zone-provisioning: true parameter will be created with multiple underlying disks, one per specified zone. The underlying volume returned will specify the keyword multi-zone in place of the zone field. See #1616 for more details on the syntax.

  1. If there are zones specified in the requisite topologies, one disk will be created per zone
  2. If there are no zones specified in the requisite topologies, one disk will be created per zone in all zones in the driver's default region (where the particular disk type is supported).

Multi-zone volumes can be created from three sources:

  1. PD images (ROX mode)
  2. PD Snapshots (ROX mode)
  3. Empty disks (RWO mode)

Deletion will inspect all disks that match the volume handle name, for all zones in the driver's default region.

Special notes for your reviewer:

This adds some additional e2e tests, that are not yet runnable, due to API support being in alpha. These have been run on a locally project that has alpha support, and can be replicated by running:

export RUN_MULTI_ZONE_TESTS=true
ginkgo --v "test/e2e/tests" -- --project "${PROJECT}" --service-account "${IAM_NAME}" --v=6 --logtostderr --ginkgo.focus "'multi-zone'" --extra-driver-flags=--set-access-mode-gce-api-version=alpha

Does this PR introduce a user-facing change?:

Add support for provisioning multi-zone volume handles

@k8s-ci-robot k8s-ci-robot added release-note Denotes a PR that will be considered when it comes time to generate release notes. kind/feature Categorizes issue or PR as related to a new feature. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. labels Jun 4, 2024
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: pwschuurman

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 approved Indicates a PR has been approved by an approver from all required OWNERS files. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. labels Jun 4, 2024
@pwschuurman pwschuurman force-pushed the multi-zone-provisioning branch 3 times, most recently from 1dfb01c to ea2b8e0 Compare June 5, 2024 18:44
@mattcary
Copy link
Contributor

mattcary commented Jun 5, 2024

/assign @mattcary

@pwschuurman pwschuurman force-pushed the multi-zone-provisioning branch 2 times, most recently from a42518c to 95ebafa Compare June 6, 2024 04:58
@pwschuurman
Copy link
Contributor Author

/retest

1 similar comment
@pwschuurman
Copy link
Contributor Author

/retest

@pwschuurman pwschuurman force-pushed the multi-zone-provisioning branch 3 times, most recently from b321f76 to c64c6e1 Compare June 7, 2024 23:21
@@ -62,9 +63,10 @@ func GCEClientAndDriverSetup(instance *remote.InstanceInfo, driverConfig DriverC
fmt.Sprintf("--extra-labels=%s=%s", DiskLabelKey, DiskLabelValue),
"--max-concurrent-format-and-mount=20", // otherwise the serialization times out the e2e test.
"--multi-zone-volume-handle-enable",
"--multi-zone-volume-handle-disk-types=pd-standard",
"--multi-zone-volume-handle-disk-types=pd-standard,hyperdisk-ml",
Copy link
Contributor

Choose a reason for hiding this comment

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

I thought it was pd-ssd instead of pd-standard?

Copy link
Contributor Author

@pwschuurman pwschuurman Jun 8, 2024

Choose a reason for hiding this comment

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

This is just a testing configuration. But I agree, I don't think anyone would want to enable --multi-zone-volume-handle-disk-types on pd-standard. Should I update the existing tests to use pd-ssd instead?

@pwschuurman pwschuurman force-pushed the multi-zone-provisioning branch 2 times, most recently from 8afd4ed to 45c4624 Compare June 12, 2024 17:23
@pwschuurman pwschuurman force-pushed the multi-zone-provisioning branch from 45c4624 to cc6957f Compare June 12, 2024 18:11
@msau42
Copy link
Contributor

msau42 commented Jun 12, 2024

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jun 12, 2024
@k8s-ci-robot k8s-ci-robot merged commit bf3736f into kubernetes-sigs:master Jun 12, 2024
7 checks passed
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. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/feature Categorizes issue or PR as related to a new feature. lgtm "Looks good to me", indicates that a PR is ready to be merged. release-note Denotes a PR that will be considered when it comes time to generate release notes. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants