From 2e3bd902bf08b9f06e7353d0a8dab5efc6537122 Mon Sep 17 00:00:00 2001 From: Mahatva Garg Date: Wed, 15 Apr 2026 23:05:48 +0530 Subject: [PATCH 1/2] feat: update NFS provision to include dedicated export policy and adjust outputs and documentation correction --- docs/example-template/terraform/main.tf | 2 +- terraform/nfs-provision/main.tf | 15 ++++++++++++--- terraform/nfs-provision/outputs.tf | 5 +++++ 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/docs/example-template/terraform/main.tf b/docs/example-template/terraform/main.tf index b91fdd8..9a50d04 100644 --- a/docs/example-template/terraform/main.tf +++ b/docs/example-template/terraform/main.tf @@ -2,7 +2,7 @@ terraform { required_providers { netapp-ontap = { source = "NetApp/netapp-ontap" - version = "~> 1.0" + version = "~> 2.5" } } } diff --git a/terraform/nfs-provision/main.tf b/terraform/nfs-provision/main.tf index 8d00e0d..5b55468 100644 --- a/terraform/nfs-provision/main.tf +++ b/terraform/nfs-provision/main.tf @@ -37,14 +37,23 @@ resource "netapp-ontap_volume" "nfs_vol" { } nas = { junction_path = "/${var.volume_name}" + export_policy = netapp-ontap_nfs_export_policy.vol_policy.name } + +} + +# Step 2 — Create a dedicated NFS export policy +resource "netapp-ontap_nfs_export_policy" "vol_policy" { + cx_profile_name = "cluster1" + name = "${var.volume_name}_export_policy" + svm_name = var.svm_name } -# Step 2 — Add a client-match rule to the default export policy +# Step 3 — Add a client-match rule to the dedicated policy resource "netapp-ontap_nfs_export_policy_rule" "client_rule" { cx_profile_name = "cluster1" svm_name = var.svm_name - export_policy_name = "default" + export_policy_name = netapp-ontap_nfs_export_policy.vol_policy.name clients_match = [var.client_match] ro_rule = ["any"] rw_rule = ["any"] @@ -52,6 +61,6 @@ resource "netapp-ontap_nfs_export_policy_rule" "client_rule" { protocols = ["nfs"] depends_on = [ - netapp-ontap_volume.nfs_vol, + netapp-ontap_nfs_export_policy.vol_policy, ] } diff --git a/terraform/nfs-provision/outputs.tf b/terraform/nfs-provision/outputs.tf index 0ee17ac..003b95e 100644 --- a/terraform/nfs-provision/outputs.tf +++ b/terraform/nfs-provision/outputs.tf @@ -8,6 +8,11 @@ output "mount_path" { value = netapp-ontap_volume.nfs_vol.nas.junction_path } +output "export_policy" { + description = "Name of the dedicated NFS export policy" + value = netapp-ontap_nfs_export_policy.vol_policy.name +} + output "client_match" { description = "Client match rule on the export policy" value = var.client_match From 84739933feacb94831f8d07100763dbba00a67ed Mon Sep 17 00:00:00 2001 From: Mahatva Garg Date: Wed, 15 Apr 2026 23:22:57 +0530 Subject: [PATCH 2/2] fix: correct export policy attribute name in NFS volume resource and tested --- terraform/nfs-provision/main.tf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/terraform/nfs-provision/main.tf b/terraform/nfs-provision/main.tf index 5b55468..030c209 100644 --- a/terraform/nfs-provision/main.tf +++ b/terraform/nfs-provision/main.tf @@ -36,8 +36,8 @@ resource "netapp-ontap_volume" "nfs_vol" { size_unit = var.volume_size_unit } nas = { - junction_path = "/${var.volume_name}" - export_policy = netapp-ontap_nfs_export_policy.vol_policy.name + junction_path = "/${var.volume_name}" + export_policy_name = netapp-ontap_nfs_export_policy.vol_policy.name } }