openboatmobile-ai/main.tf
Mermaid Man bd5e547482 migrate to OpenTofu with Terraform fallback
- Change required_version from >= 1.5.4 to >= 1.6.0 (OpenTofu baseline)
- Make Makefile use  variable: auto-detects tofu first, terraform fallback
- Override with: make TERRAFORM=terraform <target>
- Update managed tag from 'terraform' to 'tofu'
2026-06-04 17:44:21 +00:00

55 lines
No EOL
1.4 KiB
HCL

# OpenBoatmobile - Agent Deployment
# Provider-agnostic infrastructure for OpenClaw or Hermes agents
terraform {
required_version = ">= 1.6.0"
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 = "tofu"
component = var.agent_framework == "hermes" ? "hermes-agent" : "openclaw-gateway"
}
}