br4zz4:infra

Manages Kubernetes manifests and Terraform infrastructure for project environments.

Updated May 25, 2025
One-click install
npx skills add https://github.com/oporpino/commons --skill br4zz4-infra-oporpino
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: br4zz4:infra
Source: https://github.com/oporpino/commons/tree/main/ai/shared/skills/br4zz4%3Ainfra
Command: npx skills add https://github.com/oporpino/commons --skill br4zz4-infra-oporpino

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Teams need consistent, repeatable infrastructure across staging and production environments without leaking secrets, misplacing resources in the wrong VPC, or breaking repo isolation between projects and shared infrastructure. ## Core Features & Use Cases - Kustomize-based Kubernetes overlays: Base manifests in .infra/k8s/base/specs/ with per-environment overlays patching ingress hosts, replica counts, and image tags set by CI. - Terraform with S3 backend and workspaces: State stored in br4zz4-terraform-states, with staging and production workspaces driving namespaces (<app>--<env>), domains, and resource naming. - Secrets via ward vaults and SOPS: Per-project ward vaults at .ward/, central org vaults in bootstrap and commons repos, and SOPS-encrypted secrets/<env>.enc.yml files loaded by the br4zz4 wrapper. - Use Case: When adding a new project, you scaffold .infra/terraform/ with the two-provider AWS pattern (shared account for EKS auth, project account for resources), bootstrap a TerraformRole, and run make terraform.staging.apply to create the namespace, DNS record, secrets, and workloads from scratch. ## Quick Start Ask the assistant to create the Terraform and Kustomize configuration for a new project's staging environment following the infra conventions.

Frequently Asked Questions about br4zz4:infra

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I structure Terraform for staging and production environments?▼

Use one Terraform configuration with two workspaces, staging and production, sharing the same code but separate state in the S3 backend. The workspace drives the namespace (`<app>--<env>`), domain, and resource names via `${local.environment}`.

How do I manage Kubernetes secrets with ward instead of SOPS?▼

Store secrets in a per-project ward vault at `.ward/`, organized by app, infra level, and environment. CI reads them via `ward exec <path> -- <command>`, and DATABASE_URL is never stored since Terraform generates it from RDS outputs.

Why does my Terraform apply fail with Unauthorized on Kubernetes resources?▼

The EKS cluster token minted at the start of the run expires during long applies, such as RDS restores taking 6-12 minutes. Re-run the apply or target only the Kubernetes resource with a fresh token, or split slow database work and Kubernetes jobs into separate applies.

Can application databases live in the shared VPC with the EKS cluster?▼

No. App resources belong in the project's own account VPC, peered to the shared VPC, and traffic flows over private IPs through the peering connection. Placing app databases in the shared VPC pollutes the platform network and removes environment isolation.

Why do routes keep disappearing from my AWS route table after apply?▼

Mixing inline `route {}` blocks in `aws_route_table` with standalone `aws_route` resources causes the table to delete any route not declared inline on every apply. Declare all routes as standalone `aws_route` resources and import existing inline routes before applying.