Commit Graph

143 Commits

Author SHA1 Message Date
Matt Good 21b0a03d70 Support for multiple providers of the same type
Adds an "alias" field to the provider which allows creating multiple instances
of a provider under different names. This provides support for configurations
such as multiple AWS providers for different regions. In each resource, the
provider can be set with the "provider" field.

(thanks to Cisco Cloud for their support)
2015-04-20 14:14:34 -07:00
Paul Hinze afe4abb637 core: add prevent_destroy lifecycle flag
When the `prevent_destroy` flag is set on a resource, any plan that
would destroy that resource instead returns an error. This has the
effect of preventing the resource from being unexpectedly destroyed by
Terraform until the flag is removed from the config.
2015-04-17 10:40:04 -05:00
Paul Hinze 975a96f271 core: protect against count.index in modules
Modules should get a validation error just like outputs do.

refs #1528
2015-04-15 10:41:56 -05:00
Paul Hinze 347690a73e core: don't crash when count.index is used in the wrong context
It's bad manners! :)

Also adds a validation error up at the configuration layer so the user
sees the case from #1528 as an error message.

fixes #1528
2015-04-15 10:23:53 -05:00
Mitchell Hashimoto 6514bf5f25 config: clarify unknown variable error [GH-1480] 2015-04-10 16:45:15 -07:00
Mitchell Hashimoto fdded8ca14 config: allow atlas block 2015-03-24 13:30:22 -07:00
Mitchell Hashimoto 965fe45b9e config: self var validation 2015-02-23 14:43:14 -08:00
Mitchell Hashimoto a31f2a276b Merge pull request #1015 from hashicorp/b-depends-on-var
config: depends on cannot contain interpolations [GH-985]
2015-02-23 13:49:34 -08:00
Mitchell Hashimoto c14e84a657 config: validate provisioner splats can only reference others 2015-02-20 09:21:29 -08:00
Mitchell Hashimoto 90a6a627ed config: validate configuration doens't contain splats to ourselves 2015-02-20 09:18:08 -08:00
Mitchell Hashimoto 0e7b150c5b config: depends on cannot contain interpolations [GH-985] 2015-02-20 09:07:41 -08:00
Mitchell Hashimoto 4bcf6cf6b2 config: bare splat variables should not be allowed in provisioners
[GH-636]
2015-02-17 13:32:45 -08:00
Mitchell Hashimoto a2e40ad731 config: multi-variable access in slice validation fixed [GH-798] 2015-01-15 09:40:13 -08:00
Mitchell Hashimoto 2abeb2d9ac config: use new API 2015-01-14 22:03:15 -08:00
Mitchell Hashimoto 740c25d4ea config: convert to config/lang 2015-01-13 10:27:57 -08:00
Mitchell Hashimoto 6b7dfb4c8f config: some extra comments 2014-12-26 09:05:24 +05:30
Mitchell Hashimoto d24082da1e config: validate that module variables can go to ints, convert [GH-624] 2014-12-15 22:10:16 -08:00
Mitchell Hashimoto 4cb1ea6ae1 config: allow exact multi-resource references outside slices 2014-10-11 17:20:39 -07:00
Mitchell Hashimoto 7b48924532 config: validate that multi-variables are only used in slices 2014-10-09 21:15:08 -07:00
Mitchell Hashimoto 9dd7618fce config: fix messaging for name symbols 2014-10-08 16:12:53 -07:00
Mitchell Hashimoto 67d9188a29 config: validate module names are valid 2014-10-08 16:03:22 -07:00
Mitchell Hashimoto 50e5eacc15 config: add NameRegexp 2014-10-08 15:06:04 -07:00
Mitchell Hashimoto e922b16dba Merge pull request #377 from hashicorp/f-path-var
Add ${path.X} variables for path referencing
2014-10-07 21:26:24 -07:00
Mitchell Hashimoto c1fa4c2e4b config: validate that module source can't contain interpolations 2014-10-07 20:19:32 -07:00
Mitchell Hashimoto 679ab1d515 config: parse ${path.module} 2014-10-07 18:03:11 -07:00
Mitchell Hashimoto b484ec19b6 config: validate that count vars are valid types 2014-10-02 18:24:37 -07:00
Mitchell Hashimoto bc26777963 config: count can't interpolate count variables 2014-10-02 18:22:32 -07:00
Mitchell Hashimoto dd14303022 config: validate that count is an int 2014-10-02 16:51:20 -07:00
Mitchell Hashimoto 5090678168 config: validate that only proper variables can be in the count 2014-10-02 16:30:46 -07:00
Mitchell Hashimoto 101ac636a2 config: add Config method 2014-10-02 11:34:08 -07:00
Mitchell Hashimoto 8e2315599f config: Count can be a string (for interpolation) 2014-10-02 11:14:50 -07:00
Armon Dadgar 1aaddafba0 terraform: Adding lifecycle config block 2014-09-29 15:20:02 -07:00
Armon Dadgar a14ea76c84 config: Support create_before_destroy config 2014-09-29 15:18:49 -07:00
Mitchell Hashimoto a36b3e1ec5 command: tests pass 2014-09-24 15:48:46 -07:00
Mitchell Hashimoto 292f57ea0a config/module: validate outputs line up with ModuleVariables 2014-09-15 13:57:07 -07:00
Mitchell Hashimoto b60da29d48 config: validate that variables reference valid modules 2014-09-15 11:45:41 -07:00
Mitchell Hashimoto f8836290da config: not directory that config was loaded from 2014-09-14 19:35:38 -07:00
Mitchell Hashimoto 8dc8eac4bf config: change module syntax 2014-09-14 14:43:54 -07:00
Mitchell Hashimoto dd6f536fab config: Merge for modules works 2014-09-11 19:54:02 -07:00
Mitchell Hashimoto 610e92cab2 config: validate no duplicate modules 2014-09-11 16:02:36 -07:00
Mitchell Hashimoto 2a6990e2b9 config: `module` structures parse 2014-09-11 15:58:30 -07:00
Mitchell Hashimoto 3e3be5e2a3 config: only walk if non-nil 2014-08-11 21:55:47 -07:00
Mitchell Hashimoto fe2a306341 config: validate no interp in var [GH-180] 2014-08-11 09:46:56 -07:00
Mitchell Hashimoto f9f4e62411 config: validate that count is >= 1 2014-07-26 14:49:55 -07:00
Mitchell Hashimoto 20da842bcf config: validate dependsOn 2014-07-22 17:16:48 -07:00
Mitchell Hashimoto 0699cde1d4 config: depends_on meta-parameter 2014-07-22 17:10:17 -07:00
Mitchell Hashimoto b10b678326 config: fix error message in validation 2014-07-22 08:47:10 -07:00
Mitchell Hashimoto f9e6754763 config: comments 2014-07-22 08:43:16 -07:00
Mitchell Hashimoto 61938c070f config: validate type of default to string or mapping for var 2014-07-22 08:34:24 -07:00
Mitchell Hashimoto fe2285898a config: DefaultsMap should return nil if nil 2014-07-22 08:10:06 -07:00
Mitchell Hashimoto c9a20c3c58 terraform: test that mapping lookups work 2014-07-22 08:06:09 -07:00
Mitchell Hashimoto c988be9ce7 config: DefaultsMap 2014-07-22 07:41:55 -07:00
Mitchell Hashimoto b772f8078d config: detect UserMapVariable 2014-07-21 08:55:45 -07:00
Mitchell Hashimoto b8a0a02217 config: TODO tests for validation 2014-07-21 08:34:44 -07:00
Mitchell Hashimoto b0ce89b805 config: change Default to an interface{} 2014-07-21 07:32:36 -07:00
Mitchell Hashimoto 9d2e83d56d config: Merge works properly 2014-07-20 17:17:03 -07:00
Mitchell Hashimoto 7bd7e4218f config: make ProviderConfigs slice 2014-07-19 16:05:48 -07:00
Mitchell Hashimoto 3834846418 config: Outputs is now a slice 2014-07-18 22:21:52 -07:00
Mitchell Hashimoto e4bcd3c448 config: Variables is now a slice 2014-07-18 17:48:30 -07:00
Mitchell Hashimoto 596e0f7f13 config: make dupped nil for GC reasons 2014-07-18 16:31:32 -07:00
Mitchell Hashimoto 50095612a2 config: resource should be unique 2014-07-18 16:31:01 -07:00
Mitchell Hashimoto 5329124cf9 config: unknown keys give errors 2014-07-18 16:00:21 -07:00
Armon Dadgar 36b1a2b9e8 config: Parse out special 'connection' blocks 2014-07-15 12:34:06 -07:00
Mitchell Hashimoto e250a6f36c config: understand "provisioner" blocks 2014-07-10 11:38:55 -07:00
Mitchell Hashimoto cfb08b6c60 config: mark even index accesses as a multi-access 2014-07-06 13:56:18 -07:00
Mitchell Hashimoto aa6a758f6b config: if count > 1, variable references must have index
/cc @pearkes - Here is that validation
2014-07-06 13:46:56 -07:00
Mitchell Hashimoto 07f98f7ee7 config: special detect ResourceVariables for multi-access 2014-07-05 10:34:52 -07:00
Mitchell Hashimoto ed1860de61 config: validate output only has "value" field 2014-07-04 10:57:09 -07:00
Mitchell Hashimoto a4f38a3933 config: validate resource variables in output 2014-07-04 10:53:36 -07:00
Mitchell Hashimoto cc2bb950a1 config: can parse outputs 2014-07-04 10:43:06 -07:00
Mitchell Hashimoto 3337a625af config: support count meta-parameter 2014-07-03 20:11:58 -07:00
Mitchell Hashimoto 947fa4e669 terraform: Context introduction 2014-07-03 10:14:17 -07:00
Mitchell Hashimoto 78e056770c config: validate that resource references are valid 2014-07-02 21:06:26 -07:00
Mitchell Hashimoto 532cc33189 config: semantic check on variable references 2014-07-02 21:01:03 -07:00
Mitchell Hashimoto 1918f199d8 terraform: Graph, config: don't build graph 2014-06-24 14:58:57 -07:00
Mitchell Hashimoto 9acb9535ad config: ProviderConfigName shouldn't be on Resource 2014-06-24 13:29:07 -07:00
Mitchell Hashimoto 8c50aa6382 config: use the RawConfig whereever posible 2014-06-12 17:40:59 -07:00
Mitchell Hashimoto 23d96248aa No need for a root name constant, just check for Meta == nil 2014-06-05 12:59:55 -07:00
Mitchell Hashimoto 82d527f798 config: rename ResourceGraph to Graph 2014-06-05 12:55:21 -07:00
Mitchell Hashimoto d2c3db552a config: providerconfigs can replace variables 2014-06-05 12:52:07 -07:00
Mitchell Hashimoto 3ccfd4d08c config: depgraph can contain provider configuratoins 2014-06-05 12:47:28 -07:00
Mitchell Hashimoto e2fa7094bd config: ProviderConfigName on Resource 2014-06-05 12:21:05 -07:00
Mitchell Hashimoto bd1f235b9b config: allow applying variables to resources 2014-06-05 06:23:41 -07:00
Mitchell Hashimoto d731d033f1 terraform: build resource graph, validate 2014-06-03 17:14:19 -07:00
Mitchell Hashimoto 0008ff12c7 config: determine whether a variable is required properly 2014-06-03 15:55:51 -07:00
Mitchell Hashimoto ab507814b7 config: support for provider configs 2014-05-25 18:05:18 -07:00
Mitchell Hashimoto bdeb278728 config: simplify 2014-05-24 13:58:33 -07:00
Mitchell Hashimoto dac18c823a config: can generate depgraph 2014-05-24 13:57:51 -07:00
Mitchell Hashimoto 3728e1cfc0 fmt 2014-05-24 12:51:31 -07:00
Mitchell Hashimoto bb0980f5ba config: tests for instantiating interpolated var types 2014-05-24 11:41:19 -07:00
Mitchell Hashimoto 9fef261eae config: comments 2014-05-24 11:36:22 -07:00
Mitchell Hashimoto 95ef186bf8 config: can detect variables in config strings 2014-05-23 21:58:06 -07:00
Mitchell Hashimoto ec3f72703c Initial work on config 2014-05-22 16:56:28 -07:00