sumomo 0.8.14 → 0.8.16

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 14cea3c6a1850dccbf4f44fc0de5aac2f55082d2d881bd6b09486715b1514629
4
- data.tar.gz: 2e8b573a332ba356006ee19f00cc92150faf04ad0b4bd05e1515f6ad150532d7
3
+ metadata.gz: 4b360df868147cde0facdac9c5ff2f76944db409ce8eb0fd8b0e9e4544b8d3fb
4
+ data.tar.gz: 720f37705fc0f3d7f7555c3f9465229ed50472b75350671a6a163e2084fa9f94
5
5
  SHA512:
6
- metadata.gz: 0c12ab52d9b883043cc9aa335ca2ce44420061c328831708c25a7a66f76289e7e913dc8c09b271e33067fbe2a9c98bc43403830ffbadadb3831b75529f5dcf27
7
- data.tar.gz: 21bc6b234abed78dc5effb72cf516200b5ae9a1f104bcbc22b629c9df5ed8a702ba8142063bc2e950b6fea86b026da00c731d4a556c281c55b4e6d23b7b7c435
6
+ metadata.gz: 397367ad6b32f8a982e22e7c4d43fa111e152c676a49f4b0fe328aab5ac865be88cb22c9a8c8b67a103f70e2a48dc3576c1e9ad38f848b25b328bae9bd1bf47c
7
+ data.tar.gz: 455ae961e13af305fcc9f3b4ac29036837fa39c97a2cf8c8ec9bcaf190bd1bb7cd7b94ef9d564d57feef5d647e0fc7796f5178b7cf479d96b3afeaf42256131e
@@ -4,6 +4,8 @@ var acm = new aws.ACM({region: cert_region});
4
4
 
5
5
  var return_properties = {};
6
6
 
7
+ var retries = 0;
8
+
7
9
  function extractRootDomain(domain)
8
10
  {
9
11
  var splitArr = domain.split('.');
@@ -12,26 +14,55 @@ function extractRootDomain(domain)
12
14
  //extracting the root domain here
13
15
  if (arrLen > 2)
14
16
  {
15
- domain = splitArr[arrLen - 2] + '.' + splitArr[arrLen - 1];
17
+ domain = splitArr.slice(1).join(".");
16
18
  }
17
19
  return domain;
18
20
  }
19
21
 
20
22
  function wait_for_approval(domain_name, on_success, on_fail)
