stack_master 1.5.0 → 1.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (122) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -0
  3. data/lib/stack_master/commands/terminal_helper.rb +14 -1
  4. data/lib/stack_master/parameter_resolvers/secret.rb +7 -2
  5. data/lib/stack_master/version.rb +1 -1
  6. metadata +21 -216
  7. data/.gitignore +0 -18
  8. data/.rspec +0 -2
  9. data/.travis.yml +0 -12
  10. data/CODE_OF_CONDUCT.md +0 -73
  11. data/Gemfile +0 -4
  12. data/LICENSE.txt +0 -22
  13. data/Rakefile +0 -27
  14. data/apply_demo.gif +0 -0
  15. data/example/simple/Gemfile +0 -3
  16. data/example/simple/parameters/myapp_vpc.yml +0 -1
  17. data/example/simple/parameters/myapp_web.yml +0 -2
  18. data/example/simple/stack_master.yml +0 -13
  19. data/example/simple/templates/myapp_vpc.rb +0 -39
  20. data/example/simple/templates/myapp_web.rb +0 -16
  21. data/features/apply.feature +0 -392
  22. data/features/apply_with_compile_time_parameters.feature +0 -93
  23. data/features/apply_with_env_parameters.feature +0 -49
  24. data/features/apply_with_parameter_store_parameters.feature +0 -47
  25. data/features/apply_with_s3.feature +0 -106
  26. data/features/delete.feature +0 -29
  27. data/features/diff.feature +0 -179
  28. data/features/events.feature +0 -33
  29. data/features/init.feature +0 -6
  30. data/features/outputs.feature +0 -45
  31. data/features/region_aliases.feature +0 -62
  32. data/features/resources.feature +0 -42
  33. data/features/stack_defaults.feature +0 -82
  34. data/features/status.feature +0 -118
  35. data/features/step_definitions/parameter_store_steps.rb +0 -14
  36. data/features/step_definitions/stack_steps.rb +0 -71
  37. data/features/support/env.rb +0 -16
  38. data/features/validate.feature +0 -46
  39. data/logo.png +0 -0
  40. data/script/buildkite/bundle.sh +0 -5
  41. data/script/buildkite/clean.sh +0 -3
  42. data/script/buildkite_rspec.sh +0 -27
  43. data/spec/fixtures/parameters/myapp_vpc.yml +0 -1
  44. data/spec/fixtures/parameters/myapp_vpc_with_secrets.yml +0 -3
  45. data/spec/fixtures/sparkle_pack_integration/my_sparkle_pack/lib/my_sparkle_pack.rb +0 -1
  46. data/spec/fixtures/sparkle_pack_integration/my_sparkle_pack/lib/sparkleformation/dynamics/my_dynamic.rb +0 -5
  47. data/spec/fixtures/sparkle_pack_integration/templates/dynamics/local_dynamic.rb +0 -5
  48. data/spec/fixtures/sparkle_pack_integration/templates/template_with_dynamic.rb +0 -3
  49. data/spec/fixtures/sparkle_pack_integration/templates/template_with_dynamic_from_pack.rb +0 -3
  50. data/spec/fixtures/stack_master.yml +0 -49
  51. data/spec/fixtures/templates/json/valid_myapp_vpc.json +0 -53
  52. data/spec/fixtures/templates/myapp_vpc.json +0 -1
  53. data/spec/fixtures/templates/rb/cfndsl/sample.json +0 -28
  54. data/spec/fixtures/templates/rb/cfndsl/sample.rb +0 -16
  55. data/spec/fixtures/templates/yml/valid_myapp_vpc.yml +0 -35
  56. data/spec/fixtures/test/.gitkeep +0 -0
  57. data/spec/spec_helper.rb +0 -102
  58. data/spec/stack_master/aws_driver/s3_spec.rb +0 -130
  59. data/spec/stack_master/change_set_spec.rb +0 -70
  60. data/spec/stack_master/command_spec.rb +0 -66
  61. data/spec/stack_master/commands/apply_spec.rb +0 -259
  62. data/spec/stack_master/commands/delete_spec.rb +0 -40
  63. data/spec/stack_master/commands/init_spec.rb +0 -17
  64. data/spec/stack_master/commands/status_spec.rb +0 -44
  65. data/spec/stack_master/commands/validate_spec.rb +0 -27
  66. data/spec/stack_master/config_spec.rb +0 -153
  67. data/spec/stack_master/paged_response_accumulator_spec.rb +0 -39
  68. data/spec/stack_master/parameter_loader_spec.rb +0 -110
  69. data/spec/stack_master/parameter_resolver_spec.rb +0 -148
  70. data/spec/stack_master/parameter_resolvers/ami_finder_spec.rb +0 -68
  71. data/spec/stack_master/parameter_resolvers/env_spec.rb +0 -35
  72. data/spec/stack_master/parameter_resolvers/latest_ami_by_tags_spec.rb +0 -33
  73. data/spec/stack_master/parameter_resolvers/latest_ami_spec.rb +0 -46
  74. data/spec/stack_master/parameter_resolvers/parameter_store_spec.rb +0 -50
  75. data/spec/stack_master/parameter_resolvers/secret_spec.rb +0 -66
  76. data/spec/stack_master/parameter_resolvers/security_group_spec.rb +0 -19
  77. data/spec/stack_master/parameter_resolvers/security_groups_spec.rb +0 -32
  78. data/spec/stack_master/parameter_resolvers/sns_topic_name_spec.rb +0 -43
  79. data/spec/stack_master/parameter_resolvers/stack_output_spec.rb +0 -127
  80. data/spec/stack_master/prompter_spec.rb +0 -23
  81. data/spec/stack_master/resolver_array_spec.rb +0 -42
  82. data/spec/stack_master/security_group_finder_spec.rb +0 -49
  83. data/spec/stack_master/sns_topic_finder_spec.rb +0 -25
  84. data/spec/stack_master/sparkle_formation/compile_time/allowed_pattern_validator_spec.rb +0 -47
  85. data/spec/stack_master/sparkle_formation/compile_time/allowed_values_validator_spec.rb +0 -47
  86. data/spec/stack_master/sparkle_formation/compile_time/definitions_validator_spec.rb +0 -36
  87. data/spec/stack_master/sparkle_formation/compile_time/empty_validator_spec.rb +0 -47
  88. data/spec/stack_master/sparkle_formation/compile_time/max_length_validator_spec.rb +0 -37
  89. data/spec/stack_master/sparkle_formation/compile_time/max_size_validator_spec.rb +0 -27
  90. data/spec/stack_master/sparkle_formation/compile_time/min_length_validator_spec.rb +0 -36
  91. data/spec/stack_master/sparkle_formation/compile_time/min_size_validator_spec.rb +0 -28
  92. data/spec/stack_master/sparkle_formation/compile_time/number_validator_spec.rb +0 -41
  93. data/spec/stack_master/sparkle_formation/compile_time/parameters_validator_spec.rb +0 -65
  94. data/spec/stack_master/sparkle_formation/compile_time/state_builder_spec.rb +0 -28
  95. data/spec/stack_master/sparkle_formation/compile_time/string_validator_spec.rb +0 -35
  96. data/spec/stack_master/sparkle_formation/compile_time/value_build_spec.rb +0 -52
  97. data/spec/stack_master/sparkle_formation/compile_time/value_validator_factory_spec.rb +0 -40
  98. data/spec/stack_master/sparkle_formation/template_file_spec.rb +0 -147
  99. data/spec/stack_master/stack_definition_spec.rb +0 -70
  100. data/spec/stack_master/stack_differ_spec.rb +0 -46
  101. data/spec/stack_master/stack_events/fetcher_spec.rb +0 -40
  102. data/spec/stack_master/stack_events/presenter_spec.rb +0 -18
  103. data/spec/stack_master/stack_events/streamer_spec.rb +0 -47
  104. data/spec/stack_master/stack_spec.rb +0 -184
  105. data/spec/stack_master/template_compiler_spec.rb +0 -39
  106. data/spec/stack_master/template_compilers/cfndsl_spec.rb +0 -22
  107. data/spec/stack_master/template_compilers/json_spec.rb +0 -32
  108. data/spec/stack_master/template_compilers/sparkle_formation_spec.rb +0 -116
  109. data/spec/stack_master/template_compilers/yaml_spec.rb +0 -20
  110. data/spec/stack_master/template_utils_spec.rb +0 -21
  111. data/spec/stack_master/test_driver/cloud_formation_spec.rb +0 -64
  112. data/spec/stack_master/test_driver/s3_spec.rb +0 -17
  113. data/spec/stack_master/utils_spec.rb +0 -30
  114. data/spec/stack_master/validator_spec.rb +0 -56
  115. data/spec/stack_master_spec.rb +0 -81
  116. data/spec/support/gemfiles/Gemfile.activesupport-4.0.0 +0 -5
  117. data/spec/support/validator_spec.rb +0 -23
  118. data/stack_master.gemspec +0 -46
  119. data/stacktemplates/parameter_region.yml +0 -3
  120. data/stacktemplates/parameter_stack_name.yml +0 -3
  121. data/stacktemplates/stack.json.erb +0 -20
  122. data/stacktemplates/stack_master.yml.erb +0 -6
