feat(tofu): adding information outputs
adding enable disable support for deployment
This commit is contained in:
parent
1e85cf81ea
commit
492dbfa3af
@ -1,7 +1,19 @@
|
|||||||
locals {
|
locals {
|
||||||
deployments = {
|
deployments = {
|
||||||
|
"ssh" = {
|
||||||
|
name = "Associer une clef SSH - (2024-01-17)"
|
||||||
|
description = "Adding user ssh key to project deployments"
|
||||||
|
enabled = true
|
||||||
|
catalog_item_name = "Associer une clef SSH"
|
||||||
|
project_name = "GRP-CLOE-TSS-DEV"
|
||||||
|
inputs = {
|
||||||
|
username = var.vra_username
|
||||||
|
sshpubkey = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDDph3zh6ojSvH44k13z9B6xj+Hargo3uzkxnYv5s5NI4yagNuBXEc3aS++KdocND+FtVfLK+iVE8qHo2bvmpMmVkqU6WU2apN7DfIP0QGLlSGeo+UOZ9hGeEDlgVO4AOnZKZ5kPGBEPZ84JXuE9CmhKfwEVCK8w3B8XQttA8alFl4A4/4F14x2w4njsSLY1H3b0qah7hgYKU5zHIGLg8Lxx+1BxGIF0l5n5m5rqAskRNaF+aYbs0CcWHv49bPK0sJJ0qPV2r2sq8BlzuZFHExnZRIxpsIXdce4Bm4rdlGi7tBmmurLk4OOtDkwvhD0LMaNJf10k6QLSmRUTVzgsYz/dmGxopbMtwwIXkwi014uSZgi8wAuznXx5I4j2TUGPZHOVf+1iw/yaxWlgTVOSoX7ZxyhDgW5cCgZZGNzU5UWe0vUuVTB+hfSMj50/Q6+Vi92/mDMbPhm4nBoVzD5DT15mB+yGyN45Ej61m0JzVUyZexfvVaffEug1/u5dnwilP0WGKr4i2OXxOXtvSdAs5rlZjvppZk6IxRCwXIcPwEFL97ZrQZAxlVS5Nh+ZnlSwTe3zfQhzHj1ao0AdCAHFPUEdoUPJhSb0OjyCvZ9XZ1KCkXhuhuN/3IUhuoWl4soNCeC3KmU/USx1wda438Exj0hM1mTyBZScDPGyD9nw78DGw== Philippe Caseiro"
|
||||||
|
}
|
||||||
|
},
|
||||||
"test-pc-vf" = {
|
"test-pc-vf" = {
|
||||||
name = "test-pc-vf"
|
name = "test-pc-vf"
|
||||||
|
enabled = false
|
||||||
description = "test deployment"
|
description = "test deployment"
|
||||||
catalog_item_name = "MonoVM-Dev"
|
catalog_item_name = "MonoVM-Dev"
|
||||||
project_name = "GRP-CLOE-TSS-DEV"
|
project_name = "GRP-CLOE-TSS-DEV"
|
||||||
@ -27,8 +39,65 @@ locals {
|
|||||||
leaseDays = "1"
|
leaseDays = "1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"MonoTest-pc-vf-1" = {
|
||||||
|
name = "MonoTest-1"
|
||||||
|
enabled = true
|
||||||
|
description = "test deployment"
|
||||||
|
catalog_item_name = "MonoVM-Dev"
|
||||||
|
project_name = "GRP-CLOE-TSS-DEV"
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
MonoVM_cpu = 2
|
||||||
|
MonoVM_memory = 2048
|
||||||
|
MonoVM_securityTag = "DEV-TIER-WEB"
|
||||||
|
MonoVM_service = "app"
|
||||||
|
MonoVM_disks = jsonencode([
|
||||||
|
{
|
||||||
|
mountpoint = "/toto",
|
||||||
|
size = 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
mountpoint = "/titi",
|
||||||
|
size = 20
|
||||||
|
}
|
||||||
|
])
|
||||||
|
MonoVM_image = "DEB10X"
|
||||||
|
MonoVM_instances = 1
|
||||||
|
MonoVM_startOrder = "1"
|
||||||
|
leaseDays = "1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"MonoTest-pc-vf-2" = {
|
||||||
|
name = "MonotTest-2"
|
||||||
|
enabled = true
|
||||||
|
description = "test deployment"
|
||||||
|
catalog_item_name = "MonoVM-Dev"
|
||||||
|
project_name = "GRP-CLOE-TSS-DEV"
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
MonoVM_cpu = 2
|
||||||
|
MonoVM_memory = 2048
|
||||||
|
MonoVM_securityTag = "DEV-TIER-APP"
|
||||||
|
MonoVM_service = "app"
|
||||||
|
MonoVM_disks = jsonencode([
|
||||||
|
{
|
||||||
|
mountpoint = "/toto",
|
||||||
|
size = 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
mountpoint = "/titi",
|
||||||
|
size = 200
|
||||||
|
}
|
||||||
|
])
|
||||||
|
MonoVM_image = "DEB10X"
|
||||||
|
MonoVM_instances = 1
|
||||||
|
MonoVM_startOrder = "1"
|
||||||
|
leaseDays = "1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"test-pc-vf-3-tiers" = {
|
"test-pc-vf-3-tiers" = {
|
||||||
name = "test-pc-vf-3-tiers"
|
name = "test-pc-vf-3-tiers"
|
||||||
|
enabled = true
|
||||||
description = "test 3 tiers Dev"
|
description = "test 3 tiers Dev"
|
||||||
catalog_item_name = "3-tiers-Dev"
|
catalog_item_name = "3-tiers-Dev"
|
||||||
project_name = "GRP-CLOE-TST-DEV"
|
project_name = "GRP-CLOE-TST-DEV"
|
||||||
|
37
tofu/main.tf
37
tofu/main.tf
@ -5,6 +5,13 @@ variable "vra_refresh_token" {
|
|||||||
type = string
|
type = string
|
||||||
sensitive = true
|
sensitive = true
|
||||||
}
|
}
|
||||||
|
variable "vra_username" {
|
||||||
|
type = string
|
||||||
|
}
|
||||||
|
|
||||||
|
data "local_file" "ssh-pub-key" {
|
||||||
|
filename = "/home/pcaseiro/.ssh/id_rsa.pub"
|
||||||
|
}
|
||||||
|
|
||||||
module "deployment" {
|
module "deployment" {
|
||||||
source = "./modules/pycloud"
|
source = "./modules/pycloud"
|
||||||
@ -15,3 +22,33 @@ module "deployment" {
|
|||||||
|
|
||||||
deployments = local.deployments
|
deployments = local.deployments
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
output "flatten_vms" {
|
||||||
|
value = flatten([
|
||||||
|
for k1, deploy in module.deployment.deployments : [
|
||||||
|
for k2, resource in deploy.resources : {
|
||||||
|
deployment_name = k1
|
||||||
|
vm_name = jsondecode(resource.properties_json).name
|
||||||
|
vm_hostname = jsondecode(resource.properties_json).hostName
|
||||||
|
address = jsondecode(resource.properties_json).address
|
||||||
|
networks = jsondecode(resource.properties_json).networks
|
||||||
|
} if resource.type == "Cloud.vSphere.Machine"
|
||||||
|
]
|
||||||
|
])
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
output "vms" {
|
||||||
|
value = flatten([
|
||||||
|
for k1, deploy in module.deployment.deployments : {
|
||||||
|
for k2, resource in deploy.resources : jsondecode(resource.properties_json).name => {
|
||||||
|
deployment_name = k1
|
||||||
|
vm_name = jsondecode(resource.properties_json).name
|
||||||
|
vm_hostname = jsondecode(resource.properties_json).hostName
|
||||||
|
address = jsondecode(resource.properties_json).address
|
||||||
|
networks = jsondecode(resource.properties_json).networks
|
||||||
|
} if resource.type == "Cloud.vSphere.Machine"
|
||||||
|
}
|
||||||
|
])
|
||||||
|
}
|
@ -1,10 +1,10 @@
|
|||||||
data "vra_project" "projects" {
|
data "vra_project" "projects" {
|
||||||
for_each = { for deployment in var.deployments : deployment.project_name => deployment }
|
for_each = { for deployment in var.deployments : deployment.project_name => deployment... }
|
||||||
name = each.key
|
name = each.key
|
||||||
}
|
}
|
||||||
|
|
||||||
data "vra_catalog_item" "catalog" {
|
data "vra_catalog_item" "catalog" {
|
||||||
for_each = { for deployment in var.deployments : deployment.catalog_item_name => deployment }
|
for_each = { for deployment in var.deployments : deployment.catalog_item_name => deployment... }
|
||||||
|
|
||||||
name = each.key
|
name = each.key
|
||||||
expand_versions = true
|
expand_versions = true
|
||||||
@ -12,7 +12,11 @@ data "vra_catalog_item" "catalog" {
|
|||||||
}
|
}
|
||||||
|
|
||||||
resource "vra_deployment" "deployments" {
|
resource "vra_deployment" "deployments" {
|
||||||
for_each = var.deployments
|
//for_each = { for deployment in var.deployments: deployment => deployment if deployment.enabled }
|
||||||
|
for_each = {
|
||||||
|
for name, deployment in var.deployments : name => deployment
|
||||||
|
if deployment.enabled
|
||||||
|
}
|
||||||
name = each.value.name
|
name = each.value.name
|
||||||
description = each.value.description
|
description = each.value.description
|
||||||
|
|
||||||
|
@ -39,6 +39,7 @@ variable "deployments" {
|
|||||||
type = map(object({
|
type = map(object({
|
||||||
name = string
|
name = string
|
||||||
description = string
|
description = string
|
||||||
|
enabled = bool
|
||||||
|
|
||||||
catalog_item_name = string
|
catalog_item_name = string
|
||||||
project_name = string
|
project_name = string
|
||||||
|
@ -64,6 +64,7 @@ else
|
|||||||
if [ ! -f "${TOKENRC}" ]; then
|
if [ ! -f "${TOKENRC}" ]; then
|
||||||
echo "service_url=${service_url}" >> "${TOKENRC}"
|
echo "service_url=${service_url}" >> "${TOKENRC}"
|
||||||
echo "refresh_token=${refresh_token}" >> "${TOKENRC}"
|
echo "refresh_token=${refresh_token}" >> "${TOKENRC}"
|
||||||
|
echo "username=${username}" >> "${TOKENRC}"
|
||||||
chmod 600 ${TOKENRC}
|
chmod 600 ${TOKENRC}
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@ -77,5 +78,6 @@ fi
|
|||||||
ARG1=${@:$OPTIND:1}
|
ARG1=${@:$OPTIND:1}
|
||||||
|
|
||||||
export TF_VAR_vra_url="${service_url}"
|
export TF_VAR_vra_url="${service_url}"
|
||||||
|
export TF_VAR_vra_username="${username}"
|
||||||
export TF_VAR_vra_refresh_token="${refresh_token}"
|
export TF_VAR_vra_refresh_token="${refresh_token}"
|
||||||
tofu ${ARG1}
|
tofu ${ARG1} -no-color
|
Loading…
Reference in New Issue
Block a user