21
23
  {
24
+ console.log('read domain: ', domain_name);
22
25
  get_domain(domain_name, function(data)
23
26
  {
27
+ console.log('loaded domain data: ');
28
+ console.log(data);
29
+
24
30
  var params = {
25
31
  CertificateArn: data.arn
26
32
  };
27
33
 
28
34
  acm.describeCertificate(params, function(err, cert_data) {
35
+ console.log('received certificate data');
36
+ console.log(cert_data);
37
+ console.log(cert_data.Certificate.DomainValidationOptions);
38
+ console.log(cert_data.Certificate.DomainValidationOptions[0]);
39
+
40
+
29
41
  if (err)
30
42
  {
31
43
  on_fail(err);
32
44
  }
33
45
  else
34
46
  {
47
+ if (!cert_data.Certificate.DomainValidationOptions[0].ResourceRecord)
48
+ {
49
+ // damn AWS now does not return this information immediately
50
+ // and we have to wait for it.
51
+ return setTimeout(function()
52
+ {
53
+ console.log('no ResourceRecord found, retrying...', "attempts:", retries);
54
+ if (retries < 60)
55
+ {
56
+ wait_for_approval(domain_name, on_success, on_fail);
57
+ retries += 1;
58
+ }
59
+ else
60
+ {
61
+ on_fail('AWS did not return ResourceRecord. (AWS issue)');
62
+ }
63
+
64
+ }, 1000);
65
+ }
35
66
  // Do not wait if we requested DNS validation
36
67
  if (request.ResourceProperties.ValidationMethod === "DNS")
37
68
  {
@@ -11,6 +11,8 @@ function wait_for_approval(on_success, on_fail)
11
11
  };
12
12
 
13
13
  acm.describeCertificate(params, function(err, cert_data) {
14
+ console.log('describe certificate data');
15
+ console.log(cert_data);;
14
16
  if (err)
15
17
  {
16
18
  on_fail(err);
@@ -38,6 +40,8 @@ function wait_for_approval(on_success, on_fail)
38
40
 
39
41
  function fail(err)
40
42
  {
43
+ console.log('Errored.');
44
+ console.log(err);
41
45
  Cloudformation.send(request, context, Cloudformation.FAILED, {}, "Error: " + err);
42
46
  }
43
47
 
data/lib/sumomo/api.rb CHANGED
@@ -163,10 +163,13 @@ module Sumomo
163
163
  domain_name,
164
164
  name:,
165
165
  script: nil,
166
+ env: {},
166
167
  dns: nil,
167
168
  cert: nil,
168
169
  mtls_truststore: nil,
169
170
  logging: true,
171
+ network: nil,
172
+ layer: nil,
170
173
  with_statements: [], &block)
171
174
 
172
175
  api = make 'AWS::ApiGateway::RestApi', name: name do
@@ -221,6 +224,9 @@ module Sumomo
221
224
 
222
225
  fun = make_lambda(
223
226
  name: "#{name}Lambda#{@version_number}",
227
+ env: env,
228
+ network: network,
229
+ layer: layer,
224
230
  files: files,
225
231
  role: custom_resource_exec_role(with_statements: with_statements) )
226
232
 
data/lib/sumomo/ec2.rb CHANGED
@@ -268,6 +268,7 @@ module Sumomo
268
268
  docker_password: '',
269
269
  eip: nil,
270
270
  policies: [],
271
+ scalein_protection: true,
271
272
  &block
272
273
  )
273
274
 
@@ -464,6 +465,8 @@ module Sumomo
464
465
 
465
466
  VPCZoneIdentifier subnet_ids
466
467
 
468
+ NewInstancesProtectedFromScaleIn scalein_protection
469
+
467
470
  LaunchConfigurationName launch_config
468
471
  LoadBalancerNames [elb] if elb
469
472
 
data/lib/sumomo/stack.rb CHANGED
@@ -24,8 +24,11 @@ module Sumomo
24
24
  function_key: "cloudformation/lambda/function_#{name}",
25
25
  handler: 'index.handler',
26
26
  runtime: 'nodejs14.x',
27
+ env: {},
27
28
  memory_size: 128,
28
29
  timeout: 30,
30
+ network: nil,
31
+ layer: nil,
29
32
  enable_logging: true,
30
33
  role: nil)
31
34
 
@@ -45,6 +48,29 @@ module Sumomo
45
48
  end
46
49
  end
47
50
 
51
+ vpcconfig = nil
52
+
53
+ if network != nil
54
+
55
+ layer ||= network.subnets.keys.first
56
+
57
+ ingress = [allow_port(:all)]
58
+ egress = [allow_port(:all)]
59
+
60
+ lambda_sec_group = make 'AWS::EC2::SecurityGroup' do
61
+ GroupDescription "Lambda Security group for layer: #{layer}"
62
+ SecurityGroupIngress ingress
63
+ SecurityGroupEgress egress
64
+ VpcId network.vpc
65
+ end
66
+
67
+ subnetids = network.subnets[layer].map { |x| x[:name] }
68
+ vpcconfig = {
69
+ SecurityGroupIds: [lambda_sec_group],
70
+ SubnetIds: subnetids
71
+ }
72
+ end
73
+
48
74
  @store.set_raw(function_key, stringio.string)
49
75
 
50
76
  stack = self
@@ -58,6 +84,10 @@ module Sumomo
58
84
  Runtime runtime
59
85
  Timeout timeout
60
86
  Role role.Arn
87
+ VpcConfig vpcconfig unless vpcconfig.nil?
88
+ Environment do
89
+ Variables env
90
+ end
61
91
  end
62
92
 
63
93
  if enable_logging
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Sumomo
4
- VERSION = '0.8.14'
4
+ VERSION = '0.8.16'
5
5
  end
data/lib/sumomo.rb CHANGED
@@ -118,7 +118,7 @@ module Sumomo
118
118
  template_url: store.url('cloudformation/template'),
119
119
  parameters: hidden_values,
120
120
  disable_rollback: false,
121
- capabilities: ['CAPABILITY_IAM']
121
+ capabilities: ['CAPABILITY_IAM', 'CAPABILITY_NAMED_IAM']
122
122
  }
123
123
 
124
124
  begin
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sumomo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.14
4
+ version: 0.8.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Siaw
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-12-20 00:00:00.000000000 Z
11
+ date: 2022-09-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler