From 5ce5146f0f444af4c290964c95794af3e7893b8f Mon Sep 17 00:00:00 2001 From: Markus Balsam Date: Mon, 22 Jul 2024 16:20:02 +0200 Subject: [PATCH 1/2] unify handling of cf_landscape_label + output.tf -> outputs.tf --- .../mission_3061/step1/main.tf | 18 ++++++------------ .../mission_3061/step1/outputs.tf | 6 +++--- released/discovery_center/mission_3239/main.tf | 13 ++----------- .../discovery_center/mission_3239/variables.tf | 3 +-- .../mission_3248_trial/step1/outputs.tf | 5 +++++ .../mission_3488/step1/main.tf | 10 +++++----- .../mission_3488/step1/outputs.tf | 6 +++--- .../mission_3501/step1/main.tf | 12 ++++-------- .../step1/{output.tf => outputs.tf} | 0 .../mission_3501/step1/variables.tf | 7 +++++++ .../step2/{output.tf => outputs.tf} | 0 .../step1/{output.tf => outputs.tf} | 5 +++++ .../step2/{output.tf => outputs.tf} | 0 .../mission_3774/step1/outputs.tf | 5 +++++ .../mission_4172/step1/main.tf | 11 ++++------- .../step1/{output.tf => outputs.tf} | 0 .../mission_4172/step1/variables.tf | 7 +++++++ .../step2/{output.tf => outputs.tf} | 0 .../step1/{output.tf => outputs.tf} | 2 +- .../step2/{output.tf => outputs.tf} | 0 .../mission_4371/step1/main.tf | 4 ++-- .../step1/{output.tf => outputs.tf} | 2 +- .../step2/{output.tf => outputs.tf} | 0 .../mission_4441/step1/outputs.tf | 3 +-- 24 files changed, 62 insertions(+), 57 deletions(-) rename released/discovery_center/mission_3501/step1/{output.tf => outputs.tf} (100%) rename released/discovery_center/mission_3501/step2/{output.tf => outputs.tf} (100%) rename released/discovery_center/mission_3680/step1/{output.tf => outputs.tf} (89%) rename released/discovery_center/mission_3680/step2/{output.tf => outputs.tf} (100%) rename released/discovery_center/mission_4172/step1/{output.tf => outputs.tf} (100%) rename released/discovery_center/mission_4172/step2/{output.tf => outputs.tf} (100%) rename released/discovery_center/mission_4356/step1/{output.tf => outputs.tf} (94%) rename released/discovery_center/mission_4356/step2/{output.tf => outputs.tf} (100%) rename released/discovery_center/mission_4371/step1/{output.tf => outputs.tf} (86%) rename released/discovery_center/mission_4371/step2/{output.tf => outputs.tf} (100%) diff --git a/released/discovery_center/mission_3061/step1/main.tf b/released/discovery_center/mission_3061/step1/main.tf index d5fdd960..45a6aedc 100644 --- a/released/discovery_center/mission_3061/step1/main.tf +++ b/released/discovery_center/mission_3061/step1/main.tf @@ -71,24 +71,18 @@ data "btp_subaccount_environments" "all" { } # Take the landscape label from the first CF environment if no environment label is provided -resource "null_resource" "cache_target_environment" { - triggers = { - label = length(var.cf_landscape_label) > 0 ? var.cf_landscape_label : [for env in data.btp_subaccount_environments.all.values : env if env.service_name == "cloudfoundry" && env.environment_type == "cloudfoundry"][0].landscape_label - } - - lifecycle { - ignore_changes = all - } +resource "terraform_data" "cf_landscape_label" { + input = length(var.cf_landscape_label) > 0 ? var.cf_landscape_label : [for env in data.btp_subaccount_environments.all.values : env if env.service_name == "cloudfoundry" && env.environment_type == "cloudfoundry"][0].landscape_label } # Create the Cloud Foundry environment instance -resource "btp_subaccount_environment_instance" "cf_abap" { +resource "btp_subaccount_environment_instance" "cloudfoundry" { subaccount_id = btp_subaccount.abap_subaccount.id name = local.subaccount_cf_org environment_type = "cloudfoundry" service_name = "cloudfoundry" plan_name = var.cf_plan_name - landscape_label = null_resource.cache_target_environment.triggers.label + landscape_label = terraform_data.cf_landscape_label.output parameters = jsonencode({ instance_name = local.subaccount_cf_org @@ -108,8 +102,8 @@ resource "local_file" "output_vars_step1" { content = <<-EOT origin = "${var.origin}" - cf_api_url = "${jsondecode(btp_subaccount_environment_instance.cf_abap.labels)["API Endpoint"]}" - cf_org_id = "${btp_subaccount_environment_instance.cf_abap.platform_id}" + cf_api_url = "${jsondecode(btp_subaccount_environment_instance.cloudfoundry.labels)["API Endpoint"]}" + cf_org_id = "${btp_subaccount_environment_instance.cloudfoundry.platform_id}" cf_org_auditors = ${jsonencode(var.cf_org_auditors)} cf_org_billing_managers = ${jsonencode(var.cf_org_billing_managers)} diff --git a/released/discovery_center/mission_3061/step1/outputs.tf b/released/discovery_center/mission_3061/step1/outputs.tf index 748ec0ff..dd1ec05f 100644 --- a/released/discovery_center/mission_3061/step1/outputs.tf +++ b/released/discovery_center/mission_3061/step1/outputs.tf @@ -14,17 +14,17 @@ output "cf_org_name" { } output "cf_org_id" { - value = btp_subaccount_environment_instance.cf_abap.platform_id + value = btp_subaccount_environment_instance.cloudfoundry.platform_id description = "The ID of the Cloud Foundry org connected to the subaccount." } output "cf_api_url" { - value = lookup(jsondecode(btp_subaccount_environment_instance.cf_abap.labels), "API Endpoint", "not found") + value = lookup(jsondecode(btp_subaccount_environment_instance.cloudfoundry.labels), "API Endpoint", "not found") description = "API endpoint of the Cloud Foundry environment." } output "cf_landscape_label" { - value = btp_subaccount_environment_instance.cf_abap.landscape_label + value = btp_subaccount_environment_instance.cloudfoundry.landscape_label description = "Landscape label of the Cloud Foundry environment." } diff --git a/released/discovery_center/mission_3239/main.tf b/released/discovery_center/mission_3239/main.tf index 163a1b2c..5dadc1e6 100644 --- a/released/discovery_center/mission_3239/main.tf +++ b/released/discovery_center/mission_3239/main.tf @@ -42,18 +42,9 @@ resource "btp_subaccount_trust_configuration" "fully_customized" { # Creation of Cloud Foundry environment ############################################################################################### - -# ------------------------------------------------------------------------------------------------------ # Take the landscape label from the first CF environment if no environment label is provided -# ------------------------------------------------------------------------------------------------------ -resource "null_resource" "cache_target_environment" { - triggers = { - label = length(var.environment_label) > 0 ? var.environment_label : [for env in data.btp_subaccount_environments.all.values : env if env.service_name == "cloudfoundry" && env.environment_type == "cloudfoundry"][0].landscape_label - } - - lifecycle { - ignore_changes = all - } +resource "terraform_data" "cf_landscape_label" { + input = length(var.cf_landscape_label) > 0 ? var.cf_landscape_label : [for env in data.btp_subaccount_environments.all.values : env if env.service_name == "cloudfoundry" && env.environment_type == "cloudfoundry"][0].landscape_label } resource "btp_subaccount_environment_instance" "cf" { diff --git a/released/discovery_center/mission_3239/variables.tf b/released/discovery_center/mission_3239/variables.tf index 55789383..87c26060 100644 --- a/released/discovery_center/mission_3239/variables.tf +++ b/released/discovery_center/mission_3239/variables.tf @@ -15,7 +15,6 @@ variable "subaccount_id" { default = "" } - variable "custom_idp" { type = string description = "Defines the custom IDP to be used for the subaccount" @@ -40,7 +39,7 @@ variable "org" { default = "org" } -variable "environment_label" { +variable "cf_landscape_label" { type = string description = "In case there are multiple environments available for a subaccount, you can use this label to choose with which one you want to go. If nothing is given, we take by default the first available." default = "" diff --git a/released/discovery_center/mission_3248_trial/step1/outputs.tf b/released/discovery_center/mission_3248_trial/step1/outputs.tf index 547e564c..fc3d6632 100644 --- a/released/discovery_center/mission_3248_trial/step1/outputs.tf +++ b/released/discovery_center/mission_3248_trial/step1/outputs.tf @@ -13,6 +13,11 @@ output "cf_api_url" { description = "API endpoint of the Cloud Foundry environment." } +output "cf_landscape_label" { + value = local.cf_environment_instance.landscape_label + description = "Landscape label of the Cloud Foundry environment." +} + output "cf_org_managers" { value = var.cf_org_managers description = "List of managers for the Cloud Foundry org." diff --git a/released/discovery_center/mission_3488/step1/main.tf b/released/discovery_center/mission_3488/step1/main.tf index 4c8fd870..15e28aa0 100644 --- a/released/discovery_center/mission_3488/step1/main.tf +++ b/released/discovery_center/mission_3488/step1/main.tf @@ -40,18 +40,18 @@ data "btp_subaccount_environments" "all" { } # Take the landscape label from the first CF environment if no environment label is provided -resource "terraform_data" "replacement" { +resource "terraform_data" "cf_landscape_label" { input = length(var.cf_landscape_label) > 0 ? var.cf_landscape_label : [for env in data.btp_subaccount_environments.all.values : env if env.service_name == "cloudfoundry" && env.environment_type == "cloudfoundry"][0].landscape_label } # Create the Cloud Foundry environment instance -resource "btp_subaccount_environment_instance" "cf_sac" { +resource "btp_subaccount_environment_instance" "cloudfoundry" { subaccount_id = btp_subaccount.dc_mission.id name = local.subaccount_cf_org environment_type = "cloudfoundry" service_name = "cloudfoundry" plan_name = var.cf_plan_name - landscape_label = terraform_data.replacement.output + landscape_label = terraform_data.cf_landscape_label.output parameters = jsonencode({ instance_name = local.subaccount_cf_org @@ -64,8 +64,8 @@ resource "local_file" "output_vars_step1" { content = <<-EOT origin = "${var.origin}" - cf_api_url = "${jsondecode(btp_subaccount_environment_instance.cf_sac.labels)["API Endpoint"]}" - cf_org_id = "${btp_subaccount_environment_instance.cf_sac.platform_id}" + cf_api_url = "${jsondecode(btp_subaccount_environment_instance.cloudfoundry.labels)["API Endpoint"]}" + cf_org_id = "${btp_subaccount_environment_instance.cloudfoundry.platform_id}" cf_org_auditors = ${jsonencode(var.cf_org_auditors)} cf_org_billing_managers = ${jsonencode(var.cf_org_billing_managers)} diff --git a/released/discovery_center/mission_3488/step1/outputs.tf b/released/discovery_center/mission_3488/step1/outputs.tf index 2ca0c372..543efa92 100644 --- a/released/discovery_center/mission_3488/step1/outputs.tf +++ b/released/discovery_center/mission_3488/step1/outputs.tf @@ -9,17 +9,17 @@ output "cf_org_name" { } output "cf_org_id" { - value = btp_subaccount_environment_instance.cf_sac.platform_id + value = btp_subaccount_environment_instance.cloudfoundry.platform_id description = "The ID of the Cloud Foundry org connected to the subaccount." } output "cf_api_url" { - value = lookup(jsondecode(btp_subaccount_environment_instance.cf_sac.labels), "API Endpoint", "not found") + value = lookup(jsondecode(btp_subaccount_environment_instance.cloudfoundry.labels), "API Endpoint", "not found") description = "API endpoint of the Cloud Foundry environment." } output "cf_landscape_label" { - value = btp_subaccount_environment_instance.cf_sac.landscape_label + value = btp_subaccount_environment_instance.cloudfoundry.landscape_label description = "Landscape label of the Cloud Foundry environment." } diff --git a/released/discovery_center/mission_3501/step1/main.tf b/released/discovery_center/mission_3501/step1/main.tf index 569cf3e2..80424d5a 100644 --- a/released/discovery_center/mission_3501/step1/main.tf +++ b/released/discovery_center/mission_3501/step1/main.tf @@ -51,15 +51,11 @@ resource "btp_subaccount_role_collection_assignment" "subaccount-service-admins" data "btp_subaccount_environments" "all" { subaccount_id = data.btp_subaccount.project.id } - -locals { - cf_landscape_labels = [ - for env in data.btp_subaccount_environments.all.values : env.landscape_label - if env.environment_type == "cloudfoundry" - ] +# Take the landscape label from the first CF environment if no environment label is provided +resource "terraform_data" "cf_landscape_label" { + input = length(var.cf_landscape_label) > 0 ? var.cf_landscape_label : [for env in data.btp_subaccount_environments.all.values : env if env.service_name == "cloudfoundry" && env.environment_type == "cloudfoundry"][0].landscape_label } - ###################################################################### # Creation of Cloud Foundry environment ###################################################################### @@ -69,7 +65,7 @@ resource "btp_subaccount_environment_instance" "cloudfoundry" { environment_type = "cloudfoundry" service_name = "cloudfoundry" plan_name = "standard" - landscape_label = local.cf_landscape_labels[0] + landscape_label = terraform_data.cf_landscape_label.output parameters = jsonencode({ instance_name = local.project_subaccount_cf_org }) diff --git a/released/discovery_center/mission_3501/step1/output.tf b/released/discovery_center/mission_3501/step1/outputs.tf similarity index 100% rename from released/discovery_center/mission_3501/step1/output.tf rename to released/discovery_center/mission_3501/step1/outputs.tf diff --git a/released/discovery_center/mission_3501/step1/variables.tf b/released/discovery_center/mission_3501/step1/variables.tf index 395d0f00..8a7d2e66 100644 --- a/released/discovery_center/mission_3501/step1/variables.tf +++ b/released/discovery_center/mission_3501/step1/variables.tf @@ -28,6 +28,13 @@ variable "cf_org_name" { default = "cloud-foundry" } +# cf landscape label +variable "cf_landscape_label" { + type = string + description = "The Cloud Foundry landscape (format example eu10-004)." + default = "" +} + # Region variable "region" { type = string diff --git a/released/discovery_center/mission_3501/step2/output.tf b/released/discovery_center/mission_3501/step2/outputs.tf similarity index 100% rename from released/discovery_center/mission_3501/step2/output.tf rename to released/discovery_center/mission_3501/step2/outputs.tf diff --git a/released/discovery_center/mission_3680/step1/output.tf b/released/discovery_center/mission_3680/step1/outputs.tf similarity index 89% rename from released/discovery_center/mission_3680/step1/output.tf rename to released/discovery_center/mission_3680/step1/outputs.tf index 9fcedb28..c6f4202a 100644 --- a/released/discovery_center/mission_3680/step1/output.tf +++ b/released/discovery_center/mission_3680/step1/outputs.tf @@ -13,6 +13,11 @@ output "cf_org_id" { description = "The Cloudfoundry org id." } +output "cf_landscape_label" { + value = btp_subaccount_environment_instance.cloudfoundry.landscape_label + description = "Landscape label of the Cloud Foundry environment." +} + output "event_mesh_url" { value = btp_subaccount_subscription.event_mesh_application.subscription_url description = "Event Mesh URL" diff --git a/released/discovery_center/mission_3680/step2/output.tf b/released/discovery_center/mission_3680/step2/outputs.tf similarity index 100% rename from released/discovery_center/mission_3680/step2/output.tf rename to released/discovery_center/mission_3680/step2/outputs.tf diff --git a/released/discovery_center/mission_3774/step1/outputs.tf b/released/discovery_center/mission_3774/step1/outputs.tf index 59a03685..11432189 100644 --- a/released/discovery_center/mission_3774/step1/outputs.tf +++ b/released/discovery_center/mission_3774/step1/outputs.tf @@ -18,6 +18,11 @@ output "cf_org_name" { description = "The Cloudfoundry org name." } +output "cf_landscape_label" { + value = btp_subaccount_environment_instance.cloudfoundry.landscape_label + description = "Landscape label of the Cloud Foundry environment." +} + output "cf_org_admins" { value = var.cf_org_admins description = "The Cloudfoundry org admins." diff --git a/released/discovery_center/mission_4172/step1/main.tf b/released/discovery_center/mission_4172/step1/main.tf index 0f4216f3..caa94721 100644 --- a/released/discovery_center/mission_4172/step1/main.tf +++ b/released/discovery_center/mission_4172/step1/main.tf @@ -52,14 +52,11 @@ data "btp_subaccount_environments" "all" { subaccount_id = data.btp_subaccount.project.id } -locals { - cf_landscape_labels = [ - for env in data.btp_subaccount_environments.all.values : env.landscape_label - if env.environment_type == "cloudfoundry" - ] +# Take the landscape label from the first CF environment if no environment label is provided +resource "terraform_data" "cf_landscape_label" { + input = length(var.cf_landscape_label) > 0 ? var.cf_landscape_label : [for env in data.btp_subaccount_environments.all.values : env if env.service_name == "cloudfoundry" && env.environment_type == "cloudfoundry"][0].landscape_label } - ###################################################################### # Creation of Cloud Foundry environment ###################################################################### @@ -69,7 +66,7 @@ resource "btp_subaccount_environment_instance" "cloudfoundry" { environment_type = "cloudfoundry" service_name = "cloudfoundry" plan_name = "standard" - landscape_label = local.cf_landscape_labels[0] + landscape_label = terraform_data.cf_landscape_label.output parameters = jsonencode({ instance_name = local.project_subaccount_cf_org }) diff --git a/released/discovery_center/mission_4172/step1/output.tf b/released/discovery_center/mission_4172/step1/outputs.tf similarity index 100% rename from released/discovery_center/mission_4172/step1/output.tf rename to released/discovery_center/mission_4172/step1/outputs.tf diff --git a/released/discovery_center/mission_4172/step1/variables.tf b/released/discovery_center/mission_4172/step1/variables.tf index 88540b91..3027e9e0 100644 --- a/released/discovery_center/mission_4172/step1/variables.tf +++ b/released/discovery_center/mission_4172/step1/variables.tf @@ -28,6 +28,13 @@ variable "cf_org_name" { default = "cloud-foundry" } +# cf landscape label +variable "cf_landscape_label" { + type = string + description = "The Cloud Foundry landscape (format example eu10-004)." + default = "" +} + # Region variable "region" { type = string diff --git a/released/discovery_center/mission_4172/step2/output.tf b/released/discovery_center/mission_4172/step2/outputs.tf similarity index 100% rename from released/discovery_center/mission_4172/step2/output.tf rename to released/discovery_center/mission_4172/step2/outputs.tf diff --git a/released/discovery_center/mission_4356/step1/output.tf b/released/discovery_center/mission_4356/step1/outputs.tf similarity index 94% rename from released/discovery_center/mission_4356/step1/output.tf rename to released/discovery_center/mission_4356/step1/outputs.tf index dcd4715b..2d717e04 100644 --- a/released/discovery_center/mission_4356/step1/output.tf +++ b/released/discovery_center/mission_4356/step1/outputs.tf @@ -9,7 +9,7 @@ output "cf_api_url" { } output "cf_landscape_label" { - value = terraform_data.cf_landscape_label.output + value = btp_subaccount_environment_instance.cloudfoundry.landscape_label description = "The Cloudfoundry landscape label." } diff --git a/released/discovery_center/mission_4356/step2/output.tf b/released/discovery_center/mission_4356/step2/outputs.tf similarity index 100% rename from released/discovery_center/mission_4356/step2/output.tf rename to released/discovery_center/mission_4356/step2/outputs.tf diff --git a/released/discovery_center/mission_4371/step1/main.tf b/released/discovery_center/mission_4371/step1/main.tf index 11737739..561a7cb9 100644 --- a/released/discovery_center/mission_4371/step1/main.tf +++ b/released/discovery_center/mission_4371/step1/main.tf @@ -174,7 +174,7 @@ data "btp_subaccount_environments" "all" { # Take the landscape label from the first CF environment if no environment label is provided # (this replaces the previous null_resource) # ------------------------------------------------------------------------------------------------------ -resource "terraform_data" "replacement" { +resource "terraform_data" "cf_landscape_label" { input = length(var.cf_landscape_label) > 0 ? var.cf_landscape_label : [for env in data.btp_subaccount_environments.all.values : env if env.service_name == "cloudfoundry" && env.environment_type == "cloudfoundry"][0].landscape_label } # ------------------------------------------------------------------------------------------------------ @@ -186,7 +186,7 @@ resource "btp_subaccount_environment_instance" "cloudfoundry" { environment_type = "cloudfoundry" service_name = "cloudfoundry" plan_name = "standard" - landscape_label = terraform_data.replacement.output + landscape_label = terraform_data.cf_landscape_label.output parameters = jsonencode({ instance_name = local.subaccount_cf_org }) diff --git a/released/discovery_center/mission_4371/step1/output.tf b/released/discovery_center/mission_4371/step1/outputs.tf similarity index 86% rename from released/discovery_center/mission_4371/step1/output.tf rename to released/discovery_center/mission_4371/step1/outputs.tf index a06388a1..309eacf1 100644 --- a/released/discovery_center/mission_4371/step1/output.tf +++ b/released/discovery_center/mission_4371/step1/outputs.tf @@ -9,7 +9,7 @@ output "cf_api_url" { } output "cf_landscape_label" { - value = terraform_data.replacement.output + value = btp_subaccount_environment_instance.cloudfoundry.landscape_label description = "The Cloudfoundry landscape label." } diff --git a/released/discovery_center/mission_4371/step2/output.tf b/released/discovery_center/mission_4371/step2/outputs.tf similarity index 100% rename from released/discovery_center/mission_4371/step2/output.tf rename to released/discovery_center/mission_4371/step2/outputs.tf diff --git a/released/discovery_center/mission_4441/step1/outputs.tf b/released/discovery_center/mission_4441/step1/outputs.tf index e119f441..ade64bd3 100644 --- a/released/discovery_center/mission_4441/step1/outputs.tf +++ b/released/discovery_center/mission_4441/step1/outputs.tf @@ -18,9 +18,8 @@ output "cf_api_url" { description = "The Cloudfoundry API URL." } - output "cf_landscape_label" { - value = terraform_data.cf_landscape_label.output + value = btp_subaccount_environment_instance.cloudfoundry.landscape_label description = "The Cloudfoundry landscape label." } From e45c40f22503689224eacebf05fb2bfa3416ecdd Mon Sep 17 00:00:00 2001 From: Markus Balsam Date: Mon, 22 Jul 2024 16:26:08 +0200 Subject: [PATCH 2/2] Update main.tf --- released/discovery_center/mission_3239/main.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/released/discovery_center/mission_3239/main.tf b/released/discovery_center/mission_3239/main.tf index 5dadc1e6..192d50eb 100644 --- a/released/discovery_center/mission_3239/main.tf +++ b/released/discovery_center/mission_3239/main.tf @@ -53,7 +53,7 @@ resource "btp_subaccount_environment_instance" "cf" { environment_type = "cloudfoundry" service_name = "cloudfoundry" plan_name = "standard" - landscape_label = null_resource.cache_target_environment.triggers.label + landscape_label = terraform_data.cf_landscape_label.output parameters = jsonencode({ instance_name = local.project_subaccount_cf_org