Skip to content
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

Add Multi-Availability Zone Support #383

Merged
merged 15 commits into from
Dec 19, 2024
Merged

Add Multi-Availability Zone Support #383

merged 15 commits into from
Dec 19, 2024

Conversation

falfaroc
Copy link
Contributor

@falfaroc falfaroc commented Dec 19, 2024

Description

Adds the mult-availability zone support to PowerFlex.

This feature allows the user to use a single storage class with multiple zones such that when a volume is provisioned using that storage class, PowerFlex flex will determine which zone is available and preferred. We rely on kubernetes topology mechanism to achieve proper zoning.

GitHub Issues

List the GitHub issues impacted by this PR:

GitHub Issue #
dell/csm#1612

Checklist:

  • I have performed a self-review of my own code to ensure there are no formatting, vetting, linting, or security issues
  • I have verified that new and existing unit tests pass locally with my changes
  • I have not allowed coverage numbers to degenerate
  • I have maintained at least 90% code coverage
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • I have added tests that prove my fix is effective or that my feature works
  • Backward compatibility is not broken

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Please also list any relevant details for your test configuration

  • Updated unit tests to cover the different zoning paths.
  • Manually tested with the zone label on the node and ensure that volume provisioning, clones and snapshot restores all work as expected.
  • Add zone e2e tests to cover the similar tests above.
  • Ensure that backwards compatibility works such that PowerFlex still function without zones and the original storage classes/secret.

lukeatdell and others added 12 commits December 18, 2024 16:32
* add availability zone secret and struct
* Add create volume processing for multi-az

* Adjust multi-az secret processing

* Rework secret processing

* Iterate through all topologies for a zone

* Test signing commit

* Cleanup secret retrieval and backwards compatibility of storage classes

* adapt to use new secret struct

* Add multi-az unit tests

* Fix golangci-lint issue

* Cleanup code logs

* Make zone take precendence during NodeGetInfo

* Update unit tests credentials

---------

Co-authored-by: Lau, Luke <luke.lau1@dell.com>
* Adding Unit tests

* fixing formatting issues
* Add zone volume creation integration tests

* Fix golangci-lint issue

* Create e2e zone tests

* Adjust indentation of template yaml files

* Adjust indentation of template yaml files

* Update e2e file names

* Format e2e files for golangci-lint

* Update e2e test scenarios

* Update pod templates

* Address PR comments

* Add README to e2e tests

* Update sts templates
* Add snapshot check and topology add during zone volume creation

* Add topology checks for clones

* Add zone snapshot and restore e2e test

* Address failed PR checks

* Update README

* Added e2e tests for clones

* Add snap and clone test (#371)

* Address PR comments

---------

Co-authored-by: Trevor Dawe <trevor.dawe@dell.com>
Co-authored-by: Bharath Sreekanth <93715158+bharathsreekanth@users.noreply.github.com>
…is scheduled (#378)

* configure driver node service to only ping arrays in the same zone as the service.

Co-authored-by: Fernando Alfaro Campos <Fernando.Alfaro_campos@Dell.com>
Co-authored-by: Trevor Dawe <trevor.dawe@dell.com>
service/node.go Outdated Show resolved Hide resolved
service/node.go Outdated Show resolved Hide resolved
@falfaroc falfaroc requested a review from tdawe December 19, 2024 16:15
samples/secret.yaml Outdated Show resolved Hide resolved
@falfaroc falfaroc requested a review from tdawe December 19, 2024 18:38
xuluna
xuluna previously approved these changes Dec 19, 2024
tdawe
tdawe previously approved these changes Dec 19, 2024
lukeatdell
lukeatdell previously approved these changes Dec 19, 2024
samples/storageclass/storageclass-az.yaml Outdated Show resolved Hide resolved
@falfaroc falfaroc dismissed stale reviews from lukeatdell, tdawe, and xuluna via fd77e96 December 19, 2024 20:07
@falfaroc falfaroc merged commit 200b918 into main Dec 19, 2024
6 checks passed
@falfaroc falfaroc deleted the usr/falfaroc/maz-rebase branch December 19, 2024 21:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants