From 946fddeeeb6de1e6868622b47542a65f9302c0a5 Mon Sep 17 00:00:00 2001 From: Matt Reeves Date: Tue, 27 Aug 2024 17:08:02 -0400 Subject: [PATCH] import NAS test, add dozzle --- docker/arm/docker-compose.yml | 7 ++ terraform/NAS.tf | 91 ++++++++++++++++++++++++++ terraform/runner.tf | 119 ++++++++++++++++++---------------- 3 files changed, 160 insertions(+), 57 deletions(-) create mode 100644 terraform/NAS.tf diff --git a/docker/arm/docker-compose.yml b/docker/arm/docker-compose.yml index 7dd9536..38e6a65 100644 --- a/docker/arm/docker-compose.yml +++ b/docker/arm/docker-compose.yml @@ -186,6 +186,13 @@ services: - "1234:3000" networks: - gitea_main + + dozzle: + image: amir20/dozzle@sha256:83aab3fa5d8b863e5b0083e5a5f1d147af87d60c697f918d3c07e9179895558b + volumes: + - /var/run/docker.sock:/var/run/docker.sock + ports: + - 8089:8080 networks: gitea_main: diff --git a/terraform/NAS.tf b/terraform/NAS.tf new file mode 100644 index 0000000..f84266f --- /dev/null +++ b/terraform/NAS.tf @@ -0,0 +1,91 @@ +resource "proxmox_virtual_environment_vm" "TrueNAS" { + + node_name = "prox" + vm_id = 100 + name = "TrueNAS" + machine = "q35" + + # VM General Settings + tags = [ + "debian", + "infrastructure", + ] + + # CPU Settings + cpu { + cores = 6 + type = "qemu64" + sockets = 1 + units = 1024 + architecture = "x86_64" + } + + # Memory Settings + memory { + dedicated = 8192 + } + + # Network Settings + network_device { + bridge = "vmbr0" + model = "virtio" + firewall = true + } + + # Operating System Settings + operating_system { + type = "l26" + } + + # VGA Settings + vga { + type = "std" + memory = 16 + } + + # Startup Settings + startup { + order = 1 + down_delay = -1 + up_delay = -1 + } + + # Additional Settings + scsi_hardware = "virtio-scsi-pci" + keyboard_layout = "en-us" + on_boot = true + migrate = false + stop_on_destroy = false + reboot = false + + # Timeout Settings + timeout_clone = 1800 + timeout_create = 1800 + timeout_migrate = 1800 + timeout_reboot = 1800 + timeout_shutdown_vm = 1800 + timeout_start_vm = 1800 + timeout_stop_vm = 300 + + lifecycle { + ignore_changes = [ + scsi_hardware, + keyboard_layout, + on_boot, + migrate, + stop_on_destroy, + reboot, + vga, + cpu, + timeout_clone, + timeout_create, + timeout_migrate, + timeout_move_disk, + timeout_reboot, + timeout_shutdown_vm, + timeout_start_vm, + timeout_stop_vm, + ] + } + +} diff --git a/terraform/runner.tf b/terraform/runner.tf index d3a8646..9368c65 100644 --- a/terraform/runner.tf +++ b/terraform/runner.tf @@ -1,65 +1,70 @@ resource "proxmox_virtual_environment_vm" "Runner" { - # VM General Settings - node_name = "prox" - vm_id = 952 - name = "Runner" - description = "Forgejo Runner for iac" - tags = ["tofu", "ubuntu-22", "iac-repo", "infrastructure"] + # VM General Settings + node_name = "prox" + vm_id = 952 + name = "Runner" + description = "Forgejo Runner for iac" + tags = ["tofu", "ubuntu-22", "iac-repo", "infrastructure"] - agent { - enabled = true # read 'Qemu guest agent' section, change to true only when ready + agent { + enabled = true + } + + clone { + vm_id = 8100 + } + + # VM CPU Settings + cpu { + cores = 2 + type = "host" + architecture = "x86_64" + flags = [] + } + + # VM Memory Settings + memory { + dedicated = 2048 + } + + # VM Network Settings + network_device { + bridge = "vmbr0" + model = "virtio" + } + + # VM Disk Settings + disk { + datastore_id = "Fast2Tb" + size = 40 + interface = "scsi0" + file_format = "raw" + path_in_datastore = "vm-952-disk-0" + } + + vga { + type = "serial0" + } + + initialization { + ip_config { + ipv4 { + address = "dhcp" + } } - clone { - vm_id = 8100 - } - - # VM CPU Settings - cpu { - cores = 2 - type = "host" - architecture = "x86_64" - } - - # VM Memory Settings - memory { - dedicated = 2048 - } + user_data_file_id = "Slow4tb:snippets/cloud-config.yaml" + } - # VM Network Settings - network_device { - bridge = "vmbr0" - } - - # VM Disk Settings - disk { - datastore_id = "Fast2Tb" - size = 40 - interface = "scsi0" - } - - vga { - type = "serial0" - } - - initialization { - ip_config { - ipv4 { - address = "dhcp" - } - } - - user_account {} - } - - lifecycle { - ignore_changes = [ - initialization[0].user_account[0].keys, - initialization[0].user_account[0].password, - initialization[0].user_account[0].username, - initialization[0].user_data_file_id - ] - } + lifecycle { + ignore_changes = [ + initialization[0].user_account, + initialization[0].user_data_file_id, + cpu[0].flags, + disk[0].file_format, + disk[0].path_in_datastore, + ] + } }