stack_master 1.5.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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