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

Feature/ebs windows #4353

Merged
merged 27 commits into from
Sep 19, 2024
Merged

Feature/ebs windows #4353

merged 27 commits into from
Sep 19, 2024

Conversation

jiuchoe4
Copy link
Contributor

@jiuchoe4 jiuchoe4 commented Sep 19, 2024

Summary

This PR adds the implementation for EBS Task Attach on Windows.

Implementation details

Three main components have been implemented for Windows. These include

  • Volume watcher
  • CSI Driver
  • Managed Daemon

The majority of the implementation was derived from aws-ebs-csi-driver.

Testing

These changes have all been reviewed with each PR. Unit, integration, MACIS and canary testing have all been done on this feature.

New tests cover the changes: yes

Description for the changelog

Add support for EBS Task Attach on Windows

Licensing

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@jiuchoe4 jiuchoe4 requested a review from a team as a code owner September 19, 2024 01:40
jiuchoe and others added 22 commits September 19, 2024 15:01
Presently, the code path in stats package of the agent, which invokes the CSI Client to fetch volume metrics is limited to Linux platform only. The same code path can be used for Windows as well.

This change refactors the existing code to ensure that the EBS volume stats are collected for Windows as well in addition to Linux.
…indows

Presently, we were using the empty implementation of the IsBlockDevice method for Windows. In this change, we will add the same.

In order to accomplish the same, we use `GetVolumeNameForVolumeMountPointW` Win32 API. Reference: https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getvolumenameforvolumemountpointw

We will call the API to fetch the Volume GUID. If the mount path is invalid, this method would fail and therefore, we can be certain that the mount path is not the block device mount path.
This change adds `golang.org/x/sys/windows` dependencies as vendor dependencies.
* Added the first cut of the implementation for the CSIDriver.

* Cleaned the branch with unneeded vendor files.

---------

Co-authored-by: Saurabh Chakravarty <drsaurab@amazon.com>
@mye956 mye956 force-pushed the feature/ebs-windows branch from 9ec05c1 to 4f57f4b Compare September 19, 2024 19:01
@mye956 mye956 merged commit c461602 into dev Sep 19, 2024
45 checks passed
@Yiyuanzzz Yiyuanzzz mentioned this pull request Sep 19, 2024
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