Repository navigation
Description
Feature request
Problem
Currently, a tenant Kubernetes cluster only exposes a single hardcoded StorageClass named kubevirt, mapped to the replicated infra StorageClass. Users who have multiple StorageClasses on their infrastructure (e.g., replicated, local-ssd, hdd-archive) cannot access them from within tenant clusters.
Related: #1424
Proposed solution
Use Helm lookup in the management cluster templates to automatically discover all infrastructure StorageClasses and propagate them to tenant clusters via the kubevirt-csi-node chart.
Key changes:
- Auto-discovery: The
helmreleases/csi.yamltemplate useslookup "storage.k8s.io/v1" "StorageClass"to enumerate all infra StorageClasses at reconciliation time - Same-name mapping: Each infra StorageClass is created in the tenant with the same name (e.g.,
replicatedstaysreplicated) - Default propagation: The
storageclass.kubernetes.io/is-default-classannotation is preserved - Security enforcement: An
infraStorageClassEnforcementallowList is auto-generated in thedriver-configConfigMap, restricting tenants to only use propagated StorageClasses - Fallback: When
lookupreturns empty (e.g.,helm templatedry-run), defaults to a singlereplicatedStorageClass - No Go changes: The kubevirt-csi-driver already supports multiple StorageClasses natively via
infraStorageClassName
Breaking changes
The storageClass parameter is removed from the kubernetes chart's values.yaml. Existing deployments that relied on overriding this value will need to be aware that all infra StorageClasses are now auto-propagated. The old single kubevirt StorageClass is replaced by per-infra-class entries.
Affected components
packages/apps/kubernetes(chart values, HelmRelease template, new ConfigMap)packages/system/kubevirt-csi-node(values format, StorageClass loop, enforcement ConfigMap)
Activity
github-actions commentedon May 2, 2026
This issue has had no activity for 60 days and was marked
lifecycle/stale.It will be closed in 14 days unless commented or labelled
lifecycle/frozen.feat(kubernetes): propagate remote-accessible LINSTOR StorageClasses …
test(kubernetes): cover LINSTOR StorageClass propagation
feat(kubernetes): propagate remote-accessible LINSTOR StorageClasses …
test(kubernetes): cover LINSTOR StorageClass propagation
feat(kubernetes): propagate remote-accessible LINSTOR StorageClasses …
myasnikovdaniil commentedon Aug 14, 2026
Done in #2872 (merged 2026-06-26), remote-accessible linstor StorageClasses are propagated into tenant clusters. Closing.
One boundary in case it was the actual ask: #2872 covers remote-capable linstor classes only, not an arbitrary infrastructure StorageClass. Reopen if you meant the wider case.