Some checks failed
Code Quality & Security Scan / TFLint (push) Successful in 20s
Code Quality & Security Scan / Terraform Destroy (push) Has been skipped
Code Quality & Security Scan / Tfsec Security Scan (push) Successful in 25s
Code Quality & Security Scan / Checkov Security Scan (push) Successful in 37s
Code Quality & Security Scan / Terraform Tests (push) Failing after 24s
Code Quality & Security Scan / SonarQube Trigger (push) Has been skipped
Code Quality & Security Scan / Terraform Init (push) Has been skipped
Code Quality & Security Scan / Terraform Apply (push) Has been skipped
64 lines
1.6 KiB
HCL
64 lines
1.6 KiB
HCL
locals {
|
|
shares_mapping = {
|
|
"low" = 500
|
|
"normal" = 1000
|
|
"high" = 2000
|
|
}
|
|
}
|
|
|
|
resource "vsphere_resource_pool" "resource_groups" {
|
|
for_each = var.resource_groups
|
|
|
|
name = each.value.name
|
|
parent_resource_pool_id = data.vsphere_compute_cluster.cluster.resource_pool_id
|
|
|
|
cpu_reservation = each.value.cpu_reservation
|
|
cpu_expandable = each.value.cpu_expandable
|
|
cpu_limit = each.value.cpu_limit
|
|
cpu_shares = lookup(local.shares_mapping, each.value.cpu_shares, 1000)
|
|
|
|
memory_reservation = each.value.memory_reservation
|
|
memory_expandable = each.value.memory_expandable
|
|
memory_limit = each.value.memory_limit
|
|
memory_shares = lookup(local.shares_mapping, each.value.memory_shares, 1000)
|
|
|
|
tags = [
|
|
vsphere_tag.environment.id,
|
|
vsphere_tag.resource_group[each.key].id
|
|
]
|
|
}
|
|
|
|
resource "vsphere_tag_category" "environment" {
|
|
name = "Environment"
|
|
description = "Environment category for resource groups"
|
|
cardinality = "SINGLE"
|
|
|
|
associable_types = [
|
|
"ResourcePool",
|
|
]
|
|
}
|
|
|
|
resource "vsphere_tag" "environment" {
|
|
name = var.environment
|
|
category_id = vsphere_tag_category.environment.id
|
|
description = "Environment tag for ${var.environment}"
|
|
}
|
|
|
|
resource "vsphere_tag_category" "resource_group_type" {
|
|
name = "ResourceGroupType"
|
|
description = "Resource group type category"
|
|
cardinality = "SINGLE"
|
|
|
|
associable_types = [
|
|
"ResourcePool",
|
|
]
|
|
}
|
|
|
|
resource "vsphere_tag" "resource_group" {
|
|
for_each = var.resource_groups
|
|
|
|
name = each.key
|
|
category_id = vsphere_tag_category.resource_group_type.id
|
|
description = "Resource group tag for ${each.value.name}"
|
|
}
|