- Add vSphere resource pool management - Configure CPU and memory allocation controls - Implement tagging system for organization - Add comprehensive documentation
71 lines
2.0 KiB
Markdown
71 lines
2.0 KiB
Markdown
# Terraform vSphere Resource Groups Module
|
|
|
|
This Terraform module manages vSphere resource pools (resource groups) with CPU/memory allocation controls and integrated tagging for organization and management.
|
|
|
|
## Purpose
|
|
|
|
Creates and manages vSphere resource pools with configurable resource allocation policies, reservations, limits, and shares. Includes automated tagging for environment and resource group classification.
|
|
|
|
## What It Does
|
|
|
|
1. Creates resource pools under vSphere cluster
|
|
2. Configures CPU reservations, limits, and shares
|
|
3. Configures memory reservations, limits, and shares
|
|
4. Creates tag categories for Environment and ResourceGroupType
|
|
5. Applies tags to resource pools for organization
|
|
|
|
## Usage
|
|
|
|
```hcl
|
|
module "vsphere_resource_groups" {
|
|
source = "./terraform-vsphere-resourcegroups"
|
|
|
|
datacenter = "DC1"
|
|
cluster_name = "Cluster01"
|
|
environment = "prod"
|
|
|
|
role_id = var.vault_role_id
|
|
secret_id = var.vault_secret_id
|
|
|
|
resource_groups = {
|
|
kubernetes = {
|
|
name = "Kubernetes"
|
|
cpu_reservation = 4000
|
|
cpu_shares = "high"
|
|
memory_reservation = 8192
|
|
memory_shares = "high"
|
|
}
|
|
docker = {
|
|
name = "Docker"
|
|
cpu_shares = "normal"
|
|
memory_shares = "normal"
|
|
}
|
|
infra = {
|
|
name = "Infrastructure"
|
|
cpu_shares = "low"
|
|
memory_shares = "low"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
## Key Features
|
|
|
|
- **Resource Allocation**: CPU and memory reservations, limits, shares
|
|
- **Shares Mapping**: Automatic conversion of low/normal/high to vSphere values (500/1000/2000)
|
|
- **Tagging System**: Environment and resource group type tags
|
|
- **Flexible Configuration**: Optional parameters with sensible defaults
|
|
- **Expandable Resources**: Allow resources to grow beyond reservations
|
|
|
|
## Default Resource Groups
|
|
|
|
- **Kubernetes**: For Kubernetes infrastructure
|
|
- **Docker**: For Docker containers
|
|
- **Infra**: For infrastructure services
|
|
|
|
## Prerequisites
|
|
|
|
- VMware vSphere with compute cluster
|
|
- Vault with vSphere credentials
|
|
- Terraform >= 0.13
|