Terraform Cdk Versions Save

Define infrastructure resources using programming constructs and provision them using HashiCorp Terraform

v0.19.0

7 months ago

Breaking changes

Minimum required Node.js version updated to 18.12

Since the long-term support for Node.js 16 ended on 2023-09-11, we updated our minimum compatible Node.js version to 18.12.

Potential provider naming collision with instance function moveTo on TerraformResource

We have added support for resource refactoring and renaming with the addition of the instance function moveTo on TerraformResource. We forsee the potential for naming collision with providers using moveTo as an attribute. In instances where provider bindings fail to compile due to the collision, regenerate your provider bindings and replace the provider related usage of moveTo to moveToAttribute in your configuration if applicable.

Java: codeMakerOutput needs to be set to a company identifier

We did not honor the codeMakerOutput setting in the cdktf.json previously, this is fixed now. To have no changes in the generated code you can set codeMakerOutput: "imports". If you like, you can now set it to your company name, e.g. codeMakerOutput: "com.hashicorp" so that the provider is generated under the com.hashicorp.aws namespace for example. Omitting the codeMakerOutput will lead to the default value .gen being used and results in an error.

feat

  • feat(lib): add resource move functionality #3152
  • feat: add import capabilities to cdktf #2972
  • feat!: update minimum required Node.js version to 18.12 (LTS) #3181

fix

  • fix(provider-generator): java akamai provider generation #3185
  • fix: use codemaker output in java #3000

chore

  • chore(examples): change debian image version in gcp example #3186
  • chore: upgrade node-pty dependency to add support for Node.js 20 #3182
  • chore(deps): pin trusted workflows based on HashiCorp TSCCR #3180

v0.18.2

7 months ago

Fixes a bug in 0.18.1 that broke crash reporting due to a partial dependency upgrade.

fix

  • fix: Fix partial dependency update for Sentry #3172

v0.18.1

7 months ago

fix

  • fix(docs): Fix typo in example of using TFVAR to set TerraformVariable #3116
  • fix(provider-generator): make sanitize comments function robust against diverse inputs #3131
  • fix(cli): fix help template spelling #3146
  • fix(cli): ensure terraform output fails with a proper error #3135
  • fix: make sure noColor option is honored #3138
  • fix(hcl2cdk): Try to fix TF checksum errors in tests by running them in band #3163
  • fix: use whl to install local python #3119
  • fix: fix Github workflow caches to restore successfully more often #3154
  • fix: set specific copywrite tool version to fix CI #3150
  • fix: unpin version of copywrite #3151

