openboatmobile-ai/main.tf
Mermaid Man ea73745147 refactor: restructure into hermes/ and openclaw/ directories
- Split cloudinit.tf into cloudinit-hermes.tf and cloudinit-openclaw.tf
- Split variables.tf into variables-common.tf, variables-hermes.tf, variables-openclaw.tf
- Move templates into hermes/templates/ and openclaw/templates/
- Move models/ into openclaw/models/
- Move hermes-openclaw.json to openclaw/openclaw-reference.json
- Move hermes docs to hermes/docs/
- OpenClaw cloudinit now uses variables instead of hardcoded values
- All 48 variable references verified against definitions
2026-04-24 19:45:03 +00:00

58 lines
No EOL
1.6 KiB
HCL

# OpenBoatmobile - Agent Deployment
# Provider-agnostic infrastructure for OpenClaw or Hermes agents
terraform {
required_version = ">= 1.5.4"
required_providers {
digitalocean = {
source = "digitalocean/digitalocean"
version = "~> 2.0"
}
hcloud = {
source = "hetznercloud/hcloud"
version = "~> 1.0"
}
random = {
source = "hashicorp/random"
version = "~> 3.0"
}
cloudinit = {
source = "hashicorp/cloudinit"
version = "~> 2.0"
}
}
}
# Provider configuration - selected by var.cloud_provider
# Secrets (API tokens) are set via environment variables:
# TF_VAR_do_token or TF_VAR_hcloud_token
provider "digitalocean" {
token = var.do_token
}
provider "hcloud" {
token = var.hcloud_token
}
# Locals for provider selection and framework-specific defaults
locals {
is_digitalocean = var.cloud_provider == "digitalocean"
is_hetzner = var.cloud_provider == "hetzner"
# Framework-specific admin user defaults
admin_user_framework_default = var.agent_framework == "hermes" ? "hermes" : "openclaw"
# Use framework default if admin_user not explicitly set
effective_admin_user = var.admin_user != "" ? var.admin_user : local.admin_user_framework_default
# Common tags/labels for resource tracking
common_tags = {
project = var.project_name
managed = "terraform"
component = var.agent_framework == "hermes" ? "hermes-agent" : "openclaw-gateway"
}
# Select userdata based on framework
userdata = var.agent_framework == "hermes" ? data.cloudinit_config.hermes[0].rendered : data.cloudinit_config.openclaw[0].rendered
}