terraform { backend "s3" { bucket = "noahmasur-terraform" key = "arrow.tfstate" region = "auto" skip_credentials_validation = true skip_metadata_api_check = true skip_region_validation = true skip_requesting_account_id = true skip_s3_checksum = true use_path_style = true /* ENVIRONMENT VARIABLES --------------------- AWS_ACCESS_KEY_ID - R2 token AWS_SECRET_ACCESS_KEY - R2 secret AWS_ENDPOINT_URL_S3 - R2 location: https://ACCOUNT_ID.r2.cloudflarestorage.com */ } required_version = ">= 1.0.0" required_providers { aws = { source = "hashicorp/aws" version = "5.42.0" } vultr = { source = "vultr/vultr" version = "2.19.0" } } } variable "vultr_api_key" { type = string description = "API key for Vultr management" sensitive = true } # https://api.vultr.com/v2/plans variable "vultr_plan" { type = string description = "Size of instance to launch" default = "vc2-1c-2gb" # 55 GB SSD ($10/mo) } provider "aws" { region = "auto" skip_credentials_validation = true skip_metadata_api_check = true skip_region_validation = true skip_requesting_account_id = true } provider "vultr" { api_key = var.vultr_api_key } resource "vultr_iso_private" "image" { # url = "https://${var.cloudflare_account_id}.r2.cloudflarestorage.com/${data.aws_s3_bucket.images.id}/${aws_s3_object.image.key}" url = "https://arrow-images.masu.rs/arrow.iso" } resource "vultr_instance" "arrow" { plan = var.vultr_plan region = "ewr" iso_id = vultr_iso_private.image.id label = "arrow" tags = ["arrow"] enable_ipv6 = false disable_public_ipv4 = false backups = "disabled" ddos_protection = false activation_email = false } output "host_ip" { value = vultr_instance.arrow.main_ip }