- 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'
55 lines
No EOL
1.4 KiB
HCL
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"
|
|
}
|
|
} |