This commit is contained in:
2025-05-26 06:05:33 -05:00
parent 6257d7a1d4
commit dcc3ae6aa3

View File

@@ -1,115 +1,115 @@
apiVersion: opentofu.upbound.io/v1beta1 #apiVersion: opentofu.upbound.io/v1beta1
kind: Workspace #kind: Workspace
metadata: #metadata:
name: proxmoxbackupserver # name: proxmoxbackupserver
annotations: # annotations:
crossplane.io/external-name: proxmoxbackupserver # crossplane.io/external-name: proxmoxbackupserver
spec: #spec:
forProvider: # forProvider:
source: Inline # source: Inline
env: # env:
- name: TF_VAR_pm_api_url # - name: TF_VAR_pm_api_url
secretKeyRef: # secretKeyRef:
namespace: crossplane # namespace: crossplane
name: proxmox-secret # name: proxmox-secret
key: pm_api_url # key: pm_api_url
- name: TF_VAR_pm_password # - name: TF_VAR_pm_password
secretKeyRef: # secretKeyRef:
namespace: crossplane # namespace: crossplane
name: proxmox-secret # name: proxmox-secret
key: pm_password # key: pm_password
- name: TF_VAR_pm_user # - name: TF_VAR_pm_user
secretKeyRef: # secretKeyRef:
namespace: crossplane # namespace: crossplane
name: proxmox-secret # name: proxmox-secret
key: pm_user # key: pm_user
module: | # module: |
#
provider "proxmox" { # provider "proxmox" {
pm_parallel = 1 # pm_parallel = 1
pm_tls_insecure = true # pm_tls_insecure = true
pm_api_url = var.pm_api_url # pm_api_url = var.pm_api_url
pm_user = var.pm_user # pm_user = var.pm_user
pm_password = var.pm_password # pm_password = var.pm_password
pm_debug = false # pm_debug = false
} # }
#
variable "pm_api_url" { # variable "pm_api_url" {
description = "API URL to Proxmox provider" # description = "API URL to Proxmox provider"
type = string # type = string
} # }
#
variable "pm_password" { # variable "pm_password" {
description = "Passowrd to Proxmox provider" # description = "Passowrd to Proxmox provider"
type = string # type = string
} # }
#
variable "pm_user" { # variable "pm_user" {
description = "Username to Proxmox provider" # description = "Username to Proxmox provider"
type = string # type = string
} # }
#
locals { # locals {
format = "raw" # format = "raw"
dnsserver = "192.168.10.1" # dnsserver = "192.168.10.1"
vlan = 21 # vlan = 21
proxmoxBackup = { # proxmoxBackup = {
tags = "Proxmox" # tags = "Proxmox"
count = 1 # count = 1
name = ["Proxmox-BackupServer"] # name = ["Proxmox-BackupServer"]
cores = 2 # cores = 2
memory = "4096" # memory = "4096"
drive = 1024 # drive = 1024
storage = "domains" # storage = "domains"
node = ["mothership"] # node = ["mothership"]
ip = ["250"] # ip = ["250"]
} # }
} # }
#
resource "proxmox_vm_qemu" "proxmoxBackup" { # resource "proxmox_vm_qemu" "proxmoxBackup" {
count = local.proxmoxBackup.count # count = local.proxmoxBackup.count
ciuser = "administrator" # ciuser = "administrator"
vmid = "${local.vlan}${local.proxmoxBackup.ip[count.index]}" # vmid = "${local.vlan}${local.proxmoxBackup.ip[count.index]}"
name = local.proxmoxBackup.name[count.index] # name = local.proxmoxBackup.name[count.index]
target_node = local.proxmoxBackup.node[count.index] # target_node = local.proxmoxBackup.node[count.index]
tags = local.proxmoxBackup.tags # tags = local.proxmoxBackup.tags
qemu_os = "l26" # qemu_os = "l26"
os_type = "cloud-init" # os_type = "cloud-init"
agent = 1 # agent = 1
cores = local.proxmoxBackup.cores # cores = local.proxmoxBackup.cores
sockets = 1 # sockets = 1
cpu_type = "host" # cpu_type = "host"
memory = local.proxmoxBackup.memory # memory = local.proxmoxBackup.memory
scsihw = "virtio-scsi-pci" # scsihw = "virtio-scsi-pci"
#bootdisk = "scsi0" # #bootdisk = "scsi0"
boot = "order=virtio0" # boot = "order=virtio0"
onboot = true # onboot = true
vga { # vga {
type = "serial0" # type = "serial0"
} # }
serial { # serial {
id = 0 # id = 0
type = "socket" # type = "socket"
} # }
disks { # disks {
virtio { # virtio {
virtio0 { # virtio0 {
disk { # disk {
size = local.proxmoxBackup.drive # size = local.proxmoxBackup.drive
format = local.format # format = local.format
storage = local.proxmoxBackup.storage # storage = local.proxmoxBackup.storage
} # }
} # }
} # }
} # }
network { # network {
id = 0 # id = 0
model = "virtio" # model = "virtio"
bridge = "vmbr0" # bridge = "vmbr0"
tag = local.vlan # tag = local.vlan
} # }
} # }
#
writeConnectionSecretToRef: # writeConnectionSecretToRef:
namespace: crossplane # namespace: crossplane
name: opentofu-workspace-example-inline # name: opentofu-workspace-example-inline