Skip to content

Adopt DC mission 4441 (SAP Build Code) to correspond to Booster #261

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
Jul 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion released/discovery_center/mission_4441/step1/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,6 @@ To deploy the resources you must:
```bash
terraform apply -var-file="sample.tfvars"
```
```

## In the end

Expand Down
53 changes: 39 additions & 14 deletions released/discovery_center/mission_4441/step1/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -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({
Expand Down Expand Up @@ -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" {
Expand Down Expand Up @@ -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]
}

Expand All @@ -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]
}

# ------------------------------------------------------------------------------------------------------
Expand All @@ -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
# ------------------------------------------------------------------------------------------------------
Expand All @@ -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"
Expand All @@ -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"
Expand Down
4 changes: 2 additions & 2 deletions released/discovery_center/mission_4441/step1/sample.tfvars
Original file line number Diff line number Diff line change
Expand Up @@ -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"]
147 changes: 104 additions & 43 deletions released/discovery_center/mission_4441/step2/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -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" {
Expand All @@ -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
}

# ------------------------------------------------------------------------------------------------------
Expand Down Expand Up @@ -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
# ------------------------------------------------------------------------------------------------------
Expand Down