Skip to content

Commit

Permalink
refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
morga471 committed Feb 19, 2026
1 parent f129f76 commit b512359
Show file tree
Hide file tree
Showing 39 changed files with 200 additions and 258 deletions.
25 changes: 0 additions & 25 deletions common/availabilty_zones.tf

This file was deleted.

5 changes: 0 additions & 5 deletions common/base_settings.tf

This file was deleted.

16 changes: 0 additions & 16 deletions common/base_tags.tf

This file was deleted.

2 changes: 0 additions & 2 deletions common/locals.tf

This file was deleted.

4 changes: 0 additions & 4 deletions common/main.tf

This file was deleted.

43 changes: 0 additions & 43 deletions common/resources.tf

This file was deleted.

5 changes: 0 additions & 5 deletions common/variables.common.availability_zones.tf

This file was deleted.

20 changes: 0 additions & 20 deletions common/variables.common.tf

This file was deleted.

59 changes: 0 additions & 59 deletions common/variables.parameters.tf

This file was deleted.

1 change: 0 additions & 1 deletion common/version.tf

This file was deleted.

52 changes: 0 additions & 52 deletions ec2/README.md

This file was deleted.

12 changes: 11 additions & 1 deletion common/data.tf → modules/ec2/data.tf
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,18 @@ data "aws_servicecatalog_provisioning_artifacts" "this" {
product_id = local.product_id
}

data "aws_availability_zones" "zones" {
state = "available"
}

data "aws_availability_zone" "zone" {
for_each = toset(data.aws_availability_zones.zones.names)
state = "available"
name = each.key
}

data "external" "portfolio" {
program = ["bash", "-c", "aws servicecatalog list-portfolios --region ${local.region} --query \"PortfolioDetails[?contains(DisplayName, 'Service Portfolio for csvd-dev account')]|[0]|{id: Id}\" --output json"]
program = ["bash", "-c", "aws servicecatalog list-portfolios --region ${local.region} --query \"PortfolioDetails[?contains(DisplayName, 'Service Portfolio for')]|[0]|{id: Id}\" --output json"]
}

data "external" "product" {
Expand Down
52 changes: 35 additions & 17 deletions common/defaults.tf → modules/ec2/locals.tf
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
locals {
vpc_id = data.aws_vpc.vpc.id
az_name = data.aws_subnet.subnets[sort(data.aws_subnets.subnets.ids)[0]].availability_zone

account_id = data.aws_caller_identity.current.account_id
az_name = data.aws_subnet.subnets[sort(data.aws_subnets.subnets.ids)[0]].availability_zone
partition = data.aws_partition.current.partition
region = data.aws_region.current.id
vpc_id = data.aws_vpc.vpc.id

# Use provided portfolio_id or fall back to external data source lookup
portfolio_id = var.portfolio_id != null ? var.portfolio_id : try(data.external.portfolio.result.id, null)

Expand All @@ -21,20 +24,20 @@ locals {

# Build default parameters from module variables
default_parameters = {
ProjectName = var.project_name
VpcId = local.vpc_id
AZName = local.az_name
InstanceType = var.instance_type
NameTag = var.provisioned_product_name
OSName = var.os_name
Creator = var.creator
ContactEmail = var.contact_email
IncPocEmail = var.inc_poc_email
RequiresBackup = var.requires_backup
PowerSchedule = var.power_schedule
FISMAID = var.fisma_id
ProjectName = var.project_name
VpcId = local.vpc_id
AZName = local.az_name
InstanceType = var.instance_type
NameTag = var.provisioned_product_name
OSName = var.os_name
Creator = var.creator
ContactEmail = var.contact_email
IncPocEmail = var.inc_poc_email
RequiresBackup = var.requires_backup
PowerSchedule = var.power_schedule
FISMAID = var.fisma_id
}

# Merge defaults with user-provided parameters (user params override defaults)
parameters = merge(
local.default_parameters,
Expand All @@ -49,4 +52,19 @@ locals {
}
if value != "" # Only include non-empty values
]
}

standard_tags = {
ManagedBy = "Terraform"
Module = local.module_name
}

enforced_tags = merge(
local.standard_tags,
var.enforced_tags
)

tags = merge(
local.enforced_tags,
var.tags
)
}
48 changes: 48 additions & 0 deletions modules/ec2/main.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Product Submodule
#
# Provisions a Service Catalog product
# using a pre-configured portfolio and product

resource "aws_servicecatalog_provisioned_product" "this" {
name = var.provisioned_product_name
product_id = local.product_id
provisioning_artifact_id = local.provisioning_artifact_id
region = local.region
path_id = var.path_id
accept_language = var.accept_language
ignore_errors = var.ignore_errors
notification_arns = var.notification_arns
retain_physical_resources = var.retain_physical_resources

dynamic "provisioning_parameters" {
for_each = local.provisioning_parameters
content {
key = provisioning_parameters.value.key
value = provisioning_parameters.value.value
}
}

dynamic "stack_set_provisioning_preferences" {
for_each = var.stack_set_provisioning_preferences != null ? [var.stack_set_provisioning_preferences] : []
content {
accounts = try(stack_set_provisioning_preferences.value.accounts, null)
failure_tolerance_count = try(stack_set_provisioning_preferences.value.failure_tolerance_count, null)
failure_tolerance_percentage = try(stack_set_provisioning_preferences.value.failure_tolerance_percentage, null)
max_concurrency_count = try(stack_set_provisioning_preferences.value.max_concurrency_count, null)
max_concurrency_percentage = try(stack_set_provisioning_preferences.value.max_concurrency_percentage, null)
regions = try(stack_set_provisioning_preferences.value.regions, null)
}
}

tags = local.tags

timeouts {
create = var.timeout
update = var.timeout
delete = var.timeout
}

depends_on = [
data.aws_servicecatalog_provisioning_artifacts.this
]
}
File renamed without changes.
Loading

0 comments on commit b512359

Please sign in to comment.