mirror of
				https://github.com/nmasur/dotfiles
				synced 2025-11-04 11:43:16 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			79 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			HCL
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			HCL
		
	
	
	
	
	
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
 | 
						|
}
 |