Patrick de Ruiter 4ce4ee9b70
Some checks failed
Code Quality & Security Scan / Tfsec Security Scan (push) Successful in 28s
Code Quality & Security Scan / TFLint (push) Successful in 17s
Code Quality & Security Scan / Checkov Security Scan (push) Successful in 36s
Code Quality & Security Scan / SonarQube Trigger (push) Successful in 38s
Code Quality & Security Scan / Terraform Init (push) Failing after 30s
Add Terraform init step with secure MinIO backend
- Removed hardcoded MinIO credentials from backend.tf
- Added terraform-init job after SonarQube step
- Uses organization secrets for MinIO credentials:
  - MINIO_ACCESS_KEY
  - MINIO_SECRET_KEY
- Credentials passed via AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY env vars
- Initializes Terraform with S3-compatible MinIO backend
2025-11-01 23:59:01 +01:00
2025-11-01 19:45:34 +01:00
2025-11-01 23:02:03 +01:00
2025-11-01 23:02:03 +01:00
2025-11-01 23:02:03 +01:00

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

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
Description
Terraform module for managing vSphere resource pools (resource groups) with CPU/memory resource allocation controls and tagging
Readme 127 KiB
Languages
HCL 100%