terraform

SKILL.md

Terraform Skill

Provides comprehensive Terraform infrastructure as code capabilities for the Golden Armada AI Agent Fleet Platform.

When to Use This Skill

Activate this skill when working with:

  • Infrastructure provisioning
  • Terraform modules and configurations
  • State management
  • Cloud resource definitions
  • Multi-environment deployments

Quick Reference

Common Commands

```bash

Initialize

terraform init terraform init -upgrade

Plan

terraform plan terraform plan -out=tfplan terraform plan -var="environment=prod"

Apply

terraform apply terraform apply tfplan terraform apply -auto-approve

Destroy

terraform destroy terraform destroy -target=aws_instance.example

State

terraform state list terraform state show terraform state mv terraform state rm

Workspace

terraform workspace list terraform workspace new dev terraform workspace select prod

Format/Validate

terraform fmt -recursive terraform validate ```

Project Structure

``` terraform/ ├── main.tf ├── variables.tf ├── outputs.tf ├── providers.tf ├── versions.tf ├── terraform.tfvars ├── environments/ │ ├── dev.tfvars │ └── prod.tfvars └── modules/ ├── networking/ ├── compute/ └── database/ ```

Provider Configuration

```hcl

versions.tf

terraform { required_version = ">= 1.0.0"

required_providers { aws = { source = "hashicorp/aws" version = "> 5.0" } kubernetes = { source = "hashicorp/kubernetes" version = "> 2.0" } }

backend "s3" { bucket = "golden-armada-terraform-state" key = "state/terraform.tfstate" region = "us-west-2" encrypt = true dynamodb_table = "terraform-locks" } }

providers.tf

provider "aws" { region = var.aws_region

default_tags { tags = { Project = "golden-armada" Environment = var.environment ManagedBy = "terraform" } } } ```

Variables

```hcl

variables.tf

variable "environment" { description = "Environment name" type = string validation { condition = contains(["dev", "staging", "prod"], var.environment) error_message = "Environment must be dev, staging, or prod." } }

variable "instance_count" { description = "Number of instances" type = number default = 2 }

variable "tags" { description = "Resource tags" type = map(string) default = {} }

terraform.tfvars

environment = "dev" instance_count = 2 ```

Module Example

```hcl

modules/eks-cluster/main.tf

resource "aws_eks_cluster" "main" { name = "${var.project}-${var.environment}" role_arn = aws_iam_role.cluster.arn version = var.kubernetes_version

vpc_config { subnet_ids = var.subnet_ids endpoint_private_access = true endpoint_public_access = var.public_access }

tags = var.tags }

modules/eks-cluster/variables.tf

variable "project" { type = string }

variable "environment" { type = string }

variable "kubernetes_version" { type = string default = "1.28" }

Usage

module "eks" { source = "./modules/eks-cluster"

project = "golden-armada" environment = var.environment subnet_ids = module.vpc.private_subnets kubernetes_version = "1.28" tags = local.tags } ```

Best Practices

  1. State Management: Use remote state with locking
  2. Modules: Create reusable modules for common patterns
  3. Workspaces: Separate environments using workspaces
  4. Variables: Use tfvars files per environment
  5. Outputs: Export important values for other modules
  6. Tagging: Apply consistent tags to all resources
Weekly Installs
17
GitHub Stars
6
First Seen
Jan 24, 2026
Installed on
opencode15
codex15
gemini-cli15
claude-code14
cursor14
antigravity13