profit 77655c298c Initial commit: Agent Governance System Phase 8
Phase 8 Production Hardening with complete governance infrastructure:

- Vault integration with tiered policies (T0-T4)
- DragonflyDB state management
- SQLite audit ledger
- Pipeline DSL and templates
- Promotion/revocation engine
- Checkpoint system for session persistence
- Health manager and circuit breaker for fault tolerance
- GitHub/Slack integrations
- Architectural test pipeline with bug watcher, suggestion engine, council review
- Multi-agent chaos testing framework

Test Results:
- Governance tests: 68/68 passing
- E2E workflow: 16/16 passing
- Phase 2 Vault: 14/14 passing
- Integration tests: 27/27 passing

Coverage: 57.6% average across 12 phases

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 22:07:06 -05:00

151 lines
3.0 KiB
HCL

# Terraform Configuration: Docker Service Deployment
# ===================================================
# This configuration manages Docker containers on localhost.
# Designed for Tier 1+ agents to deploy services.
#
# For Tier 0 agents: Plan only (terraform plan)
#
# Usage:
# terraform init
# terraform plan -var="service_name=myapp" -var="image=nginx:alpine"
# terraform apply # Tier 1+ only
terraform {
required_providers {
docker = {
source = "kreuzwerker/docker"
version = "~> 3.0"
}
}
}
provider "docker" {
host = "unix:///var/run/docker.sock"
}
# Variables
variable "service_name" {
description = "Name of the service/container"
type = string
default = "tf-managed-service"
}
variable "image" {
description = "Docker image to deploy"
type = string
default = "nginx:alpine"
}
variable "internal_port" {
description = "Container internal port"
type = number
default = 80
}
variable "external_port" {
description = "Host external port"
type = number
default = 8090
}
variable "network_name" {
description = "Docker network to attach"
type = string
default = "spark-net"
}
variable "environment" {
description = "Environment variables for the container"
type = map(string)
default = {}
}
variable "labels" {
description = "Labels to apply to the container"
type = map(string)
default = {
"managed-by" = "terraform"
"agent-tier" = "1"
}
}
# Data source to reference existing network
data "docker_network" "main" {
name = var.network_name
}
# Pull the image
resource "docker_image" "service" {
name = var.image
keep_locally = true
}
# Create the container
resource "docker_container" "service" {
name = var.service_name
image = docker_image.service.image_id
ports {
internal = var.internal_port
external = var.external_port
}
networks_advanced {
name = data.docker_network.main.name
}
restart = "unless-stopped"
dynamic "env" {
for_each = var.environment
content {
key = env.key
value = env.value
}
}
labels {
label = "managed-by"
value = "terraform"
}
labels {
label = "service-name"
value = var.service_name
}
# Health check
healthcheck {
test = ["CMD", "wget", "-q", "--spider", "http://localhost:${var.internal_port}/"]
interval = "30s"
timeout = "10s"
retries = 3
start_period = "10s"
}
lifecycle {
create_before_destroy = true
}
}
# Outputs
output "container_id" {
description = "The ID of the deployed container"
value = docker_container.service.id
}
output "container_name" {
description = "The name of the deployed container"
value = docker_container.service.name
}
output "service_url" {
description = "URL to access the service"
value = "http://localhost:${var.external_port}"
}
output "network" {
description = "Network the container is attached to"
value = var.network_name
}