onicagroup / runway

Simplify infrastructure/app testing/deployment

Home Page:https://runway.readthedocs.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[REQUEST] CDK Deployments to Support Context

wenindoubt opened this issue · comments

Is your feature request related to a problem? Please describe.
It would be nice if the runway configuration file supports additional CDK options, such as passing in context. For example, my cdk.json file looks like this:

{
  "app": "npx ts-node --prefer-ts-exts bin/app.ts",
  "watch": {
    "include": [
      "**"
    ],
    "exclude": [
      "README.md",
      "cdk*.json",
      "**/*.d.ts",
      "**/*.js",
      "tsconfig.json",
      "package*.json",
      "yarn.lock",
      "node_modules",
      "test"
    ]
  },
  "context": {
    "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": true,
    "@aws-cdk/core:stackRelativeExports": true,
    "@aws-cdk/aws-rds:lowercaseDbIdentifier": true,
    "@aws-cdk/aws-lambda:recognizeVersionProps": true,
    "@aws-cdk/aws-lambda:recognizeLayerVersion": true,
    "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": true,
    "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": true,
    "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": true,
    "@aws-cdk/core:checkSecretUsage": true,
    "@aws-cdk/aws-iam:minimizePolicies": true,
    "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": true,
    "@aws-cdk/core:validateSnapshotRemovalPolicy": true,
    "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": true,
    "@aws-cdk/aws-s3:createDefaultLoggingPolicy": true,
    "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": true,
    "@aws-cdk/aws-apigateway:disableCloudWatchRole": true,
    "@aws-cdk/core:enablePartitionLiterals": true,
    "@aws-cdk/core:target-partitions": [
      "aws",
      "aws-cn"
    ],
    "dev": {
      "AWSAccountID": "XXXXX",
      "Environment": "dev",
      "Regions": "us-west-2"
    },
    "devops": {
      "AWSAccountID": "XXXXX",
      "Environment": "prod",
      "Regions": "us-west-2"
    }
  }
}

Command to deploy:

npx cdk deploy --context config=dev

Describe the solution you'd like

  - name: CDK Infrastructure
    modules:
      - path: cdk/app
    environments:
      dev: true
    regions:
      - us-west-2
    context:  # something like this
      - config: dev  # something like this

It seems like something like this works:

  - name: CDK Infrastructure (devops)
    modules:
      - path: cdk/app
    environments:
      <<: *disable_all_environments
      devops: us-west-2
    regions:
      - us-west-2
    parameters:
      config: devops  # <-- this is the context that gets sent to CDK