Terraform Cdk Versions Save

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

v0.16.1

1 year ago

fix

  • 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

v0.16.0

1 year ago

Breaking changes

Update to .NET 6.0

We updated our C# template to .NET 6.0 as JSII updated recently and dropped support for netcoreapp3.1:

The runtime library for .NET & generated .NET bindings will no longer support netcoreapp3.1 after this release. Users are advised to upgrade their apps to use net6.0 or net7.0 instead.

from JSII v.1.76.0 release notes

Changes to Terraform function bindings

Terraform functions are now generated based on the JSON schema returned by the new metadata functions command which is going to be added to the Terraform CLI in version 1.4 (PR #32487, already available in v1.4.0-beta2).

The following new functions were introduced:

The following functions changed:

  • Fn.parseInt() is now Fn.parseint() to match the format of all other functions
  • Fn.mergeLists() does not exist anymore, use Fn.concat() instead
  • Fn.mergeMaps() does not exist anymore, use Fn.merge() instead

As part of this change, we use the same parameter names as Terraform which might require changing keyword arguments in Python.

Fn.join(",", [src.stringResource.result, src.stringResource.result])
Fn.join(separator=",", value=[src.stringResource.result, src.stringResource.result])

v0.15.5

1 year ago

fix

  • chore: update JSII to 1.75.0 #2653
  • fix(lib): zipmap arg validators #2633

v0.15.4

1 year ago

fix

  • fix(cli): Remove @types/node-fetch from dependencies as those take precedence over direct devDependencies on @node/types #2623

v0.15.3

1 year ago

chore

  • chore: Don't run terraform init when not required #2572
  • chore: additionally lock providers for linux only #2593
  • chore: refactor 'needs upgrade' #2570
  • chore: Update remaining Typescript documentation snippets #2564
  • chore: translate more csharp docs #2433
  • chore: translate rest of the docs to C# #2558
  • chore: run dotnet format #2559
  • chore: Update contributing #2479
  • chore: truly autoclose older GHA updater PRs #2546

fix

  • fix: rename CloudBackendProps to CloudBackendConfig in templates #2553
  • fix: switch back to offical image to fix issue with stale signature files #2588
  • fix: use correctly named syntax in comments #2562
  • fix(lib): Update special defaults #2523
  • fix(docs): camel -> snake case in resource escape hatches #2571
  • fix(docs): Go post mortem review feedback #2587
  • fix(docs): fix typo in CSharp example #2580
  • fix(docs): fix links to examples page #2574
  • fix(docs): add missing java remote backend example #2563
  • fix(docs): properties in create module example use snake case #2561

feat

  • feat: add cache flag for prettier to speed up subsequent runs #2556
  • feat: Add a wrap in stack optional param to cdktf convert #2539
  • feat(docs): Convert some code snippets in docs to Golang #2439
  • feat(docs): Translate Aspect example to Go #2445
  • feat(docs): Translate more examples to Go #2554
  • feat(docs): Translate more examples to Go #2560
  • feat(docs): Translate more examples to Go #2569
  • feat: also go through files not yet added to git #2567

v0.15.2

1 year ago

feat

  • feat: create a plan file for non-TFC runs #2531

fix

  • fix: cdktf login issues #2543
  • fix(lib): don't use Fn.set on tagged cloud backend #2536
  • fix(provider-generator): use class based map abstractions #2530

chore

  • chore: actually autoclose older GHA updater PRs #2542
  • chore: fill out homebrew pr body #2537
  • chore: support soft sentinel overrides #2485

v0.15.1

1 year ago

fix

  • fix(provider-generator): fix resources named 'provider' breaking the code generation #2504

chore

  • chore: autoclose older GHA updater PRs #2505

v0.15.0

1 year ago

Breaking changes

Renaming of *Options and *Props to *Config

We had several exports where the configuration passed to constructs or functions was using a class with a different suffix then Config. If you are using a language like C#, Java, Python, or Go you might have needed to specify these classes in your CDKTF application. To simplify the usage we changed every suffix to be Config, so if you currently use one of the others please rename them to use the Config suffix. No options were changed in the process, only the names were aligned.

This would be one example of the change to be made (this is in Java):

import software.constructs.Construct;
import com.hashicorp.cdktf.App;
import com.hashicorp.cdktf.TerraformStack;
import com.hashicorp.cdktf.CloudBackend;
-import com.hashicorp.cdktf.CloudBackendProps;
+import com.hashicorp.cdktf.CloudBackendConfig;
import com.hashicorp.cdktf.NamedCloudWorkspace;

    public static class Demo extends TerraformStack{

        public Demo(Construct scope, String id){
            super(scope, id);
-            new CloudBackend(this, CloudBackendProps.builder()
+            new CloudBackend(this, CloudBackendConfig.builder()
                    .organization("hashicorp")
                    .workspaces(new NamedCloudWorkspace("demo"))
                    .build()
            );

Notice: CDKTF 0.15 bumps minimum Terraform version to 1.2

CDKTF is bumping the minimum supported version of Terraform from 1.0 to 1.2 starting from CDKTF version 0.15. This change is necessary as CDKTF 0.15 uses the Terraform CLI for planning and applying changes for Terraform Cloud and Terraform Enterprise instead of the API used in version 0.14.

Terraform promises compatibility between all v1.x releases, so there shouldn't be any issues with this change. The only changes between these versions are bug fixes, and new feature additions.

Please open an issue if you encounter any issues or bugs with this change.

Deprecation: We deprecate the feature flags that go into the context field of the cdktf.json

CDKTF used to use feature flags to enable potentially breaking behaviors in a release. These are no longer needed since most of the changes we introduce from here can not be hidden behind feature flags. When the feature flags are removed, the behavior will be the same as this configuration:

{
  "context": {
    "excludeStackIdFromLogicalIds": "true",
    "allowSepCharsInLogicalIds": "true"
  }
}

feat

  • feat(cli): Add cdktf provider list command #2270
  • feat(cli): support -var and -var-file terraform flags #2468
  • feat(cli): add -no-color tag #2307
  • feat: enable non-escaping mode for tokens #2179
  • feat: use our own pre-built package for node-pty to have builds for Nodejs 19 available #2478
  • feat(docs): Document node-gyp errors if no precompiled binaries are available and the target system misses a native toolchain #2497

fix

  • fix(cli): don't enquote args as they will be escaped and end up in the calls to Terraform #2493
  • fix: detect destroys on windows / TF version #2486
  • fix(tests): change Options -> Config as per #2471 #2482
  • fix(cli): windows fixes #2480
  • fix: limit concurrency for integration tests to 10 for each windows and linux #2474
  • fix(tests): Make version more stable #2467
  • fix: use older SHA from jsii superchain docker image #2465
  • fix: fix go build in pipeline #2464
  • fix(cli): remove newlines from tokens during terraform login #2459
  • fix(cli): abort apply if not all variables are known #2455
  • fix: Expose provider matcher to jest #2448
  • fix: Adds environment to keys to preserve case #2446
  • fix: Allow git access for sentry cli in docker #2426
  • fix: add path: dist for npm and pypi #2410

chore

  • chore: create upgrade guide #2494
  • chore: increase parallel limit (10->30) to speed up integration tests #2487
  • chore: disable cron for project board #2484
  • chore(docs): fix some docs #2483
  • chore: fix typo in function name #2462
  • chore: add a notice for minimum supported version to changelog #2461
  • chore: fix broken GHA version updater #2453
  • chore: update CODEOWNERS #2444
  • chore(docs): running snippet update tool revealed an existing snippet that is not up-to-date #2440
  • chore: update JSII #2428
  • chore: Support custom endpoints #2427
  • chore: create TFC/TFE workspace using the Terraform CLI #2424
  • chore: switch to SHA-based workflow pins #2422
  • chore: Update all documentation examples for Typescript #2421
  • chore: remove long-running hooks #2418
  • chore: translate documentation to csharp #2417
  • chore: add a refactoring guide #2413
  • chore: fix homebrew deploy step #2412
  • chore: add TFE information to TFC docs #2407
  • chore: deprecate feature flags #2498
  • chore: document variable flags #2495

refactor

  • refactor: rename all *Props and *Options classes and interfaces to *Config #2471

v0.14.3

1 year ago

fix

  • fix: add completed tfc pending states #2398
  • fix: skip confirming on auto-apply enabled tfc workspaces #2397
  • fix(hcl2cdk): snapshot generated code instead of snapshotting that the function returns a promise #2392
  • fix: add required_version to json schema #2355

chore

  • chore: add provider-integration tests conditionally for PRs and to releases #2371
  • chore: increase operations per run of stale workflow #2363
  • chore: update github workflow actions #2361
  • chore(docs): Add Example for Complex input variables #2309
  • chore: add Terraform 1.3.4 to Docker container #2285

feat

  • feat(cli): prompt added in init - asks to use TFC when credentials are present #2386
  • feat(docs): document Token.nullValue() #2297

v0.14.2

1 year ago

Breaking changes

We split up our cdktf-cli package into cdktf-cli for the UI parts, utilizing @cdktf/cli-core for the functionality. If you previously relied on the internal cdktf-cli/lib entrypoint you should switch to @cdktf/cli-core. This was never an official API, but we want to mention it here in case it breaks for anyone.

chore

  • chore: skip hcl2cdk tests for now #2384
  • chore: Update Digital Team Files #2383
  • chore: move from pr target to pr #2381
  • chore: fix finalizing the Sentry release #2379
  • chore: update workflows for new workflow endpoint #2378
  • chore: disable python edge test #2369
  • chore: only trigger unit tests once #2362
  • chore: use secret #2358
  • chore: document go version #2351
  • chore: fix stale workflow #2343
  • chore: add build step to ci #2338
  • chore: add workflows to auto-close and lock stale issues and PRs #2335
  • chore: add expression paranthesis #2332
  • chore: dedupe concurrency prefix #2330
  • chore: npm-check-updates && yarn upgrade #2329
  • chore: improve release pipelines #2328
  • chore: add GH Action that labels PRs #2325
  • chore(docs): Update remote-backends.mdx #2324
  • chore: ensure we run all tests on dependency updates #2323
  • chore: re-add run url #2320
  • chore: limit concurrency on releases #2318
  • chore: fix sentry release script #2317
  • chore: fix typo #2316
  • chore: offboard checks from PRs to main #2315
  • chore(docs): prepare for code samples in multiple languages #2314
  • chore: run CI more selectively #2313
  • chore: make feature flag tests more resilient to provider updates #2312
  • chore: additional potential speedup experiments for hcl2cdk unit tests #2311
  • chore(tests): enable go provider add tests #2308
  • chore: run linting and prettier as part of CI #2304
  • chore(docs): translate hcl-interop examples to c# #2288
  • chore: add workflow to update our github actions #2283
  • chore(docs): translate functions examples to c# #2277
  • chore(docs): translate data-sources examples to c# #2276
  • chore(docs): translate aspects example to c# #2273
  • chore(docs): translate all examples to python #2186
  • chore(docs): Translate Documentation Snippets for Java #2183

feat

  • feat(examples): python upcloud server #2366

fix

  • fix: pin yargs types version #2364
  • fix: Transition to planned state after cost estimation and policy checks with TFC/TFE #2360
  • fix(cli): don't fail with UsageError when determining whether a provider is installed as a pre-built provider #2348
  • fix: scoped packages need a publish config to be published to npm #2347
  • fix: scoped packages need a publish config to be published to npm #2346
  • fix(docs): fix header indentation causing no page contents sidebar for this page #2299
  • fix(hcl2json): don't overwrite crypto if it's set already #2282
  • fix: Graceful failures when using cdktf with non-admin tokens #2258
  • fix: Prevent any release jobs from triggering if no release is required #2158

refactor

  • refactor(cli): parse json according to schema #2286
  • refactor: extract asset and constructs example into separate files #2275
  • refactor(cli): move cli library into seperate package #2253