summaryrefslogtreecommitdiff
path: root/main.tf
blob: 5a898a01e373163f9aa60d4b1d6c690ea7d1f3d3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
terraform {
  required_providers {
    proxmox = {
      source = "telmate/proxmox"
      version = "3.0.2-rc04"
    }
  }
}

provider "proxmox" {
  pm_api_url = "https://192.168.1.45:8006/api2/json"
  pm_tls_insecure = true
  #pm_api_token_id = "terraform-prov@pve!terraform"
  #pm_api_token_secret = "64bd4ba4-f4c0-4029-9f16-5b61bca2da0d"
  pm_user = "terraform-prov@pve"
  pm_password = "terraform"
  pm_debug = true
}

resource "proxmox_lxc" "test" {
  target_node = "atlas"                 # your Proxmox node name
  hostname    = "web"
  ostemplate  = "local:vztmpl/alpine-3.21-default_20241217_amd64.tar.xz"

  unprivileged = true
  password     = "test1"

  cores   = 2
  memory  = 512
  swap    = 512

  # root disk
  rootfs {
    storage = "local-lvm"   # or your ZFS/LVM storage name
    size    = "4G"
  }

  # network
  network {
    name   = "eth0"
    bridge = "vmbr0"
    ip     = "dhcp"         # or "192.168.10.50/24"
    # gw   = "192.168.10.1" # needed if using static IP
  }

  # optional: inject your SSH key so you don’t use the password
  # ssh_public_keys = file("~/.ssh/id_rsa.pub")

  # quality-of-life
  start = true
  #tags  = "tf,lxc,web"
}