Compare commits
10 Commits
2fc1cd4b86
...
5f4e468b5e
| Author | SHA1 | Date | |
|---|---|---|---|
| 5f4e468b5e | |||
| a7e32b116a | |||
| 788844bdd2 | |||
| 6e9f666f23 | |||
| add2f7aa86 | |||
| 90225bf7a4 | |||
| ef975f78b6 | |||
| 98c0044627 | |||
| ae92ffd157 | |||
| c0fa247809 |
@@ -27,3 +27,21 @@ step "approve-plan" {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
step "infra" {
|
||||||
|
name = "Terraform Apply"
|
||||||
|
|
||||||
|
action "terraform-apply" {
|
||||||
|
properties = {
|
||||||
|
Octopus.Action.RunOnServer = "true"
|
||||||
|
Octopus.Action.Template.Id = "ActionTemplates-2"
|
||||||
|
Octopus.Action.Template.Version = "1"
|
||||||
|
}
|
||||||
|
worker_pool_variable = ""
|
||||||
|
|
||||||
|
container {
|
||||||
|
feed = "nexus"
|
||||||
|
image = "#{TF_CONTAINER}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,7 +1,3 @@
|
|||||||
variable "TF_INIT" {
|
|
||||||
value "-backend-config=\"address=https://gitlab.com/api/v4/projects/#{GITLAB_PROJECT_ID}/terraform/state/#{Octopus.Deployment.Tenant.Id}\" -backend-config=\"lock_address=https://gitlab.com/api/v4/projects/#{GITLAB_PROJECT_ID}/terraform/state/#{Octopus.Deployment.Tenant.Id}/lock\" -backend-config=\"unlock_address=https://gitlab.com/api/v4/projects/#{GITLAB_PROJECT_ID}/terraform/state/#{Octopus.Deployment.Tenant.Id}/lock\" -backend-config=\"username=developerdurp\" -backend-config=\"password=#{GITLAB_TOKEN}\" -backend-config=\"lock_method=POST\" -backend-config=\"unlock_method=DELETE\" -backend-config=\"retry_wait_min=5\"" {}
|
|
||||||
}
|
|
||||||
|
|
||||||
variable "GITLAB_PROJECT_ID" {
|
variable "GITLAB_PROJECT_ID" {
|
||||||
value "52820726" {}
|
value "52820726" {}
|
||||||
}
|
}
|
||||||
@@ -11,5 +7,9 @@ variable "TF_PACKAGE" {
|
|||||||
}
|
}
|
||||||
|
|
||||||
variable "TF_CONTAINER" {
|
variable "TF_CONTAINER" {
|
||||||
value "octopusdeploy/worker-tools:6.1.0-ubuntu.22.04" {}
|
value "developerdurp/octopus-build-container:22.4.0" {}
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "TF_INIT" {
|
||||||
|
value "-backend-config=\"address=https://gitlab.com/api/v4/projects/#{GITLAB_PROJECT_ID}/terraform/state/#{Octopus.Deployment.Tenant.Id}-#{Octopus.Environment.Name}\" -backend-config=\"lock_address=https://gitlab.com/api/v4/projects/#{GITLAB_PROJECT_ID}/terraform/state/#{Octopus.Deployment.Tenant.Id}-#{Octopus.Environment.Name}/lock\" -backend-config=\"unlock_address=https://gitlab.com/api/v4/projects/#{GITLAB_PROJECT_ID}/terraform/state/#{Octopus.Deployment.Tenant.Id}-#{Octopus.Environment.Name}/lock\" -backend-config=\"username=developerdurp\" -backend-config=\"password=#{GITLAB_TOKEN}\" -backend-config=\"lock_method=POST\" -backend-config=\"unlock_method=DELETE\" -backend-config=\"retry_wait_min=5\"" {}
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
terraform {
|
terraform {
|
||||||
# backend "http" {}
|
backend "http" {}
|
||||||
required_providers {
|
required_providers {
|
||||||
proxmox = {
|
proxmox = {
|
||||||
source = "TheGameProfi/proxmox"
|
source = "TheGameProfi/proxmox"
|
||||||
|
|||||||
@@ -33,3 +33,39 @@ resource "proxmox_vm_qemu" "master" {
|
|||||||
nameserver = var.dnsserver
|
nameserver = var.dnsserver
|
||||||
sshkeys = var.sshkeys
|
sshkeys = var.sshkeys
|
||||||
}
|
}
|
||||||
|
|
||||||
|
resource "proxmox_vm_qemu" "node" {
|
||||||
|
count = var.node.count
|
||||||
|
ciuser = "administrator"
|
||||||
|
vmid = "${var.vlan}${var.node.ip[count.index]}"
|
||||||
|
name = "rke-n-${var.appname}${format("%02d", count.index + 1)}"
|
||||||
|
target_node = var.node.node[count.index]
|
||||||
|
clone = var.node.template
|
||||||
|
qemu_os = "other"
|
||||||
|
full_clone = true
|
||||||
|
agent = 1
|
||||||
|
cores = var.node.cores
|
||||||
|
sockets = 1
|
||||||
|
cpu = "host"
|
||||||
|
memory = var.node.memory
|
||||||
|
scsihw = "virtio-scsi-pci"
|
||||||
|
bootdisk = "scsi0"
|
||||||
|
boot = "c"
|
||||||
|
onboot = false
|
||||||
|
network {
|
||||||
|
model = "virtio"
|
||||||
|
bridge = var.bridge
|
||||||
|
tag = var.vlan
|
||||||
|
firewall = false
|
||||||
|
}
|
||||||
|
lifecycle {
|
||||||
|
ignore_changes = [
|
||||||
|
network,
|
||||||
|
]
|
||||||
|
}
|
||||||
|
#Cloud Init Settings
|
||||||
|
ipconfig0 = "ip=192.168.${var.vlan}.${var.node.ip[count.index]}/24,gw=192.168.${var.vlan}.1"
|
||||||
|
searchdomain = var.searchdomain
|
||||||
|
nameserver = var.dnsserver
|
||||||
|
sshkeys = var.sshkeys
|
||||||
|
}
|
||||||
|
|||||||
@@ -46,3 +46,14 @@ variable "master" {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
variable "node" {
|
||||||
|
description = "Defaults of worker nodes in K3S"
|
||||||
|
type = object({
|
||||||
|
count = number
|
||||||
|
template = string
|
||||||
|
cores = number
|
||||||
|
memory = number
|
||||||
|
node = list(string)
|
||||||
|
ip = list(number)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -6,14 +6,22 @@ appname = "#{appname}"
|
|||||||
searchdomain = "#{searchdomain}"
|
searchdomain = "#{searchdomain}"
|
||||||
|
|
||||||
master = {
|
master = {
|
||||||
count = #{count}
|
count = #{master-count}
|
||||||
template = "#{template}"
|
template = "#{master-template}"
|
||||||
cores = #{cores}
|
cores = #{master-cores}
|
||||||
memory = "#{memory}"
|
memory = "#{master-memory}"
|
||||||
node = [#{node}]
|
node = [#{master-node}]
|
||||||
ip = [#{ip}]
|
ip = [#{master-ip}]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
node = {
|
||||||
|
count = #{node-count}
|
||||||
|
template = "#{node-template}"
|
||||||
|
cores = #{node-cores}
|
||||||
|
memory = "#{node-memory}"
|
||||||
|
node = [#{node-node}]
|
||||||
|
ip = [#{node-ip}]
|
||||||
|
}
|
||||||
pm_api_url = "#{pm_api_url}"
|
pm_api_url = "#{pm_api_url}"
|
||||||
pm_api_token_id = "#{pm_api_token_id}"
|
pm_api_token_id = "#{pm_api_token_id}"
|
||||||
pm_api_token_secret = "#{pm_api_token_secret}"
|
pm_api_token_secret = "#{pm_api_token_secret}"
|
||||||
|
|||||||
Reference in New Issue
Block a user