Welcome to the Terraform Modules for Microsoft Fabric! This repository provides a curated collection of reusable Terraform modules designed to simplify and standardize the provisioning and management of Microsoft Fabric resources. Whether you’re a cloud architect, DevOps engineer, or IT administrator, this library aims to streamline your Infrastructure as Code (IaC) workflows and accelerate your Microsoft Fabric journey.
Our mission is to empower organizations and individuals to efficiently deploy and manage Microsoft Fabric resources using Terraform by providing a well-structured, open-source library of high-quality, reusable modules.
We believe that adopting Infrastructure as Code and open standards is crucial to achieving consistent, secure, and maintainable cloud infrastructure. By making these modules freely available, we hope to foster a community-driven ecosystem where everyone can benefit from shared best practices, contribute innovative solutions, and help mature the use of Terraform within the Microsoft Fabric ecosystem.
- Modular Terraform Code: Each directory within the modules/folder represents a standalone Terraform module designed to provision and manage a specific aspect of Microsoft Fabric infrastructure. These modules aim to be composable, well-documented, and easily integrated into new or existing Terraform configurations.
- Comprehensive Documentation: Every module includes detailed usage instructions, input/output variable definitions, and links to additional resources. The overarching documentation (found here in the README and in each module’s own README) ensures that both new users and seasoned practitioners can quickly understand and implement the modules.
- Testing and CI/CD Integrations: Automated testing and validation scripts ensure that modules maintain high quality and remain functional over time. Integration with popular CI/CD tools helps catch issues early, ensuring that contributed modules and updates continue to meet our standards.
- Browse the Modules: Explore the modules/directory to find a suitable module for your use case.
- Read the Documentation: Review each module’s README and consult the examples/ directory for guidance on usage and configuration.
- Integrate into Your Codebase: Incorporate the modules into your Terraform stack by referencing them as a source, adjusting input variables, and running terraform apply.
We warmly welcome contributions from the community! Your expertise and insights help keep this library robust, up-to-date, and relevant. To contribute:
- Open an Issue: If you discover a bug, require a new feature, or want to propose an enhancement, please open a GitHub Issue.
- Fork the Repository: Make changes in a dedicated branch of your forked repository.
- Write Clear Documentation & Tests: Ensure your code is thoroughly documented and includes test cases where applicable.
- Submit a Pull Request: Once your changes are complete, open a Pull Request (PR) for review. Include details on what was changed, why it’s important, and how to test it.
- Address Feedback: Our maintainers and community members will review your PR. Please be open to feedback and responsive to requested changes.
This project is licensed under the MIT License. You are free to use, modify, and distribute this software as permitted under the license terms. We encourage users to contribute back any improvements, bug fixes, or enhancements to benefit the wider community. By working together, we can build a reliable, production-ready set of Terraform modules for Microsoft Fabric resources that will help organizations of all sizes succeed in the cloud. Thank you for your interest, and happy building!
| Name | Group | TF resource exists? | Alternative TF module exists? |
|---|---|---|---|
| Connections | Core | No | No |
| Gateway | Core | No | No |
| Managed Private Endpoint (Workspace) | Core | No | No |
| OneLake Data Access Roles | Core | No | No |
| OneLake Shortcut | Core | No | No |
| Workspace | Core | fabric_workspace | Yes (incl role assignments) |
| Environment | Environment item | fabric_environment | No |
| Spark Compute Environment | Environment item | fabric_spark_environment_settings | No |
| Spark Libraries | Environment item | No | No |
| Eventhouse | Eventhouse item | fabric_eventhouse | No |
| Eventstream | Eventstream item | fabric_eventstream | No |
| KQL Dashboard | KQLDashboard item | No | No |
| KQL Database | KQLDatabase item | fabric_kql_database | No |
| KQL Queryset | KQLQueryset item | No | No |
| Lakehouse | Lakehouse item | fabric_lakehouse | No |
| Notebook | Notebook item | fabric_notebook | No |
| Report | Report item | fabric_report | No |
| Semantic Model | SemanticModel item | fabric_semantic_model | No |
| Spark Custom Pools? | Spark item | fabric_spark_custom_pool | No |
| Spark Workspace settings? | Spark item | fabric_spark_workspace_settings | No |
| Spark Job Definition | SparkJobDefinition item | fabric_spark_job_definition | No |