chore

  • chore: Upgrade docker image to use Node 18 #3107
  • chore: fix passing additional providers #3092
  • chore(docs): fix grammar and spelling on Performance page #3098
  • chore: fix typo #3091
  • chore(cli): fixes typo (#3120) #3121
  • chore: fix typo in registry workflow #3100
  • chore: fix remove-waiting-on-answer workflow #3097
  • chore: ensure GitHub treats us as a TypeScript project #3099
  • chore: update registry tool #3101
  • chore: update dependencies for @cdktf/commons #3096
  • chore: update cdktf version #3090
  • chore: remove obsolete comment #3137

refactor

  • refactor: move schema reading logic into package #3124

v0.18.0

9 months ago

chore

  • chore: Disable windows integration tests temporarily #3086
  • chore: update jsii-srcmak #3081
  • chore: fix assertion of java tests #3079
  • chore: add wget #3075
  • chore: use gh cli to create PRs #3074
  • chore(deps): roll back trusted workflow updates #3073
  • chore: add gradle as a dependency for our tests #3066
  • chore: new lookup functionality changes assertion #3065
  • chore: update terraform versions we test again #3064
  • chore: add link to performance page #3060
  • chore(examples): update TS examples to use explicit imports #3053
  • chore: update tfe docs as well #3050
  • chore: remove waiting-on-answer label on comments #3046
  • chore(deps): pin trusted workflows based on HashiCorp TSCCR #3040
  • chore: add workflow to rollout provider documentation #3039
  • chore: clean up code a bit #3037
  • chore: fix links in README #3016

fix

  • fix: provider add java integration test failures due to test setup #3083
  • fix: Gradle related provider add/list/upgrade #3080
  • fix(cli): cdktf debug to read gradle package versions #3077
  • fix(provider-generator): Handle */ in docstrings better, try 3 #3076
  • fix(lib): improve error message for passing an app to a construct #3062
  • fix(tests): remove only in test suite :sweat_smile: #3055
  • fix: install pipenv in Docker #3052
  • fix: install python3-venv and pin base image #3049
  • fix: correctly handle if version constraint is defined as star #3045
  • fix: fix single quote escaping #3018
  • fix(hcl2cdk): correctly keep escape sequences for interpolations in template expressions #3017
  • fix(examples): Properly set the Aspect on the stack instead of on the S3Bucket only #3003

feat

  • feat(hcl2cdk): use Fn.lookupNested() instead of propertyAccess() #3056
  • feat(cli): move java template to gradle #3048
  • feat(cli): support gradle projects in provider add and list #3047
  • feat(docs): Link Registry docs blog post #3043
  • feat: remove root-level import of all modules in python #3030
  • feat(provider-generator): handle 'tuple' type for variable #2964

Breaking changes

Python performance improvements disable root-level provider imports

When using a Provider in python one could previously import the resource and data source namespaces on the root level. This is no longer possible and the namespaces must be imported through specifying the paht in the import. The syntax was supported before as well, so you can change your code within 0.17.x and then upgrade to 0.18.x.

Before:

from constructs import Construct
from cdktf import App, TerraformStack
from imports.aws import provider, sns_topic, lambda_function, iam_role

class MyStack(TerraformStack):
    def __init__(self, scope: Construct, ns: str):
        super().__init__(scope, ns)

        provider.AwsProvider(self, 'Aws', region='eu-central-1')

        sns_topic.SnsTopic(self, 'Topic', display_name='my-first-sns-topic')
        role = iam_role.IamRole(self, 'Role', name='lambda-role',
                       assume_role_policy='{}')
        lambda_function.LambdaFunction(self, 'Lambda', function_name='my-first-lambda-function',
                       role=role.arn, handler='index.handler', runtime='python3.6')

app = App()
MyStack(app, "before-change")
app.synth()

After:

from constructs import Construct
from cdktf import App, TerraformStack
from imports.aws.provider import AwsProvider
from imports.aws.sns_topic import SnsTopic
from imports.aws.lambda_function import LambdaFunction
from imports.aws.iam_role import IamRole

class MyStack(TerraformStack):
    def __init__(self, scope: Construct, ns: str):
        super().__init__(scope, ns)

        AwsProvider(self, 'Aws', region='eu-central-1')

        SnsTopic(self, 'Topic', display_name='my-first-sns-topic')
        role = IamRole(self, 'Role', name='lambda-role',
                       assume_role_policy='{}')
        LambdaFunction(self, 'Lambda', function_name='my-first-lambda-function',
                       role=role.arn, handler='index.handler', runtime='python3.6')


app = App()
MyStack(app, "after-change")
app.synth()

v0.17.3

9 months ago

fix

  • fix: don't cross package boundaries for templates #3029
  • fix: use local NPM registry for running integration tests on unix systems #3031
  • fix: trying to fix tsc error by updating how we invoke ts projects #3033
  • fix(docs): python docs for aspect #3002

chore

  • chore: update vercel.json #3028

v0.17.2

9 months ago

feat

  • feat(cli): allow skipping synth #2993

fix

  • fix(provider-generator): wrap dynamic block iterator .key and .value in Token.asString as simply concatenating it won't work in non-TS languages #3014
  • fix: remove old lerna option causing it to fail when building a matrix in CI runs #3004
  • fix: quote files in shared workflows #2994
  • fix: let workflow checkout different repositories #2991
  • fix(provider-generator): sanitize all comments #2990

chore

  • chore: fix link to examples #3015
  • chore: build example script should show stdout and stderr #3013
  • chore: retry pushing converted code in registry conversion #2999
  • chore: Convert should use a typescript project to convert within #2992
  • chore: update cdk.tf links #2989
  • chore: add registry translation workflow #2958

v0.17.1

10 months ago

fix

  • fix: Handle */ sequences within variable descriptions and defaults for variables in modules #2986
  • fix: Upgrade @inquirer/prompts to resolve #2952 #2977
  • fix(tests): update integration test snapshot #2962
  • fix(cli): catch possible errors when trying to open a url #2961
  • fix(cli): Support PNPM when retrieving package dependency information #2959
  • fix(hcl2cdk): parse handling of null providers and aliases #2947
  • fix(hcl2cdk): use correct import path per language #2935
  • fix: do not always overwrite global.performance #2922

chore

  • chore(deps): upgrade semver version #2981
  • chore(docs): update doc links to new URLs #2979
  • chore: Add regression test for input on init #2978
  • chore: Update diagram in docs with new provider count #2974
  • chore: trigger project board update when issues modified #2973
  • chore: remove project board update script #2970
  • chore: use resource name only unless conflict #2956
  • chore: remove dependency updates #2950
  • chore: correct constructs docs "Through Validations" example #2927

feat

  • feat: Specific imports for convert #2946
  • feat: allow partial snippet translation #2920

v0.17.0

11 months ago

feat

  • feat(provider-generator): allow removing big, cost intensive structures #2932
  • feat(cli): add flag to display memory / time used for get and synth #2914
  • feat(cli): Improve telemetry reporting #2840
  • feat: make testing more resilient towards usage with app.synth #2762
  • feat(provider-generator): Add docstring to main class generated for modules #2589

fix

  • fix(cli): exit ink app when done synthesizing #2933
  • fix(lib): Support Computed List<List> #2850
  • fix(cli): Give hint when cdktf synth failed to create config #2714
  • fix(cli): Always run init, but selectively skip locking providers #2617

chore

  • chore: remove existing feature flags #2937
  • chore: remove legacy comment #2938
  • chore: pin all workflows after update #2926
  • chore: remove PR sizing #2925
  • chore: remove update snapshots CI job #2924
  • chore: fix CODEOWNERS #2921
  • chore: add merge queue and remove timechart #2909
  • chore(hcl2cdk): add testing infrastructure for convert in Python & CSharp #2716

refactor

  • refactor: exit after cdktf project commands finishes #2934
  • refactor(cli): upgrade inquirer to @inquirer/prompts #2853

v0.16.3

11 months ago

In 0.16.2 the release to maven failed, we fixed the issue and release this version so that maven is included in the release.

v0.16.2

11 months ago

fix

  • fix(provider-generator): remove duplicates between wrapper classes and interfaces generated from provider schemas #2895
  • fix(cli): run terraform init in serial so no text file is busy in the cache #2843
  • fix(cli): buffer the output from the Terraform CLI and only forward output that has been terminated by a newline #2844
  • fix(cli): fix no-color flag passing #2845
  • fix(hcl2cdk): Support conversion of functions that have variate arguments at the end #2833

chore

  • chore: Mock synth to make parallelism test fail less #2831
  • chore: Refactor hcl2cdk to read nicer #2826