github.com/adamar/terraform@v0.2.2-0.20141016210445-2e703afdad0e/CHANGELOG.md (about) 1 ## 0.3.1 (unreleased) 2 3 BUG FIXES: 4 5 * core: Remove panic case when applying with a plan that generates no 6 new state. [GH-403] 7 * core: Fix a hang that can occur with enough resources. [GH-410] 8 * core: Config validation will not error if the field is being 9 computed so the value is still unknown. 10 11 ## 0.3.0 (October 14, 2014) 12 13 FEATURES: 14 15 * **Modules**: Configuration can now be modularized. Modules can live on 16 GitHub, BitBucket, Git/Hg repos, HTTP URLs, and file paths. Terraform 17 automatically downloads/updates modules for you on request. 18 * **New Command: `init`**. This command initializes a Terraform configuration 19 from an existing Terraform module (also new in 0.3). 20 * **New Command: `destroy`**. This command destroys infrastructure 21 created with `apply`. 22 * Terraform will ask for user input to fill in required variables and 23 provider configurations if they aren't set. 24 * `terraform apply MODULE` can be used as a shorthand to quickly build 25 infrastructure from a module. 26 * The state file format is now JSON rather than binary. This allows for 27 easier machine and human read/write. Old binary state files will be 28 automatically upgraded. 29 * You can now specify `create_before_destroy` as an option for replacement 30 so that new resources are created before the old ones are destroyed. 31 * The `count` metaparameter can now contain interpolations (such as 32 variables). 33 * The current index for a resource with a `count` set can be interpolated 34 using `${count.index}`. 35 * Various paths can be interpolated with the `path.X` variables. For example, 36 the path to the current module can be interpolated using `${path.module}`. 37 38 IMPROVEMENTS: 39 40 * config: Trailing commas are now allowed for the final elements of lists. 41 * core: Plugins are loaded from `~/.terraform.d/plugins` (Unix) or 42 `%USERDATA%/terraform.d/plugins` (Windows). 43 * command/show: With no arguments, it will show the default state. [GH-349] 44 * helper/schema: Can now have default values. [GH-245] 45 * providers/aws: Tag support for most resources. 46 * providers/aws: New resource `db_subnet_group`. [GH-295] 47 * providers/aws: Add `map_public_ip_on_launch` for subnets. [GH-285] 48 * providers/aws: Add `iam_instance_profile` for instances. [GH-319] 49 * providers/aws: Add `internal` option for ELBs. [GH-303] 50 * providers/aws: Add `ssl_certificate_id` for ELB listeners. [GH-350] 51 * providers/aws: Add `self` option for security groups for ingress 52 rules with self as source. [GH-303] 53 * providers/aws: Add `iam_instance_profile` option to 54 `aws_launch_configuration`. [GH-371] 55 * providers/aws: Non-destructive update of `desired_capacity` for 56 autoscale groups. 57 * providers/aws: Add `main_route_table_id` attribute to VPCs. [GH-193] 58 * providers/consul: Support tokens. [GH-396] 59 * providers/google: Support `target_tags` for firewalls. [GH-324] 60 * providers/google: `google_compute_instance` supports `can_ip_forward` [GH-375] 61 * providers/google: `google_compute_disk` supports `type` to support disks 62 such as SSDs. [GH-351] 63 * provisioners/local-exec: Output from command is shown in CLI output. [GH-311] 64 * provisioners/remote-exec: Output from command is shown in CLI output. [GH-311] 65 66 BUG FIXES: 67 68 * core: Providers are validated even without a `provider` block. [GH-284] 69 * core: In the case of error, walk all non-dependent trees. 70 * core: Plugin loading from CWD works properly. 71 * core: Fix many edge cases surrounding the `count` meta-parameter. 72 * core: Strings in the configuration can escape double-quotes with the 73 standard `\"` syntax. 74 * core: Error parsing CLI config will show properly. [GH-288] 75 * core: More than one Ctrl-C will exit immediately. 76 * providers/aws: autoscaling_group can be launched into a vpc [GH-259] 77 * providers/aws: not an error when RDS instance is deleted manually. [GH-307] 78 * providers/aws: Retry deleting subnet for some time while AWS eventually 79 destroys dependencies. [GH-357] 80 * providers/aws: More robust destroy for route53 records. [GH-342] 81 * providers/aws: ELB generates much more correct plans without extranneous 82 data. 83 * providers/aws: ELB works properly with dynamically changing 84 count of instances. 85 * providers/aws: Terraform can handle ELBs deleted manually. [GH-304] 86 * providers/aws: Report errors properly if RDS fails to delete. [GH-310] 87 * providers/aws: Wait for launch configuration to exist after creation 88 (AWS eventual consistency) [GH-302] 89 90 ## 0.2.2 (September 9, 2014) 91 92 IMPROVEMENTS: 93 94 * providers/amazon: Add `ebs_optimized` flag. [GH-260] 95 * providers/digitalocean: Handle 404 on delete 96 * providers/digitalocean: Add `user_data` argument for creating droplets 97 * providers/google: Disks can be marked `auto_delete`. [GH-254] 98 99 BUG FIXES: 100 101 * core: Fix certain syntax of configuration that could cause hang. [GH-261] 102 * core: `-no-color` flag properly disables color. [GH-250] 103 * core: "~" is expanded in `-var-file` flags. [GH-273] 104 * core: Errors with tfvars are shown in console. [GH-269] 105 * core: Interpolation function calls with more than two args parse. [GH-282] 106 * providers/aws: Refreshing EIP from pre-0.2 state file won't error. [GH-258] 107 * providers/aws: Creating EIP without an instance/network won't fail. 108 * providers/aws: Refreshing EIP manually deleted works. 109 * providers/aws: Retry EIP delete to allow AWS eventual consistency to 110 detect it isn't attached. [GH-276] 111 * providers/digitalocean: Handle situations when resource was destroyed 112 manually. [GH-279] 113 * providers/digitalocean: Fix a couple scenarios where the diff was 114 incorrect (and therefore the execution as well). 115 * providers/google: Attaching a disk source (not an image) works 116 properly. [GH-254] 117 118 ## 0.2.1 (August 31, 2014) 119 120 IMPROVEMENTS: 121 122 * core: Plugins are automatically discovered in the executable directory 123 or pwd if named properly. [GH-190] 124 * providers/mailgun: domain records are now saved to state 125 126 BUG FIXES: 127 128 * core: Configuration parses when identifier and '=' have no space. [GH-243] 129 * core: `depends_on` with `count` generates the proper graph. [GH-244] 130 * core: Depending on a computed variable of a list type generates a 131 plan without failure. i.e. `${type.name.foos.0.bar}` where `foos` 132 is computed. [GH-247] 133 * providers/aws: Route53 destroys in parallel work properly. [GH-183] 134 135 ## 0.2.0 (August 28, 2014) 136 137 BACKWARDS INCOMPATIBILITIES: 138 139 * We've replaced the configuration language in use from a C library to 140 a pure-Go reimplementation. In the process, we removed some features 141 of the language since it was too flexible: 142 * Semicolons are no longer valid at the end of lines 143 * Keys cannot be double-quoted strings: `"foo" = "bar"` is no longer 144 valid. 145 * JSON style maps `{ "foo": "bar" }` are no longer valid outside of JSON. 146 Maps must be in the format of `{ foo = "bar" }` (like other objects 147 in the config) 148 * Heroku apps now require (will not validate without) `region` and 149 `name` due to an upstream API change. [GH-239] 150 151 FEATURES: 152 153 * **New Provider: `google`**: Manage Google Compute instances, disks, 154 firewalls, and more. 155 * **New Provider: `mailgun`**: Manage mailgun domains. 156 * **New Function: `concat`**: Concatenate multiple strings together. 157 Example: `concat(var.region, "-", var.channel)`. 158 159 IMPROVEMENTS: 160 161 * core: "~/.terraformrc" (Unix) or "%APPDATA%/terraform.rc" (Windows) 162 can be used to configure custom providers and provisioners. [GH-192] 163 * providers/aws: EIPs now expose `allocation_id` and `public_ip` 164 attributes. 165 * providers/aws: Security group rules can be updated without a 166 destroy/create. 167 * providers/aws: You can enable and disable dns settings for VPCs. [GH-172] 168 * providers/aws: Can specify a private IP address for `aws_instance` [GH-217] 169 170 BUG FIXES: 171 172 * core: Variables are validated to not contain interpolations. [GH-180] 173 * core: Key files for provisioning can now contain `~` and will be expanded 174 to the user's home directory. [GH-179] 175 * core: The `file()` function can load files in sub-directories. [GH-213] 176 * core: Fix issue where some JSON structures didn't map properly into 177 Terraform structures. [GH-177] 178 * core: Resources with only `file()` calls will interpolate. [GH-159] 179 * core: Variables work in block names. [GH-234] 180 * core: Plugins are searched for in the same directory as the executable 181 before the PATH. [GH-157] 182 * command/apply: "tfvars" file no longer interferes with plan apply. [GH-153] 183 * providers/aws: Fix issues around failing to read EIPs. [GH-122] 184 * providers/aws: Autoscaling groups now register and export load 185 balancers. [GH-207] 186 * providers/aws: Ingress results are treated as a set, so order doesn't 187 matter anymore. [GH-87] 188 * providers/aws: Instance security groups treated as a set [GH-194] 189 * providers/aws: Retry Route53 requests if operation failed because another 190 operation is in progress [GH-183] 191 * providers/aws: Route53 records with multiple record values work. [GH-221] 192 * providers/aws: Changing AMI doesn't result in errors anymore. [GH-196] 193 * providers/heroku: If you delete the `config_vars` block, config vars 194 are properly nuked. 195 * providers/heroku: Domains and drains are deleted before the app. 196 * providers/heroku: Moved from the client library bgentry/heroku-go to 197 cyberdelia/heroku-go [GH-239]. 198 * providers/heroku: Plans without a specific plan name for 199 heroku\_addon work. [GH-198] 200 201 PLUGIN CHANGES: 202 203 * **New Package:** `helper/schema`. This introduces a high-level framework 204 for easily writing new providers and resources. The Heroku provider has 205 been converted to this as an example. 206 207 ## 0.1.1 (August 5, 2014) 208 209 FEATURES: 210 211 * providers/heroku: Now supports creating Heroku Drains [GH-97] 212 213 IMPROVEMENTS: 214 215 * providers/aws: Launch configurations accept user data [GH-94] 216 * providers/aws: Regions are now validated [GH-96] 217 * providers/aws: ELB now supports health check configurations [GH-109] 218 219 BUG FIXES: 220 221 * core: Default variable file "terraform.tfvars" is auto-loaded. [GH-59] 222 * core: Multi-variables (`foo.*.bar`) work even when `count = 1`. [GH-115] 223 * core: `file()` function can have string literal arg [GH-145] 224 * providers/cloudflare: Include the proper bins so the cloudflare 225 provider is compiled 226 * providers/aws: Engine version for RDS now properly set [GH-118] 227 * providers/aws: Security groups now depend on each other and 228 * providers/aws: DB instances now wait for destroys, have proper 229 dependencies and allow passing skip_final_snapshot 230 * providers/aws: Add associate_public_ip_address as an attribute on 231 the aws_instance resource [GH-85] 232 * providers/aws: Fix cidr blocks being updated [GH-65, GH-85] 233 * providers/aws: Description is now required for security groups 234 * providers/digitalocean: Private IP addresses are now a separate 235 attribute 236 * provisioner/all: If an SSH key is given with a password, a better 237 error message is shown. [GH-73] 238 239 ## 0.1.0 (July 28, 2014) 240 241 * Initial release 242