domino_admin_toolkit.checks.info.test_netapp_volume_mapping module

pydantic model domino_admin_toolkit.checks.info.test_netapp_volume_mapping.NetappVolumeMappingAnalyzer

Bases: AnalyzerBase[NetappVolumeMappingRow]

Validates each Domino NetApp volume maps to a healthy ONTAP FlexVol.

Fields:

analyze(data)

Analyzes one row and returns a list of CheckResult instances.

Return type:

list[CheckResult]

Args:

data: One row dict (TRow). The Runner calls this once per DataFrame row.

Returns:

List[CheckResult]: A list containing the results of the analysis.

Raises:

NotImplementedError: If this method is not implemented by subclasses.

name: ClassVar[str] = 'NetappVolumeMappingAnalyzer'
class domino_admin_toolkit.checks.info.test_netapp_volume_mapping.NetappVolumeMappingRow

Bases: TypedDict

domino_status: str | None
domino_volume: str
ontap_flexvol: str
trident_state: str | None
domino_admin_toolkit.checks.info.test_netapp_volume_mapping.netapp_volume_mapping_data(k8s_client, platform_namespace, is_domino_cloud)

Collect Domino NetApp volume to ONTAP FlexVol mapping data.

domino_admin_toolkit.checks.info.test_netapp_volume_mapping.test_netapp_volume_mapping(netapp_volume_mapping_data, runner)
Description: Maps each Domino NetApp Volume (DVNO) to its backing NetApp ONTAP

FlexVol and reports the mapping with filesystem identity (SVM, FSx filesystem ID) and Trident state. Joins the remotefs PostgreSQL volume records with TridentVolume and TridentBackendConfig custom resources. Runs only on Domino Cloud deployments (skips when the Domino Cloud central-config flag is off) and skips when DVNO is not enabled.

Failure Conditions:
  • An Active Domino volume has no backing FlexVol in Trident (FlexVol deleted from ONTAP or Trident lost track of it)

  • A FlexVol backing a Domino volume is in a non-online Trident state (warning)

  • remotefs database or Trident custom resources are unreachable (error)

Troubleshooting Steps:
  1. List Trident volumes: kubectl get tridentvolumes -n trident

  2. Inspect a specific volume: kubectl get tridentvolume <name> -n trident -o yaml

  3. Check Trident backend health: kubectl get tridentbackends -n trident

  4. In the AWS FSx console, search for the volume by its ontap_flexvol name (fsvol-/svm- IDs exist only in the FSx control plane)

  5. Check remotefs service logs: kubectl logs deploy/remotefs -n <platform-namespace>

Resolution Steps:
  1. For a missing FlexVol backing an Active volume, verify the volume in ONTAP (FSx console or ONTAP CLI); if deleted, restore from a snapshot/backup or mark the Domino volume deleted via the Domino admin UI

  2. For non-online Trident states, check the Trident controller logs (kubectl logs deploy/trident-controller -n trident) and backend connectivity to the SVM data LIF

  3. Engage the storage/infrastructure team for ONTAP-side issues

Required Permissions:
  • Read access to secrets and pods in the Domino platform namespace

  • Read access to trident.netapp.io custom resources in the Trident namespace

  • kubectl and AWS FSx console access for resolution

See also:
  • test_platform_pvcs.py — health of platform-namespace PVCs, including the NetApp root PVC this feature depends on.

  • test_k8s_storage.py — cluster-wide StorageClass and PV/PVC state, covering the trident storage class backing these volumes.

  • test_postgres.py — connectivity checks for platform Postgres databases; companion to this check’s direct remotefs database query.