Skip to content

AWS NVMe support in local CSI driver#549

Open
MahashriSaini wants to merge 5 commits into
Azure:mainfrom
MahashriSaini:mahsaini/kaito-nvme-support-v2
Open

AWS NVMe support in local CSI driver#549
MahashriSaini wants to merge 5 commits into
Azure:mainfrom
MahashriSaini:mahsaini/kaito-nvme-support-v2

Conversation

@MahashriSaini

Copy link
Copy Markdown

Introduces configurable NVMe model filtering through Helm chart values. A predefined set of supported NVMe disk models is provided as the default configuration, while allowing users to extend or override the model list during installation. The configured models are passed to the driver through a CLI argument and used to construct the filter for disk discovery. This approach improves flexibility and enables support for additional NVMe disk models across cloud environments without requiring driver code changes.

@jmclong

jmclong commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Please update the README.md found in the chart that explains the values. So users know how to add this

@jmclong

jmclong commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

also, can you add something to the user-guide.md or else where explaining how to use these and what the assumptions are from the driver? (for example, these disks aren't removed/added and won't move node to node)

@MahashriSaini

Copy link
Copy Markdown
Author

Please update the README.md found in the chart that explains the values. So users know how to add this

Added documentation to the chart README explaining the new values and updated the user guide with usage information and driver assumptions.
commit containing update: 71cbcc2

@MahashriSaini

Copy link
Copy Markdown
Author

@MahashriSaini please read the following Contributor License Agreement(CLA). If you agree with the CLA, please reply with the following information.

@microsoft-github-policy-service agree [company="{your company}"]

Options:

  • (default - no company specified) I have sole ownership of intellectual property rights to my Submissions and I am not making Submissions in the course of work for my employer.
@microsoft-github-policy-service agree
  • (when company given) I am making Submissions in the course of work for my employer (or my employer has intellectual property rights in my Submissions by contract or applicable law). I have permission from my employer to make Submissions and enter into this Agreement on behalf of my employer. By signing below, the defined term “You” includes me and my employer.
@microsoft-github-policy-service agree company="Microsoft"

Contributor License Agreement

@microsoft-github-policy-service agree [company="Microsoft"]

@MahashriSaini

Copy link
Copy Markdown
Author

@microsoft-github-policy-service agree company="Microsoft"

// the defaults; empty/whitespace entries and case-insensitive duplicates are
// ignored.
func NewEphemeralDiskFilter(extraPathPrefixes, extraModels, extraTypes []string) *Filter {
pathPrefixes := appendUnique(DefaultDiskPathPrefixes, extraPathPrefixes)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

paths are case-sensitive in linux, so this might not make sense to dedupe based upon case sensitivity

@jmclong jmclong Jul 22, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

func (f *PathFilter) Match(device block.Device) bool {
    return strings.HasPrefix(device.Path, f.Path)
}

this is a case-sensitive check

Comment thread charts/latest/values.yaml Outdated
# Controls which block devices the driver picks up as LVM physical volumes.
# A device must match ALL of the criteria below (path prefix AND model AND
# type). Within each list, a device matches if it satisfies ANY entry.
# Leave a list empty to disable filtering on that attribute. The defaults

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Leaving  extraModels  empty does not disable model filtering — the built-in defaults always apply and can never be removed or overridden (the README correctly says "appended... they never replace them"). This comment will lead operators to expect override/disable semantics that don't exist. Also "found on Azure VMs" is now inaccurate since defaults include Amazon EC2 NVMe Instance Storage . Please reword to reflect append-only behavior and both clouds.

Comment thread cmd/driver/main.go Outdated
flag.StringVar(&diskModels, "disk-models", "",
"Comma-separated list of additional device models to select, appended to the built-in defaults.")
flag.StringVar(&diskTypes, "disk-types", "",
"Comma-separated list of additional device types to select (e.g. loop), appended to the built-in defaults.") // Initialize logger flagsconfig.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

The  // Initialize logger flagsconfig.  comment (which documents the next block) got merged onto the end of the disk-types flag line

Comment thread charts/latest/README.md Outdated
defaults. If your nodes expose NVMe disks with a model, path prefix, or type
that is not covered by the defaults, add the extra value(s) so they are included
alongside the defaults. Empty and case-insensitive duplicate entries are
ignored.Example:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Missing space/newline before "Example:".

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.

2 participants