{"id":31900838,"url":"https://github.com/netapp/azure-netapp-files-storage","last_synced_at":"2026-07-06T11:31:03.034Z","repository":{"id":317290896,"uuid":"992749034","full_name":"NetApp/azure-netapp-files-storage","owner":"NetApp","description":"ARM, Terraform, and PowerShell templates for Azure NetApp Files Storage deployments including NFS volumes, Linux VMs, and enterprise workloads","archived":false,"fork":false,"pushed_at":"2025-12-02T17:03:13.000Z","size":165,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-05T15:53:27.112Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NetApp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-05-29T16:45:40.000Z","updated_at":"2025-12-02T17:03:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"053b2955-8e1a-4910-b85f-731ac8070947","html_url":"https://github.com/NetApp/azure-netapp-files-storage","commit_stats":null,"previous_names":["netapp/azure-netapp-files-storage"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/NetApp/azure-netapp-files-storage","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NetApp%2Fazure-netapp-files-storage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NetApp%2Fazure-netapp-files-storage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NetApp%2Fazure-netapp-files-storage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NetApp%2Fazure-netapp-files-storage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NetApp","download_url":"https://codeload.github.com/NetApp/azure-netapp-files-storage/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NetApp%2Fazure-netapp-files-storage/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35189713,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-06T02:00:07.184Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2025-10-13T12:29:20.936Z","updated_at":"2026-07-06T11:31:03.020Z","avatar_url":"https://github.com/NetApp.png","language":"PowerShell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Azure NetApp Files Storage Templates\n\nA collection of Infrastructure as Code templates for deploying Azure NetApp Files solutions using ARM Templates, Terraform, and PowerShell.\n\n## Repository Structure\n\n```\nazure-netapp-files-storage/\n├── arm-templates/\n│   ├── nfs-volume/\n│   ├── linux-vm-with-nfs/\n│   ├── multi-linux-vms-with-nfs/\n│   └── db/\n│       └── postgresql-vm-anf/\n├── terraform/\n│   ├── nfs-volume/\n│   ├── linux-vm-with-nfs/\n│   ├── multi-linux-vms-with-nfs/\n│   └── db/\n│       └── postgresql-vm-anf/\n├── powershell/\n│   ├── nfs-volume/\n│   ├── linux-vm-with-nfs/\n│   ├── multi-linux-vms-with-nfs/\n│   └── db/\n│       └── postgresql-vm-anf/\n├── docs/\n│   ├── architecture-diagrams/\n│   ├── deployment-guides/\n│   └── troubleshooting/\n└── examples/\n    ├── parameter-files/\n    └── sample-configurations/\n```\n\n## Available Templates\n\n| Template | ARM Templates | Terraform | PowerShell |\n|----------|---------------|-----------|------------|\n| NFS Volume | :white_check_mark: | :white_check_mark: | :white_check_mark: |\n| Linux VM with NFS | :white_check_mark: | :white_check_mark: | :white_check_mark: |\n| Multi Linux VMs with NFS | :white_check_mark: | :white_check_mark: | :white_check_mark: |\n| PostgreSQL on VM + ANF | :white_check_mark: | :white_check_mark: | :white_check_mark: |\n\n## Coming Soon\n\n- workload templates\n\n## Prerequisites\n\n### Azure Requirements\n\n- Active Azure subscription\n- Contributor or Owner permissions on target resource group\n- Azure NetApp Files enabled in your subscription\n- Appropriate regional availability for services\n\n### Tools Required\n\n**For ARM Templates:**\n- Azure CLI 2.30.0+ or Azure PowerShell 6.0+\n- Visual Studio Code with Azure Resource Manager Tools extension (recommended)\n\n**For Terraform:**\n- Terraform 1.0+\n- Azure CLI for authentication\n- AzureRM Provider 3.0+\n\n**For PowerShell:**\n- PowerShell 7.0+ (cross-platform)\n- Az PowerShell module 8.0+\n- Required modules: Az.Compute, Az.Network, Az.NetAppFiles, Az.Resources (for PostgreSQL VM + ANF)\n\n## Deployment Options\n\n### Option 1: Deploy with GitHub Actions (Recommended)\n[![Deploy with GitHub Actions](https://img.shields.io/badge/Deploy%20with-GitHub%20Actions-2ea44f)](../../actions/workflows/deploy.yml)\n\n1. **Fork/Clone this repository**\n2. **Set up Azure service principal credentials:**\n   ```bash\n   az ad sp create-for-rbac --name \"GitHubActions\" --role Contributor --scope /subscriptions/YOUR-SUBSCRIPTION-ID --sdk-auth\n   ```\n3. **Add the JSON output as a GitHub secret named `AZURE_CREDENTIALS`**\n4. **Go to Actions tab and run the \"Deploy ANF \u0026 VM Infrastructure\" workflow**\n\n### Option 2: Deploy to Azure\n\nChoose your deployment scenario and click the button to deploy directly to Azure Portal:\n\n#### 📁 Basic NFS Volume\nDeploy only Azure NetApp Files infrastructure (account, pool, volume)\n\n\u003ca href=\"https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FNetApp%2Fazure-netapp-files-storage%2Fmain%2Farm-templates%2Fnfs-volume%2Fnetapp-volume-template.json?target=_blank\" target=\"_blank\"\u003e\n\u003cimg src=\"https://aka.ms/deploytoazurebutton\" alt=\"Deploy to Azure\"/\u003e\n\u003c/a\u003e\n\n**Includes:** NetApp Account, Capacity Pool, NFS Volume, Virtual Network with delegated subnet\n\n#### 🖥️ Single Linux VM with NFS\nDeploy Linux VM with mounted NFS volume and network configuration\n\n\u003ca href=\"https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FNetApp%2Fazure-netapp-files-storage%2Fmain%2Farm-templates%2Flinux-vm-with-nfs%2Flinux-vm-anf-nfs-template.json?target=_blank\" target=\"_blank\"\u003e\n\u003cimg src=\"https://aka.ms/deploytoazurebutton\" alt=\"Deploy to Azure\"/\u003e\n\u003c/a\u003e\n\n**Includes:** Ubuntu 22.04-LTS VM, Mounted NFS volume, Network Security Group, Public IP for SSH access\n\n#### 🏢 Multiple Linux VMs with NFS\nDeploy multiple VMs with shared NFS storage and load balancing\n\n\u003ca href=\"https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FNetApp%2Fazure-netapp-files-storage%2Fmain%2Farm-templates%2Fmulti-linux-vms-with-nfs%2Fazlinux-multi-vm-anf-template.json?target=_blank\" target=\"_blank\"\u003e\n\u003cimg src=\"https://aka.ms/deploytoazurebutton\" alt=\"Deploy to Azure\"/\u003e\n\u003c/a\u003e\n\n**Includes:** Multiple Ubuntu VMs (configurable count), Shared NFS volume across all VMs, Load Balancer for high availability, Network Security Groups\n\n#### 🖥️ PostgreSQL on VM with ANF\nDeploy PostgreSQL on Linux VM with Azure NetApp Files storage\n\n\u003ca href=\"https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FNetApp%2Fazure-netapp-files-storage%2Fmain%2Farm-templates%2Fdb%2Fpostgresql-vm-anf%2Fpostgresql-vm-anf-template.json?target=_blank\" target=\"_blank\"\u003e\n\u003cimg src=\"https://aka.ms/deploytoazurebutton\" alt=\"Deploy to Azure\"/\u003e\n\u003c/a\u003e\n\n**Includes:** Ubuntu 22.04-LTS VM, PostgreSQL installed and configured, Azure NetApp Files volume for data storage, Network Security Group, PostgreSQL data directory on ANF volume\n\n**💡 How it works:**\n1. **Click any \"Deploy to Azure\" button above**\n2. **Sign in with your Azure credentials**\n3. **Fill in the required parameters**\n4. **Click \"Review + Create\" to deploy**\n\n### Option 3: Manual Deployment\n\n1. **Clone this repository:**\n   ```bash\n   git clone https://github.com/NetApp/azure-netapp-files-storage.git\n   cd azure-netapp-files-storage\n   ```\n\n2. **Choose your preferred tool:**\n   ```bash\n   cd arm-templates/     # for ARM Templates\n   cd terraform/        # for Terraform\n   cd powershell/       # for PowerShell\n   ```\n\n3. **Start with the basic NFS volume:**\n   ```bash\n   cd nfs-volume/\n   ```\n\n4. **Follow the README** in each template folder for specific deployment instructions.\n\n## Template Descriptions\n\n### NFS Volume\nCreates a basic Azure NetApp Files setup including:\n- NetApp account\n- Capacity pool\n- NFS volume with specified size and service level\n\n### Linux VM with NFS\nDeploys a complete solution with:\n- Virtual network and subnet\n- Linux virtual machine\n- NFS volume mounted to the VM\n- Network security group configuration\n\n### Multi Linux VMs with NFS\nEnterprise scenario including:\n- Multiple Linux virtual machines\n- Shared NFS volumes across VMs\n- Load balancing configuration\n- High availability setup\n\n### PostgreSQL on VM with ANF\nDeploys PostgreSQL on a Linux VM with Azure NetApp Files storage:\n- Linux virtual machine (Ubuntu 22.04-LTS)\n- PostgreSQL installed and configured on the VM\n- Azure NetApp Files volume (NFS) for PostgreSQL data storage\n- PostgreSQL data directory mounted on ANF volume\n- Network security group with PostgreSQL and SSH access\n- Public IP for remote access (optional)\n- Full control over PostgreSQL configuration and extensions\n\n## Security Best Practices\n\n\u003e [!WARNING]\n\u003e Never commit secrets to the repository\n\n- Use Azure Key Vault for storing sensitive data\n- Keep environment-specific parameter files separate and secure\n- Implement proper network security groups and subnet delegation\n- Use managed identities and RBAC for access control\n- Enable encryption in transit and at rest\n- Use environment variables for passwords (e.g., `ADMIN_PASSWORD`)\n- Replace placeholder passwords with secure values before deployment\n\n\n## Documentation\n\n- [Deployment Guides](docs/deployment-guides/) - Step-by-step deployment instructions\n- [Architecture Diagrams](docs/architecture-diagrams/) - Visual solution designs\n- [Troubleshooting](docs/troubleshooting/) - Common issues and solutions\n- [Azure NetApp Files Official Documentation](https://docs.microsoft.com/azure/azure-netapp-files/)\n\n## Support\n\n- **Issues**: Report problems or request features using GitHub Issues\n- **Questions**: Ask questions in GitHub Discussions\n- **Documentation**: Check the docs/ folder for detailed guides\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n---\n\n**Maintained by:** Prabu Arjunan  \n**Last Updated:** 10/8/25\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetapp%2Fazure-netapp-files-storage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnetapp%2Fazure-netapp-files-storage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetapp%2Fazure-netapp-files-storage/lists"}