rubycfn 0.4.10 → 0.5.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 (71) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +6 -1
  3. data/Gemfile.lock +1 -1
  4. data/README.md +43 -67
  5. data/bin/rubycfn +17 -73
  6. data/lib/cli_methods.rb +2 -2
  7. data/lib/rubycfn/version.rb +1 -1
  8. data/templates/.env +2 -0
  9. data/templates/.env.acceptance +1 -0
  10. data/templates/.env.dependencies.rspec +6 -0
  11. data/templates/.env.development +1 -0
  12. data/templates/.env.production +1 -0
  13. data/templates/.env.rspec +1 -0
  14. data/templates/.env.test +1 -0
  15. data/templates/{.gitignore.erb → .gitignore} +3 -0
  16. data/templates/{.rubocop.yml.erb → .rubocop.yml} +14 -1
  17. data/templates/{Gemfile.erb → Gemfile} +0 -1
  18. data/templates/README.md +57 -0
  19. data/templates/{Rakefile.erb → Rakefile} +15 -8
  20. data/templates/bootstrap/dependency_stack.rb +49 -0
  21. data/templates/config.yaml +65 -0
  22. data/templates/lib/aws_helper/aws_sdk.rb +30 -0
  23. data/templates/{compiler.rb.erb → lib/aws_helper/compiler.rb} +15 -9
  24. data/templates/{dependencies.rb.erb → lib/aws_helper/dependencies.rb} +5 -3
  25. data/templates/{deploy.rb.erb → lib/aws_helper/deploy.rb} +6 -4
  26. data/templates/lib/aws_helper/helpers.rb +3 -0
  27. data/templates/{main_aws_helper.rb.erb → lib/aws_helper/main.rb} +0 -0
  28. data/templates/{upload_stack.rb.erb → lib/aws_helper/upload_stack.rb} +15 -6
  29. data/templates/lib/core/applications.rb +479 -0
  30. data/templates/lib/core/assume_role.rb +40 -0
  31. data/templates/lib/core/classes.rb +25 -0
  32. data/templates/{core_compile.rb.erb → lib/core/compile.rb} +1 -0
  33. data/templates/lib/core/dependencies.rb +22 -0
  34. data/templates/{core_deploy.rb.erb → lib/core/deploy.rb} +20 -10
  35. data/templates/lib/core/git.rb +15 -0
  36. data/templates/lib/core/init.rb +173 -0
  37. data/templates/{core_upload.rb.erb → lib/core/upload.rb} +0 -0
  38. data/templates/{main.rb.erb → lib/main.rb} +8 -6
  39. data/templates/lib/shared_concerns/global_variables.rb +56 -0
  40. data/templates/{helper_methods.rb.erb → lib/shared_concerns/helper_functions.rb} +0 -0
  41. data/templates/lib/shared_concerns/helper_methods.rb +3 -0
  42. data/templates/{shared_methods.rb.erb → lib/shared_concerns/shared_methods.rb} +9 -0
  43. data/templates/lib/stacks/acm_stack/certificate_manager.rb +79 -0
  44. data/templates/{new_stack.rb.erb → lib/stacks/acm_stack/main.rb} +3 -4
  45. data/templates/lib/stacks/ecs_stack/ecs_cluster.rb +344 -0
  46. data/templates/lib/stacks/ecs_stack/lifecycle_hook.rb +188 -0
  47. data/templates/lib/stacks/ecs_stack/load_balancer.rb +68 -0
  48. data/templates/{ecs_stack.rb.erb → lib/stacks/ecs_stack/main.rb} +2 -1
  49. data/templates/{project_stack.rb.erb → lib/stacks/parent_stack/main.rb} +2 -2
  50. data/templates/lib/stacks/parent_stack/parent.rb +18 -0
  51. data/templates/lib/stacks/vpc_stack/infra_vpc.rb +193 -0
  52. data/templates/{vpc_stack.rb.erb → lib/stacks/vpc_stack/main.rb} +1 -2
  53. data/templates/{parent_stack_spec.rb.erb → spec/lib/parent_spec.rb} +2 -5
  54. data/templates/{spec_helper.rb.erb → spec/spec_helper.rb} +2 -2
  55. metadata +54 -44
  56. data/format.vim +0 -3
  57. data/templates/.env.erb +0 -4
  58. data/templates/.env.production.erb +0 -6
  59. data/templates/.env.rspec.erb +0 -6
  60. data/templates/.env.test.erb +0 -6
  61. data/templates/.gitlab-ci.yml.erb +0 -75
  62. data/templates/aws_sdk.rb.erb +0 -18
  63. data/templates/core_diff.rb.erb +0 -59
  64. data/templates/ecs_stack_concern.rb.erb +0 -20
  65. data/templates/global_variables.rb.erb +0 -16
  66. data/templates/helpers.rb.erb +0 -7
  67. data/templates/new_concern.rb.erb +0 -10
  68. data/templates/project_concern.rb.erb +0 -26
  69. data/templates/subnets.rb.erb +0 -18
  70. data/templates/vpc_concerns.rb.erb +0 -87
  71. data/templates/vpc_spec.rb.erb +0 -39
@@ -1,87 +0,0 @@
1
- require_relative "subnets"
2
-
3
- module VpcStack
4
- module Main
5
- extend ActiveSupport::Concern
6
-
7
- included do
8
- variable :cidr_block,
9
- default: "10.0.0.0/16",
10
- value: ENV["VPC_CIDR_BLOCK"]
11
-
12
- resource :<%= name.downcase %>_vpc,
13
- type: "AWS::EC2::VPC" do |r|
14
- r.property(:cidr_block) { cidr_block }
15
- r.property(:enable_dns_support) { true }
16
- r.property(:enable_dns_hostnames) { true }
17
- end
18
-
19
- resource "<%= name.downcase %>_internet_gateway".cfnize,
20
- type: "AWS::EC2::InternetGateway"
21
-
22
- resource "<%= name.downcase %>_route".cfnize,
23
- type: "AWS::EC2::Route" do |r|
24
- r.property(:destination_cidr_block) { "0.0.0.0/0" }
25
- r.property(:gateway_id) { "<%= name.downcase %>_internet_gateway".cfnize.ref }
26
- r.property(:route_table_id) { "<%= name.downcase %>_route_table".cfnize.ref }
27
- end
28
-
29
- resource "<%= name.downcase %>_route_table".cfnize,
30
- type: "AWS::EC2::RouteTable" do |r|
31
- r.property(:vpc_id) { "<%= name.downcase %>_vpc".cfnize.ref }
32
- end
33
-
34
- resource "<%= name.downcase %>_vpc_gateway_attachment".cfnize,
35
- type: "AWS::EC2::VPCGatewayAttachment" do |r|
36
- r.property(:internet_gateway_id) { "<%= name.downcase %>_internet_gateway".cfnize.ref }
37
- r.property(:vpc_id) { "<%= name.downcase %>_vpc".cfnize.ref }
38
- end
39
-
40
- vpc_subnets.each_with_index do |subnet, _subnet_count|
41
- subnet.each do |subnet_name, arguments|
42
- resource "<%= name.downcase %>_#{subnet_name}_subnet".cfnize,
43
- type: "AWS::EC2::Subnet",
44
- amount: 3 do |r, index|
45
- r.property(:availability_zone) do
46
- {
47
- "Fn::GetAZs": ""
48
- }.fnselect(index)
49
- end
50
- r.property(:cidr_block) do
51
- [
52
- "<%= name %>Vpc".ref("CidrBlock"),
53
- (3 * arguments[:offset]).to_s,
54
- (Math.log(256) / Math.log(2)).floor.to_s
55
- ].fncidr.fnselect(index + (3 * arguments[:offset]) - 3)
56
- end
57
- r.property(:map_public_ip_on_launch) { arguments[:public] }
58
- r.property(:tags) do
59
- [
60
- {
61
- "Key": "owner",
62
- "Value": arguments[:owner].to_s.cfnize
63
- },
64
- {
65
- "Key": "resource_type",
66
- "Value": subnet_name.to_s.cfnize
67
- }
68
- ]
69
- end
70
- r.property(:vpc_id) { "<%= name %>Vpc".ref }
71
- end
72
-
73
- # Generate outputs for these subnets
74
- 3.times do |i|
75
- output "#{subnet_name}_subnet#{i.positive? ? (i + 1) : ""}_name".cfnize,
76
- value: "<%= name.downcase %>_#{subnet_name}_subnet#{i.positive? ? (i + 1) : ""}".cfnize.ref
77
- end
78
- end
79
- end
80
-
81
- output :vpc_cidr,
82
- value: "<%= name %>Vpc".ref("CidrBlock")
83
- output :<%= name.downcase %>_vpc,
84
- value: "<%= name %>Vpc".ref
85
- end
86
- end
87
- end
@@ -1,39 +0,0 @@
1
- require "rubycfn"
2
- require_relative "../spec_helper"
3
- require "active_support/concern"
4
-
5
- require_relative "../../lib/main.rb"
6
-
7
- module VpcSpec
8
- extend ActiveSupport::Concern
9
- include Rubycfn
10
-
11
- included do
12
- description "VPC Stack RSpec"
13
- include Concerns::GlobalVariables
14
- include Concerns::SharedMethods
15
- include VpcStack::Main
16
- end
17
- end
18
-
19
- VpcSpecCfn = include VpcSpec
20
-
21
- describe VpcSpec do
22
- RspecVpcSpec = VpcSpecCfn.render_template
23
- let(:template) { JSON.parse(RspecVpcSpec) }
24
-
25
- context "Renders template" do
26
- subject { template }
27
- it { should have_key "Resources" }
28
-
29
- context "Has Required Resources" do
30
- let(:resources) { template["Resources"] }
31
- subject { resources }
32
- it { should have_key "<%= name %>InternetGateway" }
33
- it { should have_key "<%= name %>Route" }
34
- it { should have_key "<%= name %>RouteTable" }
35
- it { should have_key "<%= name %>Vpc" }
36
- it { should have_key "<%= name %>VpcGatewayAttachment" }
37
- end
38
- end
39
- end