diff --git a/released/discovery_center/mission_4441/step1/README.md b/released/discovery_center/mission_4441/step1/README.md index b606c4e0..be3eea71 100644 --- a/released/discovery_center/mission_4441/step1/README.md +++ b/released/discovery_center/mission_4441/step1/README.md @@ -53,7 +53,6 @@ To deploy the resources you must: ```bash terraform apply -var-file="sample.tfvars" ``` - ``` ## In the end diff --git a/released/discovery_center/mission_4441/step1/main.tf b/released/discovery_center/mission_4441/step1/main.tf index f998132c..b3505978 100644 --- a/released/discovery_center/mission_4441/step1/main.tf +++ b/released/discovery_center/mission_4441/step1/main.tf @@ -40,12 +40,19 @@ resource "terraform_data" "cf_landscape_label" { # ------------------------------------------------------------------------------------------------------ # Create the Cloud Foundry environment instance # ------------------------------------------------------------------------------------------------------ +resource "btp_subaccount_entitlement" "cloudfoundry" { + subaccount_id = btp_subaccount.dc_mission.id + service_name = "cloudfoundry" + plan_name = "build-code" + amount = 1 +} + resource "btp_subaccount_environment_instance" "cloudfoundry" { subaccount_id = btp_subaccount.dc_mission.id name = "cf-${random_uuid.uuid.result}" environment_type = "cloudfoundry" service_name = "cloudfoundry" - plan_name = "standard" + plan_name = "build-code" landscape_label = terraform_data.cf_landscape_label.output parameters = jsonencode({ @@ -151,6 +158,7 @@ resource "btp_subaccount_entitlement" "build_code" { subaccount_id = btp_subaccount.dc_mission.id service_name = "build-code" plan_name = "standard" + amount = 1 } # Subscribe resource "btp_subaccount_subscription" "build_code" { @@ -178,19 +186,19 @@ resource "btp_subaccount_subscription" "sapappstudio" { } # ------------------------------------------------------------------------------------------------------ -# Setup SAPLaunchpad (SAP Build Work Zone, standard edition) +# Setup SAPLaunchpad (SAP Build Work Zone, foundation edition) # ------------------------------------------------------------------------------------------------------ # Entitle resource "btp_subaccount_entitlement" "sap_launchpad" { subaccount_id = btp_subaccount.dc_mission.id service_name = "SAPLaunchpad" - plan_name = "standard" + plan_name = "foundation" } # Subscribe resource "btp_subaccount_subscription" "sap_launchpad" { subaccount_id = btp_subaccount.dc_mission.id app_name = "SAPLaunchpad" - plan_name = "standard" + plan_name = "foundation" depends_on = [btp_subaccount_entitlement.sap_launchpad] } @@ -212,20 +220,20 @@ resource "btp_subaccount_subscription" "cicd_app" { } # ------------------------------------------------------------------------------------------------------ -# Setup feature-flags-dashboard (Feature Flags Service) +# Setup alm-ts (Cloud Transport Management) # ------------------------------------------------------------------------------------------------------ # Entitle -resource "btp_subaccount_entitlement" "feature_flags_dashboard" { +resource "btp_subaccount_entitlement" "alm_ts" { subaccount_id = btp_subaccount.dc_mission.id - service_name = "feature-flags-dashboard" - plan_name = "dashboard" + service_name = "alm-ts" + plan_name = "build-code" } # Subscribe -resource "btp_subaccount_subscription" "feature_flags_dashboard" { +resource "btp_subaccount_subscription" "alm_ts" { subaccount_id = btp_subaccount.dc_mission.id - app_name = "feature-flags-dashboard" - plan_name = "dashboard" - depends_on = [btp_subaccount_entitlement.feature_flags_dashboard] + app_name = "alm-ts" + plan_name = "build-code" + depends_on = [btp_subaccount_subscription.build_code, btp_subaccount_entitlement.alm_ts] } # ------------------------------------------------------------------------------------------------------ @@ -245,6 +253,23 @@ resource "btp_subaccount_subscription" "sdm-web" { depends_on = [btp_subaccount_subscription.build_code, btp_subaccount_entitlement.sdm-web] } +# ------------------------------------------------------------------------------------------------------ +# Setup feature-flags-dashboard (Feature Flags Service) +# ------------------------------------------------------------------------------------------------------ +# Entitle +resource "btp_subaccount_entitlement" "feature_flags_dashboard" { + subaccount_id = btp_subaccount.dc_mission.id + service_name = "feature-flags-dashboard" + plan_name = "dashboard" +} +# Subscribe +resource "btp_subaccount_subscription" "feature_flags_dashboard" { + subaccount_id = btp_subaccount.dc_mission.id + app_name = "feature-flags-dashboard" + plan_name = "dashboard" + depends_on = [btp_subaccount_entitlement.feature_flags_dashboard] +} + # ------------------------------------------------------------------------------------------------------ # USERS AND ROLES # ------------------------------------------------------------------------------------------------------ @@ -268,7 +293,7 @@ resource "btp_subaccount_role_collection" "build_code_administrator" { name = role.name role_template_app_id = role.app_id role_template_name = role.role_template_name - } if contains(["Business_Application_Studio_Administrator", "Administrator", "FeatureFlags_Dashboard_Administrator", "RegistryAdmin"], role.role_template_name) + } if contains(["Business_Application_Studio_Administrator", "Administrator", "FeatureFlags_Dashboard_Administrator", "RegistryAdmin", "SDM_Admin", "SDM_BusinessAdmin", "SDM_MigrationAdmin", "SuperAdmin", "SDMWeb_Admin", "SDMWeb_Migration"], role.role_template_name) ] } # Assign users to the role collection "Build Code Administrator" @@ -294,7 +319,7 @@ resource "btp_subaccount_role_collection" "build_code_developer" { name = role.name role_template_app_id = role.app_id role_template_name = role.role_template_name - } if contains(["Business_Application_Studio_Developer", "Developer", "FeatureFlags_Dashboard_Auditor", "RegistryDeveloper"], role.role_template_name) + } if contains(["Business_Application_Studio_Developer", "Developer", "FeatureFlags_Dashboard_Auditor", "RegistryDeveloper", "SDM_User", "Viewer", "Workzone_User", "SDMWeb_User"], role.role_template_name) ] } # Assign users to the role collection "Build Code Developer" diff --git a/released/discovery_center/mission_4441/step1/sample.tfvars b/released/discovery_center/mission_4441/step1/sample.tfvars index 8947e2e4..47e68731 100644 --- a/released/discovery_center/mission_4441/step1/sample.tfvars +++ b/released/discovery_center/mission_4441/step1/sample.tfvars @@ -23,7 +23,7 @@ create_tfvars_file_for_step2 = true # ------------------------------------------------------------------------------------------------------ subaccount_admins = ["another.user@test.com"] cf_org_admins = ["another.user@test.com"] -cf_space_manager = ["another.user@test.com", "you@test.com"] -cf_space_developer = ["another.user@test.com", "you@test.com"] +cf_space_managers = ["another.user@test.com", "you@test.com"] +cf_space_developers = ["another.user@test.com", "you@test.com"] build_code_admins = ["another.user@test.com", "you@test.com"] build_code_developers = ["another.user@test.com", "you@test.com"] diff --git a/released/discovery_center/mission_4441/step2/main.tf b/released/discovery_center/mission_4441/step2/main.tf index 33803ff4..7e2cba6d 100644 --- a/released/discovery_center/mission_4441/step2/main.tf +++ b/released/discovery_center/mission_4441/step2/main.tf @@ -46,6 +46,7 @@ resource "btp_subaccount_entitlement" "mobile_services" { subaccount_id = var.subaccount_id service_name = "mobile-services" plan_name = "build-code" + amount = 1 } # Create the service instance data "cloudfoundry_service" "mobile_services" { @@ -68,90 +69,120 @@ resource "cloudfoundry_service_credential_binding" "mobile_services" { } # ------------------------------------------------------------------------------------------------------ -# Setup cloud-logging +# Setup transport (standard) # ------------------------------------------------------------------------------------------------------ # Entitle -resource "btp_subaccount_entitlement" "cloud_logging" { +resource "btp_subaccount_entitlement" "transport_standard" { subaccount_id = var.subaccount_id - service_name = "cloud-logging" - plan_name = "build-code" + service_name = "transport" + plan_name = "standard" } # Create the service instance -data "cloudfoundry_service" "cloud_logging" { - name = "cloud-logging" - depends_on = [btp_subaccount_entitlement.cloud_logging] +data "cloudfoundry_service" "transport_standard" { + name = "transport" + depends_on = [btp_subaccount_entitlement.transport_standard] } -resource "cloudfoundry_service_instance" "cloud_logging" { - name = "default_cloud-logging" +resource "cloudfoundry_service_instance" "transport_standard" { + name = "default_transport_standard" space = cloudfoundry_space.dev.id type = "managed" - service_plan = data.cloudfoundry_service.cloud_logging.service_plans["build-code"] - depends_on = [cloudfoundry_space_role.space_manager, cloudfoundry_space_role.space_developer, cloudfoundry_org_role.organization_manager, btp_subaccount_entitlement.cloud_logging] + service_plan = data.cloudfoundry_service.transport_standard.service_plans["standard"] + depends_on = [cloudfoundry_space_role.space_manager, cloudfoundry_space_role.space_developer, cloudfoundry_org_role.organization_manager, btp_subaccount_entitlement.transport_standard] } # Create service key -resource "random_uuid" "service_key_cloud_logging" {} -resource "cloudfoundry_service_credential_binding" "cloud_logging" { +resource "random_uuid" "service_key_transport_standard" {} +resource "cloudfoundry_service_credential_binding" "transport_standard" { type = "key" - name = join("_", ["defaultKey", random_uuid.service_key_cloud_logging.result]) - service_instance = cloudfoundry_service_instance.cloud_logging.id + name = join("_", ["defaultKey", random_uuid.service_key_transport_standard.result]) + service_instance = cloudfoundry_service_instance.transport_standard.id } # ------------------------------------------------------------------------------------------------------ -# Setup alert-notification +# Setup transport (export) # ------------------------------------------------------------------------------------------------------ # Entitle -resource "btp_subaccount_entitlement" "alert_notification" { +resource "btp_subaccount_entitlement" "transport_export" { subaccount_id = var.subaccount_id - service_name = "alert-notification" - plan_name = "build-code" + service_name = "transport" + plan_name = "export" } # Create the service instance -data "cloudfoundry_service" "alert_notification" { - name = "alert-notification" - depends_on = [btp_subaccount_entitlement.alert_notification] +data "cloudfoundry_service" "transport_export" { + name = "transport" + depends_on = [btp_subaccount_entitlement.transport_export] } -resource "cloudfoundry_service_instance" "alert_notification" { - name = "default_alert-notification" +resource "cloudfoundry_service_instance" "transport_export" { + name = "default_transport_export" space = cloudfoundry_space.dev.id type = "managed" - service_plan = data.cloudfoundry_service.alert_notification.service_plans["build-code"] - depends_on = [cloudfoundry_space_role.space_manager, cloudfoundry_space_role.space_developer, cloudfoundry_org_role.organization_manager, btp_subaccount_entitlement.alert_notification] + service_plan = data.cloudfoundry_service.transport_export.service_plans["export"] + depends_on = [cloudfoundry_space_role.space_manager, cloudfoundry_space_role.space_developer, cloudfoundry_org_role.organization_manager, btp_subaccount_entitlement.transport_export] } # Create service key -resource "random_uuid" "service_key_alert_notification" {} -resource "cloudfoundry_service_credential_binding" "alert_notification" { +resource "random_uuid" "service_key_transport_export" {} +resource "cloudfoundry_service_credential_binding" "transport_export" { type = "key" - name = join("_", ["defaultKey", random_uuid.service_key_alert_notification.result]) - service_instance = cloudfoundry_service_instance.alert_notification.id + name = join("_", ["defaultKey", random_uuid.service_key_transport_export.result]) + service_instance = cloudfoundry_service_instance.transport_export.id } # ------------------------------------------------------------------------------------------------------ -# Setup transport +# Setup transport (operator) # ------------------------------------------------------------------------------------------------------ # Entitle -resource "btp_subaccount_entitlement" "transport" { +resource "btp_subaccount_entitlement" "transport_operator" { subaccount_id = var.subaccount_id service_name = "transport" - plan_name = "standard" + plan_name = "transport_operator" } # Create the service instance -data "cloudfoundry_service" "transport" { +data "cloudfoundry_service" "transport_operator" { name = "transport" - depends_on = [btp_subaccount_entitlement.transport] + depends_on = [btp_subaccount_entitlement.transport_operator] +} +resource "cloudfoundry_service_instance" "transport_operator" { + name = "default_transport_operator" + space = cloudfoundry_space.dev.id + type = "managed" + service_plan = data.cloudfoundry_service.transport_operator.service_plans["transport_operator"] + depends_on = [cloudfoundry_space_role.space_manager, cloudfoundry_space_role.space_developer, cloudfoundry_org_role.organization_manager, btp_subaccount_entitlement.transport_operator] +} +# Create service key +resource "random_uuid" "service_key_transport_operator" {} +resource "cloudfoundry_service_credential_binding" "transport_operator" { + type = "key" + name = join("_", ["defaultKey", random_uuid.service_key_transport_operator.result]) + service_instance = cloudfoundry_service_instance.transport_operator.id +} + +# ------------------------------------------------------------------------------------------------------ +# Setup cloud-logging +# ------------------------------------------------------------------------------------------------------ +# Entitle +resource "btp_subaccount_entitlement" "cloud_logging" { + subaccount_id = var.subaccount_id + service_name = "cloud-logging" + plan_name = "build-code" + amount = 1 +} +# Create the service instance +data "cloudfoundry_service" "cloud_logging" { + name = "cloud-logging" + depends_on = [btp_subaccount_entitlement.cloud_logging] } -resource "cloudfoundry_service_instance" "transport" { - name = "default_transport" +resource "cloudfoundry_service_instance" "cloud_logging" { + name = "default_cloud-logging" space = cloudfoundry_space.dev.id type = "managed" - service_plan = data.cloudfoundry_service.transport.service_plans["standard"] - depends_on = [cloudfoundry_space_role.space_manager, cloudfoundry_space_role.space_developer, cloudfoundry_org_role.organization_manager, btp_subaccount_entitlement.transport] + service_plan = data.cloudfoundry_service.cloud_logging.service_plans["build-code"] + depends_on = [cloudfoundry_space_role.space_manager, cloudfoundry_space_role.space_developer, cloudfoundry_org_role.organization_manager, btp_subaccount_entitlement.cloud_logging] } # Create service key -resource "random_uuid" "service_key_transport" {} -resource "cloudfoundry_service_credential_binding" "transport" { +resource "random_uuid" "service_key_cloud_logging" {} +resource "cloudfoundry_service_credential_binding" "cloud_logging" { type = "key" - name = join("_", ["defaultKey", random_uuid.service_key_transport.result]) - service_instance = cloudfoundry_service_instance.transport.id + name = join("_", ["defaultKey", random_uuid.service_key_cloud_logging.result]) + service_instance = cloudfoundry_service_instance.cloud_logging.id } # ------------------------------------------------------------------------------------------------------ @@ -205,6 +236,36 @@ resource "cloudfoundry_service_credential_binding" "feature_flags" { service_instance = cloudfoundry_service_instance.feature_flags.id } +# ------------------------------------------------------------------------------------------------------ +# Setup alert-notification +# ------------------------------------------------------------------------------------------------------ +# Entitle +resource "btp_subaccount_entitlement" "alert_notification" { + subaccount_id = var.subaccount_id + service_name = "alert-notification" + plan_name = "build-code" + amount = 1 +} +# Create the service instance +data "cloudfoundry_service" "alert_notification" { + name = "alert-notification" + depends_on = [btp_subaccount_entitlement.alert_notification] +} +resource "cloudfoundry_service_instance" "alert_notification" { + name = "default_alert-notification" + space = cloudfoundry_space.dev.id + type = "managed" + service_plan = data.cloudfoundry_service.alert_notification.service_plans["build-code"] + depends_on = [cloudfoundry_space_role.space_manager, cloudfoundry_space_role.space_developer, cloudfoundry_org_role.organization_manager, btp_subaccount_entitlement.alert_notification] +} +# Create service key +resource "random_uuid" "service_key_alert_notification" {} +resource "cloudfoundry_service_credential_binding" "alert_notification" { + type = "key" + name = join("_", ["defaultKey", random_uuid.service_key_alert_notification.result]) + service_instance = cloudfoundry_service_instance.alert_notification.id +} + # ------------------------------------------------------------------------------------------------------ # USERS AND ROLES # ------------------------------------------------------------------------------------------------------