@@ -1,20 +0,0 @@
1
- RSpec.describe StackMaster::TemplateCompilers::Yaml do
2
- describe '.compile' do
3
-
4
- let(:compile_time_parameters) { {'InstanceType' => 't2.medium'} }
5
-
6
- def compile
7
- described_class.compile(template_file_path, compile_time_parameters)
8
- end
9
-
10
- context 'valid YAML template' do
11
- let(:template_file_path) { 'spec/fixtures/templates/yml/valid_myapp_vpc.yml' }
12
-
13
- it 'produces valid YAML' do
14
- valid_myapp_vpc_yaml = File.read('spec/fixtures/templates/yml/valid_myapp_vpc.yml')
15
-
16
- expect(compile).to eq(valid_myapp_vpc_yaml)
17
- end
18
- end
19
- end
20
- end
@@ -1,21 +0,0 @@
1
- RSpec.describe StackMaster::TemplateUtils do
2
- describe "#maybe_compressed_template_body" do
3
- subject(:maybe_compressed_template_body) do
4
- described_class.maybe_compressed_template_body(template_body)
5
- end
6
- context "undersized json" do
7
- let(:template_body) { '{ }' }
8
-
9
- it "leaves the json alone if it's not too large" do
10
- expect(maybe_compressed_template_body).to eq('{ }')
11
- end
12
- end
13
-
14
- context "oversized json" do
15
- let(:template_body) { "{#{' ' * 60000}}" }
16
- it "compresses the json when it's overly bulbous" do
17
- expect(maybe_compressed_template_body).to eq('{}')
18
- end
19
- end
20
- end
21
- end
@@ -1,64 +0,0 @@
1
- require 'stack_master/test_driver/cloud_formation'
2
-
3
- RSpec.describe StackMaster::TestDriver::CloudFormation do
4
- subject(:test_cf_driver) { described_class.new }
5
-
6
- context 'stacks' do
7
- it 'creates and describes stacks' do
8
- test_cf_driver.create_stack(stack_id: "1", stack_name: 'stack-1')
9
- test_cf_driver.create_stack(stack_id: "2", stack_name: 'stack-2')
10
- expect(test_cf_driver.describe_stacks.stacks.map(&:stack_id)).to eq(["1", "2"])
11
- end
12
-
13
- it 'adds and gets stack events' do
14
- test_cf_driver.add_stack_event(stack_name: 'stack-1', resource_status: "UPDATE_COMPLETE")
15
- test_cf_driver.add_stack_event(stack_name: 'stack-1', resource_status: "UPDATE_COMPLETE")
16
- test_cf_driver.add_stack_event(stack_name: 'stack-2')
17
- expect(test_cf_driver.describe_stack_events(stack_name: 'stack-1').stack_events.map(&:stack_name)).to eq ['stack-1', 'stack-1']
18
- end
19
-
20
- it 'sets and gets templates' do
21
- test_cf_driver.set_template('stack-1', 'blah')
22
- expect(test_cf_driver.get_template(stack_name: 'stack-1').template_body).to eq 'blah'
23
- end
24
-
25
- it 'sets and gets stack policies' do
26
- stack_policy_body = '{}'
27
- test_cf_driver.set_stack_policy(stack_name: 'stack-1', stack_policy_body: stack_policy_body)
28
- expect(test_cf_driver.get_stack_policy(stack_name: 'stack-1').stack_policy_body).to eq(stack_policy_body)
29
- end
30
- end
31
-
32
- context 'change sets' do
33
- it 'creates and describes change sets' do
34
- change_set_id = test_cf_driver.create_change_set(
35
- stack_name: 'stack-1',
36
- change_set_name: 'change-set-1',
37
- template_body: '{}',
38
- parameters: [{ paramater_key: 'param_1', parameter_value: 'value_1'}]
39
- ).id
40
- change_set = test_cf_driver.describe_change_set(change_set_name: change_set_id)
41
- expect(change_set.change_set_id).to eq change_set_id
42
- expect(change_set.change_set_name).to eq 'change-set-1'
43
- change_set = test_cf_driver.describe_change_set(change_set_name: 'change-set-1')
44
- expect(change_set.change_set_id).to eq change_set_id
45
- expect(change_set.change_set_name).to eq 'change-set-1'
46
- end
47
-
48
- it 'creates stacks using change sets and describes stacks' do
49
- change_set1 = test_cf_driver.create_change_set(change_set_name: 'change-set-1', stack_name: 'stack-1', change_set_type: 'CREATE')
50
- change_set2 = test_cf_driver.create_change_set(change_set_name: 'change-set-2', stack_name: 'stack-2', change_set_type: 'CREATE')
51
- test_cf_driver.execute_change_set(change_set_name: change_set1.id)
52
- test_cf_driver.execute_change_set(change_set_name: change_set2.id)
53
- expect(test_cf_driver.describe_stacks.stacks.map(&:stack_name)).to eq(['stack-1', 'stack-2'])
54
- end
55
- end
56
-
57
- it 'deletes change sets' do
58
- change_set_id = test_cf_driver.create_change_set(stack_name: '1', change_set_name: '2').id
59
- test_cf_driver.delete_change_set(change_set_name: change_set_id)
60
- expect {
61
- test_cf_driver.describe_change_set(change_set_name: change_set_id)
62
- }.to raise_error(KeyError)
63
- end
64
- end
@@ -1,17 +0,0 @@
1
- RSpec.describe StackMaster::TestDriver::S3 do
2
- subject(:s3_driver) { described_class.new }
3
- let(:bucket) { 'test-bucket' }
4
- let(:prefix) { 'test-prefix' }
5
- let(:files) { { 'test-file' => { path: 'path', body: 'body' } } }
6
- let(:region) { 'us-east-1' }
7
-
8
- it 'uploads and finds files' do
9
- s3_driver.upload_files(bucket: bucket,
10
- prefix: prefix,
11
- region: region,
12
- files: files)
13
- file = s3_driver.find_file(bucket: bucket,
14
- object_key: [prefix, 'test-file'].compact.join('/'))
15
- expect(file).to be
16
- end
17
- end
@@ -1,30 +0,0 @@
1
- RSpec.describe StackMaster::Utils do
2
- describe ".hash_to_aws_tags" do
3
- let(:tags) { {'environment' => 'production'} }
4
- subject(:aws_tags) { StackMaster::Utils.hash_to_aws_tags(tags) }
5
-
6
- it "converts the tags attribute to aws format" do
7
- expect(aws_tags).to eq([{key: 'environment', value: 'production'}])
8
- end
9
-
10
- context "tags is nil" do
11
- let(:tags) { nil }
12
-
13
- it "returns nil" do
14
- expect(aws_tags).to eq([])
15
- end
16
- end
17
- end
18
-
19
- describe ".hash_to_aws_parameters" do
20
- let(:params) { { 'param1' => 'value1', 'param2' => 'value2' } }
21
- subject(:aws_params) { StackMaster::Utils.hash_to_aws_parameters(params) }
22
-
23
- it "converts to aws parameters" do
24
- expect(aws_params).to eq([
25
- { parameter_key: 'param1', parameter_value: 'value1' },
26
- { parameter_key: 'param2', parameter_value: 'value2' }
27
- ])
28
- end
29
- end
30
- end
@@ -1,56 +0,0 @@
1
- RSpec.describe StackMaster::Validator do
2
-
3
- subject(:validator) { described_class.new(stack_definition, config) }
4
- let(:config) { StackMaster::Config.new({'stacks' => {}}, '/base_dir') }
5
- let(:stack_name) { 'myapp_vpc' }
6
- let(:stack_definition) do
7
- StackMaster::StackDefinition.new(
8
- region: 'us-east-1',
9
- stack_name: stack_name,
10
- template: 'myapp_vpc.json',
11
- tags: {'environment' => 'production'},
12
- base_dir: File.expand_path('spec/fixtures'),
13
- )
14
- end
15
- let(:cf) { Aws::CloudFormation::Client.new(region: "us-east-1") }
16
- let(:parameter_hash) { {template_parameters: {}, compile_time_parameters: {'DbPassword' => {'secret' => 'db_password'}}} }
17
- let(:resolved_parameters) { {'DbPassword' => 'sdfgjkdhlfjkghdflkjghdflkjg', 'InstanceType' => 't2.medium'} }
18
- before do
19
- allow(Aws::CloudFormation::Client).to receive(:new).and_return cf
20
- allow(StackMaster::ParameterLoader).to receive(:load).and_return(parameter_hash)
21
- allow(StackMaster::ParameterResolver).to receive(:resolve).and_return(resolved_parameters)
22
- end
23
-
24
- describe "#perform" do
25
- context "template body is valid" do
26
- before do
27
- cf.stub_responses(:validate_template, nil)
28
- end
29
- it "tells the user everything will be fine" do
30
- expect { validator.perform }.to output(/myapp_vpc: valid/).to_stdout
31
- end
32
- end
33
-
34
- context "invalid template body" do
35
- before do
36
- cf.stub_responses(:validate_template, Aws::CloudFormation::Errors::ValidationError.new('a', 'Problem'))
37
- end
38
- it "informs the user of their stupdity" do
39
- expect { validator.perform }.to output(/myapp_vpc: invalid/).to_stdout
40
- end
41
- end
42
-
43
- context "validate is called from from a continuous integration system with no access to secrets" do
44
- let(:stack_name) { 'myapp_vpc_with_secrets' }
45
- let(:secret) { instance_double(StackMaster::ParameterResolvers::Secret) }
46
- before do
47
- allow(StackMaster::ParameterResolvers::Secret).to receive(:new).and_return(secret)
48
- end
49
- it "does not prompt for the secret key" do
50
- expect(secret).not_to receive(:resolve)
51
- validator.perform
52
- end
53
- end
54
- end
55
-
56
- end
@@ -1,81 +0,0 @@
1
- RSpec.describe StackMaster do
2
- describe '.debug' do
3
- let(:message) { "Doing some stuff" }
4
-
5
- context 'when debugging' do
6
- before { allow(StackMaster).to receive(:debug?).and_return(true) }
7
-
8
- it 'outputs the message to STDERR' do
9
- expect { StackMaster.debug(message) }.to output(/\[DEBUG\] #{message}/).to_stderr
10
- end
11
- end
12
-
13
- context 'when not debugging' do
14
- before { allow(StackMaster).to receive(:debug?).and_return(false) }
15
-
16
- it "doesn't output the message to STDERR" do
17
- expect { StackMaster.debug(message) }.to output("").to_stderr
18
- end
19
- end
20
- end
21
-
22
- describe '.debug?' do
23
- subject { StackMaster.debug? }
24
-
25
- context "when debug! isn't called" do
26
- it { should eq false }
27
- end
28
-
29
- context 'when debug! is called' do
30
- before { StackMaster.debug! }
31
-
32
- it { should eq true }
33
-
34
- after { StackMaster.instance_variable_set('@debug', false) }
35
- end
36
- end
37
-
38
- describe '.interactive?' do
39
- subject { StackMaster.interactive? }
40
-
41
- context "when non_interactive! isn't called" do
42
- it { should eq true }
43
- end
44
-
45
- context 'when non_interactive! is called' do
46
- before { StackMaster.non_interactive! }
47
-
48
- it { should eq false }
49
-
50
- after { StackMaster.instance_variable_set('@non_interactive', false) }
51
- end
52
- end
53
-
54
- describe '.non_interactive?' do
55
- subject { StackMaster.non_interactive? }
56
-
57
- context "when non_interactive! isn't called" do
58
- it { should eq false }
59
- end
60
-
61
- context 'when non_interactive! is called' do
62
- before { StackMaster.non_interactive! }
63
-
64
- it { should eq true }
65
-
66
- after { StackMaster.instance_variable_set('@non_interactive', false) }
67
- end
68
- end
69
-
70
- describe '.non_interactive_answer' do
71
- it 'defaults to y' do
72
- expect(StackMaster.non_interactive_answer).to eq 'y'
73
- end
74
-
75
- it 'can be overridden' do
76
- StackMaster.non_interactive_answer = 'n'
77
- expect(StackMaster.non_interactive_answer).to eq 'n'
78
- StackMaster.instance_variable_set('@non_interactive_answer', 'y')
79
- end
80
- end
81
- end
@@ -1,5 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gemspec :path => '../../../'
4
-
5
- gem 'activesupport', '4.0.0'
@@ -1,23 +0,0 @@
1
- def validate_valid_parameter(parameter)
2
- context "with parameter #{parameter}" do
3
- subject { described_class.new('name', definition, parameter).tap { |validator| validator.validate } }
4
-
5
- it 'is valid' do
6
- expect(subject.is_valid).to be_truthy
7
- end
8
- end
9
- end
10
-
11
- def validate_invalid_parameter(parameter, errors)
12
- context "with parameter #{parameter}" do
13
- subject { described_class.new(name, definition, parameter).tap { |validator| validator.validate } }
14
-
15
- it 'is not valid' do
16
- expect(subject.is_valid).to be_falsey
17
- end
18
-
19
- it 'has an error' do
20
- expect(subject.error).to eql error_message.call(errors, definition)
21
- end
22
- end
23
- end
data/stack_master.gemspec DELETED
@@ -1,46 +0,0 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'stack_master/version'
5
-
6
- Gem::Specification.new do |spec|
7
- spec.name = "stack_master"
8
- spec.version = StackMaster::VERSION
9
- spec.authors = ["Steve Hodgkiss", "Glen Stampoultzis"]
10
- spec.email = ["steve@hodgkiss.me", "gstamp@gmail.com"]
11
- spec.summary = %q{StackMaster is a sure-footed way of creating, updating and keeping track of Amazon (AWS) CloudFormation stacks.}
12
- spec.description = %q{}
13
- spec.homepage = "https://github.com/envato/stack_master"
14
- spec.license = "MIT"
15
-
16
- spec.files = `git ls-files -z`.split("\x0")
17
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
- spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
- spec.require_paths = ["lib"]
20
- spec.required_ruby_version = ">= 2.1.0"
21
-
22
- spec.add_development_dependency "bundler", "~> 1.5"
23
- spec.add_development_dependency "rake"
24
- spec.add_development_dependency "rspec"
25
- spec.add_development_dependency "pry"
26
- spec.add_development_dependency "cucumber"
27
- spec.add_development_dependency "aruba"
28
- spec.add_development_dependency "timecop"
29
- spec.add_dependency "ruby-progressbar"
30
- spec.add_dependency "commander"
31
- spec.add_dependency "aws-sdk-cloudformation", "~> 1"
32
- spec.add_dependency "aws-sdk-ec2", "~> 1"
33
- spec.add_dependency "aws-sdk-s3", "~> 1"
34
- spec.add_dependency "aws-sdk-sns", "~> 1"
35
- spec.add_dependency "aws-sdk-ssm", "~> 1"
36
- spec.add_dependency "diffy"
37
- spec.add_dependency "erubis"
38
- spec.add_dependency "colorize"
39
- spec.add_dependency "activesupport", '>= 4'
40
- spec.add_dependency "sparkle_formation"
41
- spec.add_dependency "table_print"
42
- spec.add_dependency "dotgpg"
43
- spec.add_dependency "deep_merge"
44
- spec.add_dependency "cfndsl"
45
- spec.add_dependency "multi_json"
46
- end
@@ -1,3 +0,0 @@
1
- # Add parameters here:
2
- # param1: value1
3
- # param2: value2
@@ -1,3 +0,0 @@
1
- # Add parameters here:
2
- # param1: value1
3
- # param2: value2
@@ -1,20 +0,0 @@
1
- {
2
- "AWSTemplateFormatVersion" : "2010-09-09",
3
- "Description" : "Cloudformation stack for <%= stack_name %>",
4
-
5
- "Parameters" : {
6
- "InstanceType" : {
7
- "Description" : "EC2 instance type",
8
- "Type" : "String"
9
- }
10
- },
11
-
12
- "Mappings" : {
13
- },
14
-
15
- "Resources" : {
16
- },
17
-
18
- "Outputs" : {
19
- }
20
- }
@@ -1,6 +0,0 @@
1
- stacks:
2
- <%= region %>:
3
- <%= stack_name %>:
4
- template: <%= stack_name %>.json
5
- tags:
6
- environment: production