125 lines
2.1 KiB
HCL
125 lines
2.1 KiB
HCL
terraform {
|
|
required_providers {
|
|
proxmox = {
|
|
source = "Telmate/proxmox"
|
|
version = "3.0.1-rc4"
|
|
}
|
|
|
|
bitwarden = {
|
|
source = "maxlaverse/bitwarden"
|
|
version = "~> 0.1.0"
|
|
}
|
|
}
|
|
backend "pg" {
|
|
conn_str = "postgres://${var.tfusername}:${var.tfpassword}@${var.tfurl}"
|
|
}
|
|
encryption {
|
|
key_provider "pbkdf2" "mykey" {
|
|
passphrase = var.passphrase
|
|
key_length = 32
|
|
salt_length = 16
|
|
hash_function = "sha256"
|
|
}
|
|
method "aes_gcm" "secure_method" {
|
|
keys = key_provider.pbkdf2.mykey
|
|
}
|
|
state {
|
|
method = method.aes_gcm.secure_method
|
|
enforced = true
|
|
}
|
|
}
|
|
}
|
|
|
|
variable "teams" {
|
|
type = string
|
|
sensitive = true
|
|
}
|
|
|
|
variable "ci_user" {
|
|
type = string
|
|
sensitive = true
|
|
}
|
|
|
|
variable "ci_password" {
|
|
type = string
|
|
sensitive = true
|
|
}
|
|
|
|
variable "lxc_template" {
|
|
type = string
|
|
}
|
|
|
|
variable "proxmox_api_url" {
|
|
type = string
|
|
sensitive = true
|
|
}
|
|
|
|
variable "proxmox_api_token_id" {
|
|
type = string
|
|
sensitive = true
|
|
}
|
|
|
|
variable "proxmox_api_token_secret" {
|
|
type = string
|
|
sensitive = true
|
|
}
|
|
|
|
variable "ssh_key" {
|
|
type = string
|
|
sensitive = true
|
|
}
|
|
|
|
variable "passphrase" {
|
|
type = string
|
|
sensitive = true
|
|
}
|
|
|
|
variable "tfusername" {
|
|
type = string
|
|
sensitive = true
|
|
}
|
|
|
|
variable "tfpassword" {
|
|
type = string
|
|
sensitive = true
|
|
}
|
|
|
|
variable "tfurl" {
|
|
type = string
|
|
sensitive = true
|
|
}
|
|
|
|
variable "client_id" {
|
|
description = "Client ID for Bitwarden"
|
|
type = string
|
|
sensitive = true
|
|
|
|
}
|
|
|
|
variable "client_secret" {
|
|
description = "Client Secret for Bitwarden"
|
|
type = string
|
|
sensitive = true
|
|
|
|
}
|
|
|
|
variable "master_password" {
|
|
description = "Client Master Password for Bitwarden"
|
|
type = string
|
|
sensitive = true
|
|
|
|
}
|
|
|
|
provider "proxmox" {
|
|
pm_api_url = var.proxmox_api_url
|
|
pm_api_token_id = var.proxmox_api_token_id
|
|
pm_api_token_secret = var.proxmox_api_token_secret
|
|
pm_timeout = 3600
|
|
pm_parallel = 2 # Fix VM HDD lock timeout
|
|
# Optional: Skip TLS Verification
|
|
# pm_tls_insecure = true
|
|
}
|
|
|
|
|
|
|