Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add fabric cap #236

Merged
merged 4 commits into from
Jun 2, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 23 additions & 21 deletions terraform/fabric/fabric-capacity/main.tf
Original file line number Diff line number Diff line change
@@ -1,22 +1,24 @@
resource "azapi_resource" "fabric_capacity" {
type = "Microsoft.Fabric/capacities@2022-07-01-preview"
name = "fab${var.basename}"
parent_id = var.resource_group_id
location = var.location
schema_validation_enabled = false

body = jsonencode({
properties = {
administration = {
members = [
var.admin_email
]
}
}
sku = {
name = var.sku,
tier = "Fabric"
}
})
tags = var.tags
resource "azapi_resource" "fab_capacity" {
type = "Microsoft.Fabric/capacities@2022-07-01-preview"
name = "fab${var.basename}"
parent_id = var.resource_group_id
location = var.location
schema_validation_enabled = false

body = jsonencode({
properties = {
administration = {
members = [
var.admin_email
]
}
}
sku = {
name = var.sku,
tier = "Fabric"
}
})
tags = var.tags

count = var.module_enabled ? 1 : 0
}
7 changes: 7 additions & 0 deletions terraform/fabric/fabric-capacity/outputs.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
output "id" {
value = (
length(azapi_resource.fab_capacity) > 0 ?
azapi_resource.fab_capacity[0].id : ""
)
description = "Resource identifier of the instance of Fabric Capacity."
}
12 changes: 6 additions & 6 deletions terraform/fabric/fabric-capacity/providers.tf
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
terraform {
required_providers {
azapi = {
source = "Azure/azapi"
}
}
terraform {
required_providers {
azapi = {
source = "Azure/azapi"
}
}
}
34 changes: 17 additions & 17 deletions terraform/fabric/fabric-capacity/test/fabric_capacity.tf
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
module "fabric_capacity" {
source = "../"
basename = random_string.postfix.result
resource_group_id = module.local_rg.id
location = var.location
sku = var.sku
admin_email = var.admin_email
tags = {}
}

# Modules dependencies

module "local_rg" {
source = "../../../resource-group"
basename = random_string.postfix.result
location = var.location
tags = local.tags
module "fabric_capacity" {
source = "../"
basename = random_string.postfix.result
resource_group_id = module.local_rg.id
location = var.location
sku = var.sku
admin_email = var.admin_email
tags = {}
}
# Modules dependencies
module "local_rg" {
source = "../../../resource-group"
basename = random_string.postfix.result
location = var.location
tags = local.tags
}
12 changes: 6 additions & 6 deletions terraform/fabric/fabric-capacity/test/locals.tf
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
locals {
tags = {
Project = "Azure/azure-data-labs-modules"
Module = "fabric-capacity"
Toolkit = "Terraform"
}
locals {
tags = {
Project = "Azure/azure-data-labs-modules"
Module = "fabric-capacity"
Toolkit = "Terraform"
}
}
3 changes: 3 additions & 0 deletions terraform/fabric/fabric-capacity/test/outputs.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
output "id" {
value = module.fabric_capacity.id
}
48 changes: 24 additions & 24 deletions terraform/fabric/fabric-capacity/test/providers.tf
Original file line number Diff line number Diff line change
@@ -1,25 +1,25 @@
terraform {
backend "azurerm" {
resource_group_name = "rg-adl-terraform-state"
storage_account_name = "stadlterraformstate"
container_name = "default"
key = "fabriccapacity.terraform.tfstate"
}

required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "= 3.53.0"
}
azapi = {
source = "azure/azapi"
}
}
}

provider "azurerm" {
features {}
}

provider "azapi" {
terraform {
# backend "azurerm" {
# resource_group_name = "rg-adl-terraform-state"
# storage_account_name = "stadlterraformstate"
# container_name = "default"
# key = "fabriccapacity.terraform.tfstate"
# }
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "= 3.53.0"
}
azapi = {
source = "azure/azapi"
}
}
}
provider "azurerm" {
features {}
}
provider "azapi" {
}
38 changes: 19 additions & 19 deletions terraform/fabric/fabric-capacity/test/variables.tf
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
resource "random_string" "postfix" {
length = 8
special = false
upper = false
}

variable "location" {
type = string
default = "North Europe"
}

variable "sku" {
type = string
default = "F2"
}

variable "admin_email" {
type = string
default = "[email protected]"
resource "random_string" "postfix" {
length = 8
special = false
upper = false
}
variable "location" {
type = string
default = "North Europe"
}
variable "sku" {
type = string
default = "F2"
}
variable "admin_email" {
type = string
default = "[email protected]"
}
74 changes: 40 additions & 34 deletions terraform/fabric/fabric-capacity/variables.tf
Original file line number Diff line number Diff line change
@@ -1,35 +1,41 @@
variable "basename" {
type = string
description = "Basename of the module."
validation {
condition = can(regex("^[-0-9a-zA-Z]{1,21}$", var.basename)) && can(regex("[0-9a-zA-Z]+$", var.basename))
error_message = "The name must be between 1 and 21 characters, can contain only letters, numbers, and hyphens. Must end with a letter or number. Cannot contain consecutive hyphens."
}
}

variable "resource_group_id" {
type = string
description = "Resource group id."
}

variable "location" {
type = string
description = "Location of the resource group."
}

variable "tags" {
type = map(string)
default = {}
description = "A mapping of tags which should be assigned to the deployed resource."
}

variable "sku" {
type = string
default = "F2"
description = ""
}

variable "admin_email" {
type = string
description = ""
variable "basename" {
type = string
description = "Basename of the module."
validation {
condition = can(regex("^[-0-9a-zA-Z]{1,21}$", var.basename)) && can(regex("[0-9a-zA-Z]+$", var.basename))
error_message = "The name must be between 1 and 21 characters, can contain only letters, numbers, and hyphens. Must end with a letter or number. Cannot contain consecutive hyphens."
}
}

variable "resource_group_id" {
type = string
description = "Resource group id."
}

variable "location" {
type = string
description = "Location of the resource group."
}

variable "tags" {
type = map(string)
default = {}
description = "A mapping of tags which should be assigned to the deployed resource."
}

variable "module_enabled" {
type = bool
description = "Variable to enable or disable the module."
default = true
}

variable "sku" {
type = string
default = "F2"
description = "SKU name"
}

variable "admin_email" {
type = string
description = "Fabric administrator email"
}