用途:为 DigitalOcean 编写、审查和调试 Terraform/OpenTofu 配置,基于官方 digitalocean/digitalocean 提供商 v2.99.1 文档(逐字收录于 references/provider-docs/)。核心原则是不要凭记忆写 digitalocean_* HCL,先确认参数再动手。
主要能力:提供脚本 scripts/dodocs.py 查询资源与数据源,例如 python3 scripts/dodocs.py list database 列出匹配项,args droplet 查看参数,example loadbalancer 看示例,import database_db 看导入语法,search vpc_uuid 反查参数,args kubernetes_cluster --kind data 指定数据源。名称可带或不带 digitalocean_ 前缀,猜错会提示近似项。参考文件包括 gotchas.md(跨资源陷阱)、patterns.md(多资源组合模式)、resource-index.md(131 个条目按子类分组)、deprecations.md(九个废弃参数)以及逐字上游文档。
使用方式:提供商配置示例中 required_providers 指定 source = "digitalocean/digitalocean"、version = "~> 2.99",provider 块用 token = var.do_token 或环境变量 DIGITALOCEAN_TOKEN。Spaces 资源需 S3 风格密钥(spaces_access_id/spaces_secret_key 或 SPACES_ACCESS_KEY_ID/SPACES_SECRET_ACCESS_KEY),否则仅 Spaces 失败。其他参数有 requests_per_second、http_retry_max、api_endpoint、spaces_endpoint。验证流程为 terraform fmt、terraform validate、terraform plan;validate 不访问 API,无法确认区域是否支持某规格。
适用场景:新建配置、审查或调试既有配置、排查 plan 不收敛、意外销毁重建、部分资源认证失败等。
限制:文档版本为 v2.99.1(2026-08-06 发布),若用户固定其他主版本或更新次版本,参数可能不同,需查上游仓库或注册表。token 拥有完整账户权限,应放环境变量或密钥管理器,不得提交或设为默认值。常见陷阱包括:卷、保留 IP/IPv6 只能以一种方式挂载;floating IP 已弃用改用 reserved IP;ssh_keys 创建后不可改;DOKS 集群与其 Kubernetes 资源应分两次 apply;数据库 *_config 销毁时不重置远端设置;托管 Redis 已于 2025-06-30 停用,新项目用 Valkey;certificate_id 永不收敛,应按 certificate_name 挂载;Spaces 桶 force_destroy 默认 false;项目使用 URN 而非 ID;单数数据源在零或多匹配时报错。