Select and configure dynamic TrueNAS-backed Kubernetes storage #5

Closed
opened 2026-08-29 00:22:49 -05:00 by portegumi · 1 comment
Collaborator

Description

Choose a supported method for Kubernetes to provision persistent storage on TrueNAS while retaining TrueNAS as the storage appliance. The design must distinguish shared-file workloads from block/database workloads.

Scope

  • Evaluate the appropriate TrueNAS CSI, NFS, and iSCSI integration options.
  • Select dynamic provisioning paths for shared-file and block storage.
  • Define how TrueNAS API credentials or storage credentials will be supplied without entering the public repository.
  • Validate provisioning, attachment or mounting, expansion where supported, and deletion behavior.

Acceptance criteria

  • The selected dynamic storage approach and rationale are documented.
  • Shared-file and block/database use cases are explicitly distinguished.
  • A disposable dynamically provisioned volume survives pod recreation and passes read/write validation.
  • Reclaim behavior is tested and documented.
  • Credential handling uses an out-of-repository mechanism.

Dependencies / blockers

Requires a healthy cluster, network reachability to TrueNAS, and completion of the relevant TrueNAS access planning. No CSI implementation is predetermined by this issue.

## Description Choose a supported method for Kubernetes to provision persistent storage on TrueNAS while retaining TrueNAS as the storage appliance. The design must distinguish shared-file workloads from block/database workloads. ## Scope - Evaluate the appropriate TrueNAS CSI, NFS, and iSCSI integration options. - Select dynamic provisioning paths for shared-file and block storage. - Define how TrueNAS API credentials or storage credentials will be supplied without entering the public repository. - Validate provisioning, attachment or mounting, expansion where supported, and deletion behavior. ## Acceptance criteria - [x] The selected dynamic storage approach and rationale are documented. - [x] Shared-file and block/database use cases are explicitly distinguished. - [x] A disposable dynamically provisioned volume survives pod recreation and passes read/write validation. - [x] Reclaim behavior is tested and documented. - [x] Credential handling uses an out-of-repository mechanism. ## Dependencies / blockers Requires a healthy cluster, network reachability to TrueNAS, and completion of the relevant TrueNAS access planning. No CSI implementation is predetermined by this issue.
Author
Collaborator

Completion evidence:

  • TrueNAS CSI dynamically provisions both truenas-nfs RWX volumes and truenas-iscsi RWO volumes.
  • NFS and iSCSI test manifests are committed under k8s/storage/tests.
  • Disposable volumes reached Bound, passed read/write checks, and retained data through pod recreation.
  • Volume expansion and deletion/reclaim behavior were validated; disposable PVs and their TrueNAS backing storage were removed as expected.
  • CSI/API credentials are supplied through Kubernetes secrets and are not committed to the repository.

All acceptance criteria are complete.

Completion evidence: - TrueNAS CSI dynamically provisions both `truenas-nfs` RWX volumes and `truenas-iscsi` RWO volumes. - NFS and iSCSI test manifests are committed under [`k8s/storage/tests`](https://git.gitchegumi.com/gitchegumi/homelab/src/branch/main/k8s/storage/tests). - Disposable volumes reached `Bound`, passed read/write checks, and retained data through pod recreation. - Volume expansion and deletion/reclaim behavior were validated; disposable PVs and their TrueNAS backing storage were removed as expected. - CSI/API credentials are supplied through Kubernetes secrets and are not committed to the repository. All acceptance criteria are complete.
Sign in to join this conversation.
No description provided.