{"id":15221778,"url":"https://github.com/googlecloudplatform/terraform-google-netapp-volumes","last_synced_at":"2025-10-20T00:33:00.750Z","repository":{"id":220399111,"uuid":"738204335","full_name":"GoogleCloudPlatform/terraform-google-netapp-volumes","owner":"GoogleCloudPlatform","description":"Deploy NetApp Storage Volumes","archived":false,"fork":false,"pushed_at":"2024-10-30T17:29:33.000Z","size":186,"stargazers_count":2,"open_issues_count":5,"forks_count":3,"subscribers_count":13,"default_branch":"main","last_synced_at":"2024-12-18T08:41:29.459Z","etag":null,"topics":["cft-terraform","compute","networking"],"latest_commit_sha":null,"homepage":"https://registry.terraform.io/modules/GoogleCloudPlatform/netapp-volumes/google","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GoogleCloudPlatform.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-02T17:13:00.000Z","updated_at":"2024-10-30T17:28:28.000Z","dependencies_parsed_at":"2025-01-09T21:25:54.823Z","dependency_job_id":"56d6faf9-7138-4056-8a1f-e83b11aee867","html_url":"https://github.com/GoogleCloudPlatform/terraform-google-netapp-volumes","commit_stats":null,"previous_names":["googlecloudplatform/terraform-google-netapp-volumes"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GoogleCloudPlatform%2Fterraform-google-netapp-volumes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GoogleCloudPlatform%2Fterraform-google-netapp-volumes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GoogleCloudPlatform%2Fterraform-google-netapp-volumes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GoogleCloudPlatform%2Fterraform-google-netapp-volumes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GoogleCloudPlatform","download_url":"https://codeload.github.com/GoogleCloudPlatform/terraform-google-netapp-volumes/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237243005,"owners_count":19278060,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cft-terraform","compute","networking"],"created_at":"2024-09-28T15:07:29.110Z","updated_at":"2025-10-20T00:33:00.743Z","avatar_url":"https://github.com/GoogleCloudPlatform.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# terraform-google-netapp-volumes\n\n## Description\nThis module makes it easy to setup [NetApp Volumes](https://cloud.google.com/netapp/volumes/docs/discover/overview). It is designed to deploy [Stroage Pool](https://cloud.google.com/netapp/volumes/docs/configure-and-use/storage-pools/overview) and [Storage Volume(s)](https://cloud.google.com/netapp/volumes/docs/configure-and-use/volumes/overview). Creation of Storage Pool is optional. Module can create Storage Volme(s) in an existing storage pool.\n## Compatibility\n\nThis module is meant for use with Terraform 1.3+ and tested using Terraform 1.3+. If you find incompatibilities using Terraform \u003e=1.3, please open an issue.\n\n## Version\n\nCurrent version is 0.X. Upgrade guides:\n\n- [0.X -\u003e 1.0](/docs/upgrading_to_v1.0.md)\n\n\n## Usage\nFunctional examples are included in the [examples](./examples/) directory. Basic usage of this module is as follows:\n\n- Create a Storage Pool and Storage Volumes\n\n```hcl\nmodule \"netapp_pool_volume\" {\n  source  = \"GoogleCloudPlatform/netapp-volumes/google\"\n  version = \"~\u003e 2.1\"\n\n  project_id         = \"test-project-id\"\n  location           = \"us-central1\"\n\n  storage_pool = {\n    create_pool   = true\n    name          = \"test-pool\"\n    size          = \"2048\"\n    service_level = \"PREMIUM\"\n    ldap_enabled  = false\n    network_name  = \"test-network\"\n    labels = {\n      pool_env = \"test\"\n    }\n    description = \"test pool\"\n  }\n\n  storage_volumes = [\n\n    {\n      name       = \"test-volume-1\"\n      share_name = \"test-volume-1\"\n      size       = \"100\"\n      protocols  = [\"NFSV3\"]\n      snapshot_policy = {\n        enabled = true\n        daily_schedule = {\n          snapshots_to_keep = 1\n          minute            = 45\n          hour              = 23\n        }\n      }\n\n      export_policy_rules = {\n        test = {\n          allowed_clients = \"10.0.0.0/24,10.100.0.0/24\"\n          access_type     = \"READ_WRITE\"\n          nfsv3           = true\n          has_root_access = true\n        }\n      }\n    },\n\n    {\n      name       = \"test-volume-2\"\n      share_name = \"test-volume-2\"\n      size       = \"200\"\n      protocols  = [\"NFSV3\"]\n      snapshot_policy = {\n        enabled = true\n        daily_schedule = {\n          snapshots_to_keep = 1\n          hour              = 22\n        }\n      }\n    },\n\n  ]\n\n\n}\n```\n\n- Create storage volumes in an existing storage pool\n\n```hcl\nmodule \"storage_pool_only\" {\n  source  = \"GoogleCloudPlatform/netapp-volumes/google\"\n  version = \"~\u003e 2.0\"\n\n\n  project_id = var.project_id\n  location   = var.region\n\n  storage_pool = {\n    create_pool   = true\n    name          = \"test-pool-2\"\n    size          = \"2048\"\n    service_level = \"PREMIUM\"\n    ldap_enabled  = false\n    network_name  = var.network_name\n    labels = {\n      pool_env = \"test\"\n    }\n    description = \"test storage pool only\"\n  }\n\n  depends_on = [\n    google_service_networking_connection.vpc_connection,\n    google_service_networking_connection.netapp_vpc_connection,\n  ]\n}\n\n\n## 3 - Create storage volume in the storage pool already created\n\nmodule \"volumes_only\" {\n  source  = \"GoogleCloudPlatform/netapp-volumes/google\"\n  version = \"~\u003e 1.0\"\n\n\n  project_id = module.netapp_volumes.storage_pool.project\n  location   = module.netapp_volumes.storage_pool.location\n\n  # name of an existing storage pool\n  storage_pool = {\n    create_pool = false\n    name        = module.storage_pool_only.storage_pool.name\n  }\n\n  storage_volumes = [\n    # test-volume-3\n    {\n      name            = \"test-volume-3\"\n      share_name      = \"test-volume-3\"\n      size            = \"100\"\n      protocols       = [\"NFSV3\"]\n      deletion_policy = \"FORCE\"\n      snapshot_policy = {\n        enabled = true\n        daily_schedule = {\n          snapshots_to_keep = 1\n          minute            = 21\n          hour              = 4\n        }\n        weekly_schedule = {\n          snapshots_to_keep = 2\n          minute            = 1\n          hour              = 3\n          day               = \"Sunday\"\n        }\n      }\n      export_policy_rules = {\n        test = {\n          allowed_clients = \"10.0.0.0/24,10.100.0.0/24\"\n          access_type     = \"READ_WRITE\"\n          nfsv3           = true\n          has_root_access = true\n        }\n      }\n    },\n  ]\n\n  depends_on = [\n    module.netapp_volumes,\n  ]\n}\n```\n\n\n\u003c!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| common\\_labels | Common Labels as key value pairs. Applies to all the resources. If labels are provided in storege\\_pool or storage\\_volumes then they are merged with common labels before being applied to the resources | `map(any)` | `{}` | no |\n| location | Name of the location. Usually a region name, expect for some STANDARD service level pools which require a zone name | `string` | n/a | yes |\n| project\\_id | The ID of the project in which the resource belongs | `string` | n/a | yes |\n| storage\\_pool | Storage pool details | \u003cpre\u003eobject({\u003cbr\u003e    create_pool        = optional(bool, false)\u003cbr\u003e    name               = string\u003cbr\u003e    network_name       = optional(string)\u003cbr\u003e    network_project_id = optional(string)\u003cbr\u003e    service_level      = optional(string)\u003cbr\u003e    size               = optional(number)\u003cbr\u003e    description        = optional(string)\u003cbr\u003e    labels             = optional(map(string), {})\u003cbr\u003e    ldap_enabled       = optional(bool, false)\u003cbr\u003e    ad_id              = optional(string)\u003cbr\u003e    kms_config         = optional(string)\u003cbr\u003e    zone               = optional(string)\u003cbr\u003e    replica_zone       = optional(string)\u003cbr\u003e    allow_auto_tiering = optional(bool)\u003cbr\u003e  })\u003c/pre\u003e | n/a | yes |\n| storage\\_volumes | List of Storage Volumes | \u003cpre\u003elist(object({\u003cbr\u003e    name               = string\u003cbr\u003e    size               = number\u003cbr\u003e    share_name         = string\u003cbr\u003e    protocols          = list(string)\u003cbr\u003e    labels             = optional(map(string), {})\u003cbr\u003e    smb_settings       = optional(list(string))\u003cbr\u003e    unix_permissions   = optional(string)\u003cbr\u003e    description        = optional(string)\u003cbr\u003e    snapshot_directory = optional(bool)\u003cbr\u003e    security_style     = optional(string)\u003cbr\u003e    kerberos_enabled   = optional(bool)\u003cbr\u003e    restricted_actions = optional(list(string))\u003cbr\u003e    deletion_policy    = optional(string)\u003cbr\u003e\u003cbr\u003e    backup_policies          = optional(list(string))\u003cbr\u003e    backup_vault             = optional(string)\u003cbr\u003e    scheduled_backup_enabled = optional(bool, true)\u003cbr\u003e\u003cbr\u003e    multiple_endpoints = optional(bool)\u003cbr\u003e    large_capacity     = optional(bool)\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e    export_policy_rules = optional(map(object({\u003cbr\u003e      allowed_clients       = optional(string)\u003cbr\u003e      has_root_access       = optional(string)\u003cbr\u003e      access_type           = optional(string) #Possible values are: READ_ONLY, READ_WRITE, READ_NONE\u003cbr\u003e      nfsv3                 = optional(bool)\u003cbr\u003e      nfsv4                 = optional(bool)\u003cbr\u003e      kerberos5_read_only   = optional(bool)\u003cbr\u003e      kerberos5_read_write  = optional(bool)\u003cbr\u003e      kerberos5i_read_only  = optional(bool)\u003cbr\u003e      kerberos5i_read_write = optional(bool)\u003cbr\u003e      kerberos5p_read_only  = optional(bool)\u003cbr\u003e      kerberos5p_read_write = optional(bool)\u003cbr\u003e    })))\u003cbr\u003e\u003cbr\u003e    snapshot_policy = optional(object({\u003cbr\u003e      enabled = optional(bool, false)\u003cbr\u003e      hourly_schedule = optional(object({\u003cbr\u003e        snapshots_to_keep = optional(number)\u003cbr\u003e        minute            = optional(number)\u003cbr\u003e      }))\u003cbr\u003e\u003cbr\u003e      daily_schedule = optional(object({\u003cbr\u003e        snapshots_to_keep = optional(number)\u003cbr\u003e        minute            = optional(number)\u003cbr\u003e        hour              = optional(number)\u003cbr\u003e      }))\u003cbr\u003e\u003cbr\u003e      weekly_schedule = optional(object({\u003cbr\u003e        snapshots_to_keep = optional(number)\u003cbr\u003e        minute            = optional(number)\u003cbr\u003e        hour              = optional(number)\u003cbr\u003e        day               = optional(string)\u003cbr\u003e      }))\u003cbr\u003e\u003cbr\u003e      monthly_schedule = optional(object({\u003cbr\u003e        snapshots_to_keep = optional(number)\u003cbr\u003e        minute            = optional(number)\u003cbr\u003e        hour              = optional(number)\u003cbr\u003e        days_of_month     = optional(string)\u003cbr\u003e      }))\u003cbr\u003e\u003cbr\u003e    }))\u003cbr\u003e\u003cbr\u003e    restore_parameters = optional(object({\u003cbr\u003e      source_snapshot = optional(string)\u003cbr\u003e      source_backup   = optional(string)\u003cbr\u003e    }))\u003cbr\u003e\u003cbr\u003e    tiering_policy = optional(object({\u003cbr\u003e      cooling_threshold_days = number\u003cbr\u003e      tier_action            = string\u003cbr\u003e    }))\u003cbr\u003e\u003cbr\u003e  }))\u003c/pre\u003e | `[]` | no |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| storage\\_pool | Storage Pool created |\n| storage\\_volumes | Storage Volume(s) created |\n\n\u003c!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n\n## storage_pool details\nIn order to create Storage Pool set `create_pool` to `true`, provide values for `name`, `network_name`, `service_level` and `size`. Other fields are optional.\n\nIf you already have a Storage Pool created, set `create_pool` to `false` and provide `name` of an existing Storage Pool.\n\n\n## storage_volumes details\nProvide list of storage volumes to create. Each volume requires `name`, `size`, `share_name` and protocols. Other fields are optional.\n\n## Requirements\n\nThese sections describe requirements for using this module.\n\n### Software\n\nThe following dependencies must be available:\n\n- [Terraform][terraform] v1.3+\n- [Terraform Provider for GCP][terraform-provider-gcp] plugin v6.19+\n\n### Service Account\n\nA service account with the following roles must be used to provision\nthe resources of this module:\n\n- Google Cloud NetApp Volumes Admin: `roles/netapp.admin`\n\n### APIs\n\nA project with the following APIs enabled must be used to host the\nresources of this module:\n\n- Google Cloud NetApp Volumes API: `netapp.googleapis.com`\n\nThe [Project Factory module](https://github.com/terraform-google-modules/terraform-google-project-factory) can be used to provision a project with the necessary APIs enabled.\n\n## Contributing\n\nRefer to the [contribution guidelines](./CONTRIBUTING.md) for information on contributing to this module.\n\n\n## Security Disclosures\n\nPlease see our [security disclosure process](./SECURITY.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgooglecloudplatform%2Fterraform-google-netapp-volumes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgooglecloudplatform%2Fterraform-google-netapp-volumes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgooglecloudplatform%2Fterraform-google-netapp-volumes/lists"}