Skip to content

Commit

Permalink
look up portfolio and product ids
Browse files Browse the repository at this point in the history
  • Loading branch information
morga471 committed Feb 13, 2026
1 parent aac75a1 commit 8fa06f9
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 6 deletions.
8 changes: 8 additions & 0 deletions common/data.tf
Original file line number Diff line number Diff line change
Expand Up @@ -40,3 +40,11 @@ data "aws_servicecatalog_provisioning_artifacts" "this" {
accept_language = var.accept_language
product_id = var.product_id
}

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

data "external" "product" {
program = ["bash", "-c", "aws servicecatalog search-products --region ${local.region} --filters 'SearchQuery=EC2 Instance' --query 'ProductViewSummaries[?contains(Name, `RHEL`)] | [0] | {id: ProductId}' --output json"]
}
13 changes: 7 additions & 6 deletions common/defaults.tf
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
locals {
vpc_id = data.aws_vpc.vpc.id
az_name = data.aws_subnet.subnets[sort(data.aws_subnets.subnets.ids)[0]].availability_zone

# 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)

# Portfolio ID is required - must be provided via var.portfolio_id
portfolio_id = var.portfolio_id

# Product ID is required - must be provided via var.product_id
product_id = var.product_id
# Use provided product_id or fall back to external data source lookup
product_id = var.product_id != null ? var.product_id : try(data.external.product.result.id, null)

# Get the latest provisioning artifact ID
latest_artifact_id = try(
Expand All @@ -22,7 +23,7 @@ locals {
default_parameters = {
ProjectName = var.project_name
VpcId = local.vpc_id
AZName = data.aws_subnet.subnets[sort(data.aws_subnets.subnets.ids)[0]].availability_zone
AZName = local.az_name
InstanceType = var.instance_type
OSName = var.os_name
Creator = var.creator
Expand Down

0 comments on commit 8fa06f9

Please sign in to comment.