diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f6a63f0..e8d7c0e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -16,14 +16,29 @@ format: WORKDIR: $CI_PROJECT_DIR/terraform allow_failure: false extends: .terraform_fmt - #rules: - # - if: $CI_PIPELINE_SOURCE == "merge_request_event" - # changes: - # compare_to: refs/heads/main - # paths: - # - 'terraform/*' - # when: always - # - when: never + rules: + - if: $CI_PIPELINE_SOURCE == "merge_request_event" + changes: + compare_to: refs/heads/main + paths: + - 'terraform/*' + when: always + - when: never + +validate: + stage: lint + variables: + WORKDIR: $CI_PROJECT_DIR/terraform + allow_failure: false + extends: .terraform_validate + rules: + - if: $CI_PIPELINE_SOURCE == "merge_request_event" + changes: + compare_to: refs/heads/main + paths: + - 'terraform/*' + when: always + - when: never plan: stage: lint @@ -32,6 +47,7 @@ plan: ARGUMENTS: -var=pm_password=$pm_password -var=pm_api_url=$pm_api_url -var-file=terraform.tfvars allow_failure: false extends: .terraform_plan + needs: ["validate","format"] rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" changes: diff --git a/terraform/defaults.tf b/terraform/defaults.tf index 8ae7df3..fc6283b 100644 --- a/terraform/defaults.tf +++ b/terraform/defaults.tf @@ -9,10 +9,10 @@ terraform { } provider "proxmox" { - pm_parallel = 3 - pm_tls_insecure = true - pm_api_url = var.pm_api_url - pm_user = var.pm_user - pm_password = var.pm_password - pm_debug = false + pm_parallel = 3 + pm_tls_insecure = true + pm_api_url = var.pm_api_url + pm_user = var.pm_user + pm_password = var.pm_password + pm_debug = false } diff --git a/terraform/main.tf b/terraform/main.tf index 06da0b8..b777e43 100644 --- a/terraform/main.tf +++ b/terraform/main.tf @@ -38,8 +38,8 @@ resource "proxmox_vm_qemu" "k3master" { #Cloud Init Settings ipconfig0 = "ip=192.168.20.${var.k3master.ip[count.index]}/24,gw=192.168.20.1" searchdomain = "durp.loc" - nameserver = "${var.dnsserver}" - sshkeys = "${var.sshkeys}" + nameserver = var.dnsserver + sshkeys = var.sshkeys } resource "proxmox_vm_qemu" "k3server" { @@ -79,8 +79,8 @@ resource "proxmox_vm_qemu" "k3server" { #Cloud Init Settings ipconfig0 = "ip=192.168.20.${var.k3server.ip[count.index]}/24,gw=192.168.20.1" searchdomain = "durp.loc" - nameserver = "${var.dnsserver}" - sshkeys = "${var.sshkeys}" + nameserver = var.dnsserver + sshkeys = var.sshkeys } #kasm @@ -123,6 +123,6 @@ resource "proxmox_vm_qemu" "kasm" { #Cloud Init Settings ipconfig0 = "ip=192.168.20.110/24,gw=192.168.20.1" searchdomain = "durp.loc" - nameserver = "${var.dnsserver}" - sshkeys = "${var.sshkeys}" + nameserver = var.dnsserver + sshkeys = var.sshkeys } diff --git a/terraform/terraform.tfvars b/terraform/terraform.tfvars index f8654f4..d543a87 100644 --- a/terraform/terraform.tfvars +++ b/terraform/terraform.tfvars @@ -1,4 +1,5 @@ dnsserver = "192.168.20.1" + sshkeys = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDTYqag8OKcV6kIitn3Axlyi3Xr9EeybG10wlglw34fYF0pY+OERy7zZKEju4ijZzQ7eWNlcXLYSorm5Tngkvnz4vbM4b9R7gZjTV9drSGDo0BLkMXNuSTrKwGeokcNkxh+HZcWSK4/SE5zPzvkPj1UvmAgQ4P4N79mqPe5/9gAvdrlUWEtuqVdEHc/FMk4kEZsRu4lg58KoghNCRYMYHOyd1rbHsuWpX5NumPxnosWG22jzqj46rUWEXvA7MrCGGbUDlk5+/h7Bvw4O8nGZLEo/qyaYvChTBj/UqYYBssC4VlW/SNJB1yfrklqdtcknmFVJBi174cQtzZDXOerwneh8/+t7wWpcxkWscxYrwdJspzAU/NGk02xDPaG4F1mdgZ6HIZCQAaw/EbaNbiuU+bhdngEIHUvVmdiy4T09FWIWuJxO6FnAiVIU5K8LpqGLTFp7kjOwAczdQ+KVojm/1A5W/ZoTE/y3Ni1fVaOJFCxSgU7qiKAm7hb2ZXvznNgryc=" k3master = { diff --git a/terraform/variables.tf b/terraform/variables.tf index 6c326db..3dc77f4 100644 --- a/terraform/variables.tf +++ b/terraform/variables.tf @@ -1,55 +1,55 @@ variable "pm_api_url" { - description = "API URL to Proxmox provider" - type = string + description = "API URL to Proxmox provider" + type = string } variable "dnsserver" { - description = "DNS provider" - type = string + description = "DNS provider" + type = string } variable "sshkeys" { - description = "Public SSH key to inject into CloudInit" - type = string + description = "Public SSH key to inject into CloudInit" + type = string } variable "pm_password" { - description = "Passowrd to Proxmox provider" - type = string + description = "Passowrd to Proxmox provider" + type = string } variable "pm_user" { - description = "UIsername to Proxmox provider" - type = string - default = "root@pam" + description = "UIsername to Proxmox provider" + type = string + default = "root@pam" } variable "k3master" { - description = "Defaults of master nodes in K3S" - type = object({ - count = number - name = list(string) - cores = number - memory = number - drive = string - storage = string - template = string - node = string - ip = list(number) - }) + description = "Defaults of master nodes in K3S" + type = object({ + count = number + name = list(string) + cores = number + memory = number + drive = string + storage = string + template = string + node = string + ip = list(number) + }) } variable "k3server" { - description = "Defaults of worker nodes in K3S" - type = object({ - count = number - name = list(string) - cores = number - memory = number - drive = string - storage = string - template = string - node = string - ip = list(number) - }) + description = "Defaults of worker nodes in K3S" + type = object({ + count = number + name = list(string) + cores = number + memory = number + drive = string + storage = string + template = string + node = string + ip = list(number) + }) }