Skip to content

Cloudgeni-ai/terraform-azure-modules

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Terraform Azure Modules πŸš€

License Terraform Azure

🌟 Collection of secure, well-designed, and reusable Terraform modules for Microsoft Azure 🌟

Inspired by the excellent terraform-aws-modules organization, this project provides a comprehensive collection of community-maintained Terraform modules for Azure services. Each module follows security best practices, implements proper tagging, and includes comprehensive documentation.

🎯 Project Goals

  • Security First: All modules implement Azure security best practices by default
  • Production Ready: Modules are battle-tested and suitable for production environments
  • Consistent Structure: Standardized module structure for easy adoption and maintenance
  • Community Driven: Open-source project welcoming contributions from the community
  • Comprehensive Documentation: Each module includes detailed documentation and examples

πŸ—οΈ Available Modules

Core Infrastructure

Module Description Status
azure-resource-group Create and manage Azure Resource Groups βœ… Available
azure-virtual-network Create secure Virtual Networks with subnets βœ… Available
azure-network-security-group Network Security Groups with predefined rules βœ… Available
azure-key-vault Secure Key Vault with access policies βœ… Available
azure-storage-account Secure Storage Account with encryption βœ… Available

Compute Services

Module Description Status
azure-virtual-machine Virtual Machines with security hardening 🚧 In Progress
azure-vmss Virtual Machine Scale Sets πŸ“‹ Planned
azure-aks Azure Kubernetes Service πŸ“‹ Planned
azure-container-instances Container Instances πŸ“‹ Planned

Database Services

Module Description Status
azure-sql-database SQL Database with security features πŸ“‹ Planned
azure-postgresql PostgreSQL Flexible Server πŸ“‹ Planned
azure-mysql MySQL Flexible Server πŸ“‹ Planned
azure-cosmos-db Cosmos DB with encryption πŸ“‹ Planned

Security & Identity

Module Description Status
azure-rbac Role-Based Access Control πŸ“‹ Planned
azure-managed-identity Managed Identity assignments πŸ“‹ Planned
azure-private-endpoint Private Endpoints for services πŸ“‹ Planned

Monitoring & Logging

Module Description Status
azure-log-analytics Log Analytics Workspace πŸ“‹ Planned
azure-application-insights Application Insights πŸ“‹ Planned

πŸš€ Quick Start

Prerequisites

Using a Module

# Example: Creating a Resource Group
module "resource_group" {
  source = "github.com/Cloudgeni-ai/terraform-azure-modules//modules/azure-resource-group"
  
  name     = "my-rg"
  location = "East US"
  
  tags = {
    Environment = "Production"
    Project     = "MyProject"
  }
}

# Example: Creating a Virtual Network
module "virtual_network" {
  source = "github.com/Cloudgeni-ai/terraform-azure-modules//modules/azure-virtual-network"
  
  name                = "my-vnet"
  location            = module.resource_group.location
  resource_group_name = module.resource_group.name
  
  address_space = ["10.0.0.0/16"]
  
  subnets = [
    {
      name           = "subnet1"
      address_prefix = "10.0.1.0/24"
    },
    {
      name           = "subnet2"
      address_prefix = "10.0.2.0/24"
    }
  ]
  
  tags = {
    Environment = "Production"
    Project     = "MyProject"
  }
}

πŸ“¦ Module Structure

Each module follows this standardized structure:

modules/azure-service-name/
β”œβ”€β”€ main.tf              # Main resource definitions
β”œβ”€β”€ variables.tf         # Input variables
β”œβ”€β”€ outputs.tf          # Output values
β”œβ”€β”€ versions.tf         # Terraform and provider version constraints
β”œβ”€β”€ README.md           # Module documentation
└── examples/           # Usage examples
    β”œβ”€β”€ basic/
    β”œβ”€β”€ complete/
    └── advanced/

πŸ”’ Security Features

All modules implement Azure security best practices:

  • Encryption: Data encryption at rest and in transit by default
  • Network Security: Private endpoints and network restrictions
  • Identity: Managed identities where applicable
  • Monitoring: Diagnostic settings and logging enabled
  • Access Control: Least privilege access patterns
  • Compliance: Alignment with Azure Security Benchmark

🀝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

How to Contribute

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes following our module standards
  4. Add tests and documentation
  5. Submit a pull request

πŸ“š Documentation

πŸ†˜ Support

πŸ“„ License

This project is licensed under the Apache 2.0 License - see the LICENSE file for details.

🌟 Star History

Star History Chart

πŸ™ Acknowledgments

  • Inspired by the excellent terraform-aws-modules project
  • Thanks to all contributors who help make this project better
  • Special thanks to the Azure community for feedback and suggestions

Made with ❀️ by the Cloudgeni team and open-source community

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

3 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages