rubycfn 0.5.2 → 0.5.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,12 +1,14 @@
1
1
  module EcsStack
2
2
  extend ActiveSupport::Concern
3
3
  include Rubycfn
4
+
4
5
  included do
5
6
  include Concerns::GlobalVariables
6
7
  include Concerns::SharedMethods
7
8
  include EcsStack::EcsCluster
8
9
  include EcsStack::LifecycleHook
9
10
  include EcsStack::LoadBalancer
11
+ include EcsStack::Rollback
10
12
 
11
13
  description generate_stack_description("EcsStack")
12
14
  end
@@ -0,0 +1,77 @@
1
+ module EcsStack
2
+ module Rollback
3
+ extend ActiveSupport::Concern
4
+ included do
5
+ resource :application_deployment_failure_rollback_lambda,
6
+ type: "AWS::Lambda::Function" do |r|
7
+ r.property(:code) do
8
+ {
9
+ "S3Bucket": "xebia-${AWS::Region}".fnsub,
10
+ "S3Key": "ecs-rollback-0.0.6.zip"
11
+ }
12
+ end
13
+ r.property(:handler) { "index.lambda_handler" }
14
+ r.property(:role) { :application_deployment_failure_rollback_lambda_role.ref(:arn) }
15
+ r.property(:runtime) { "ruby2.5" }
16
+ r.property(:timeout) { 500 }
17
+ end
18
+
19
+ resource :application_deployment_failure_rollback_lambda_role,
20
+ type: "AWS::IAM::Role" do |r|
21
+ r.property(:assume_role_policy_document) do
22
+ {
23
+ "Version": "2012-10-17",
24
+ "Statement": [
25
+ {
26
+ "Effect": "Allow",
27
+ "Principal": {
28
+ "Service": [
29
+ "lambda.amazonaws.com"
30
+ ]
31
+ },
32
+ "Action": "sts:AssumeRole"
33
+ }
34
+ ]
35
+ }
36
+ end
37
+ r.property(:role_name) { "#{environment}-EcsApplicationFailureDetectionRole" }
38
+ end
39
+
40
+ resource :application_deployment_failure_rollback_lambda_policy,
41
+ type: "AWS::IAM::Policy" do |r|
42
+ r.property(:policy_document) do
43
+ {
44
+ "Version": "2012-10-17",
45
+ "Statement": [
46
+ {
47
+ "Effect": "Allow",
48
+ "Action": %w(logs:CreateLogGroup logs:CreateLogStream logs:PutLogEvents),
49
+ "Resource": [
50
+ "arn:aws:logs:*:*:*"
51
+ ]
52
+ },
53
+ {
54
+ "Effect": "Allow",
55
+ "Action": [
56
+ "ecs:*"
57
+ ],
58
+ "Resource": [
59
+ "*"
60
+ ]
61
+ }
62
+ ]
63
+ }
64
+ end
65
+ r.property(:policy_name) { "#{environment}-EcsApplicationFailureDetectionPolicy" }
66
+ r.property(:roles) do
67
+ [
68
+ :application_deployment_failure_rollback_lambda_role.ref
69
+ ]
70
+ end
71
+ end
72
+
73
+ output :application_deployment_failure_rollback_function_arn,
74
+ value: :application_deployment_failure_rollback_lambda.ref(:arn)
75
+ end
76
+ end
77
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubycfn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dennis Vink
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-03-05 00:00:00.000000000 Z
11
+ date: 2020-03-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: neatjson
@@ -276,6 +276,7 @@ files:
276
276
  - templates/.env.acceptance
277
277
  - templates/.env.dependencies.rspec
278
278
  - templates/.env.development
279
+ - templates/.env.private
279
280
  - templates/.env.production
280
281
  - templates/.env.rspec
281
282
  - templates/.env.test
@@ -284,7 +285,6 @@ files:
284
285
  - templates/Gemfile
285
286
  - templates/README.md
286
287
  - templates/Rakefile
287
- - templates/bootstrap/dependency_stack.rb
288
288
  - templates/config.yaml
289
289
  - templates/lib/aws_helper/aws_sdk.rb
290
290
  - templates/lib/aws_helper/compiler.rb
@@ -313,6 +313,7 @@ files:
313
313
  - templates/lib/stacks/ecs_stack/lifecycle_hook.rb
314
314
  - templates/lib/stacks/ecs_stack/load_balancer.rb
315
315
  - templates/lib/stacks/ecs_stack/main.rb
316
+ - templates/lib/stacks/ecs_stack/rollback.rb
316
317
  - templates/lib/stacks/parent_stack/main.rb
317
318
  - templates/lib/stacks/parent_stack/parent.rb
318
319
  - templates/lib/stacks/vpc_stack/infra_vpc.rb
@@ -1,49 +0,0 @@
1
- description "Dependency Stack"
2
-
3
- parameter :environment,
4
- description: "Environment name",
5
- type: "String"
6
-
7
- parameter :domain_name,
8
- description: "Domain name",
9
- type: "String"
10
-
11
- condition :has_environment,
12
- [["", :environment.ref].fnequals].fnnot
13
-
14
- condition :has_domain_name,
15
- [["", :domain_name.ref].fnequals].fnnot
16
-
17
- %i(
18
- artifact_bucket
19
- cloudformation_bucket
20
- lambda_bucket
21
- logging_bucket
22
- ).each do |bucket|
23
- resource bucket,
24
- deletion_policy: "Retain",
25
- update_replace_policy: "Retain",
26
- type: "AWS::S3::Bucket"
27
-
28
- output bucket,
29
- value: bucket.ref
30
- end
31
-
32
- resource :hosted_zone,
33
- condition: "HasDomainName",
34
- type: "AWS::Route53::HostedZone" do |r|
35
- r.property(:hosted_zone_config) do
36
- {
37
- "Comment": ["Hosted zone for ", ["HasEnvironment", [:environment.ref, "."].fnjoin, ""].fnif, :domain_name.ref].fnjoin
38
- }
39
- end
40
- r.property(:name) { [["HasEnvironment", [:environment.ref, "."].fnjoin, ""].fnif, :domain_name.ref].fnjoin }
41
- end
42
-
43
- output :hosted_zone_id,
44
- condition: "HasDomainName",
45
- value: :hosted_zone.ref
46
-
47
- output :hosted_zone_name,
48
- condition: "HasDomainName",
49
- value: [["HasEnvironment", [:environment.ref, "."].fnjoin, ""].fnif, :domain_name.ref].fnjoin