From 612f43b714802876aa4e56c36ed2804a063e7fbe Mon Sep 17 00:00:00 2001 From: Victor San Kho Lin Date: Tue, 8 Sep 2020 18:24:55 +1000 Subject: [PATCH] Fixed umccrise cdk jsii cross-stack resource references * With latest cdk version, it does not like to import external fragments i.e. `cb.Project.from_project_name(...)` return object fragment from jsii reflection. Hence, not resolving full object state. * Related https://github.com/aws/aws-cdk/issues/10234 --- cdk/apps/umccrise/app.py | 3 ++- cdk/apps/umccrise/stacks/cicd.py | 5 +++++ cdk/apps/umccrise/stacks/slack.py | 7 +------ 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/cdk/apps/umccrise/app.py b/cdk/apps/umccrise/app.py index 76de48b9..d9e51bf9 100644 --- a/cdk/apps/umccrise/app.py +++ b/cdk/apps/umccrise/app.py @@ -93,7 +93,7 @@ common_dev_props, env=aws_env ) -CICDStack( +cicd = CICDStack( app, cicd_dev_props['namespace'], cicd_dev_props, @@ -112,6 +112,7 @@ env=aws_env ) slack_dev_props['ecr_name'] = common.ecr_name +slack_dev_props['cb_project'] = cicd.cb_project CodeBuildLambdaStack( app, slack_dev_props['namespace'], diff --git a/cdk/apps/umccrise/stacks/cicd.py b/cdk/apps/umccrise/stacks/cicd.py index 7328fdad..9ddb0d21 100644 --- a/cdk/apps/umccrise/stacks/cicd.py +++ b/cdk/apps/umccrise/stacks/cicd.py @@ -48,3 +48,8 @@ def __init__(self, scope: core.Construct, id: str, props, **kwargs) -> None: iam.ManagedPolicy.from_aws_managed_policy_name('AmazonEC2ContainerRegistryPowerUser') ) refdata.grant_read(cb_project) + self._cb_project = cb_project + + @property + def cb_project(self): + return self._cb_project diff --git a/cdk/apps/umccrise/stacks/slack.py b/cdk/apps/umccrise/stacks/slack.py index 3c477442..4c463b4b 100644 --- a/cdk/apps/umccrise/stacks/slack.py +++ b/cdk/apps/umccrise/stacks/slack.py @@ -48,12 +48,7 @@ def __init__(self, scope: core.Construct, id: str, props, **kwargs) -> None: ################################################################################ # Create a reference to the UMCCRise CodeBuild project - # TODO: should probably use cross-stack resource references - cb_project = cb.Project.from_project_name( - self, - id='UmccriseCodeBuildProject', - project_name=props['codebuild_project_name'] - ) + cb_project = props['cb_project'] ################################################################################ # Create an SNS topic to receive CodeBuild state change events