MovableInkAWS 1.0.18 → 1.2.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c67a1debb22324f3f567c390c5a5baf61c714b56567712dd6269dd044b2ed9dd
4
- data.tar.gz: 9b02840d52d5ee4a4f99060ec274f9938617247e1df9468efbb352fb2ff2285f
3
+ metadata.gz: 7154439aecffd0332803c4aad89b681008e58a3f297116b56a4a3119d531be9b
4
+ data.tar.gz: a22a422e58c5631efc1ef57d6802dbafd5f8823cb1432769313b088e767ffcd5
5
5
  SHA512:
6
- metadata.gz: f547de79011e7fc83bb33db7d905da20c55d8a5308ef6e539193bfabacbcf1a5f0cde3a417ec454b6c24f0361ec1bef5b0d05ebbba5730f1cc5427643be28550
7
- data.tar.gz: 87ad9c72f123ef2e70d3ff35d89eeef5dac3948144668e88554de402eff5b71e733144d2d7dc9fd51473662a3e36fc479525c1ff01a63ac0d34c1046d1d2d2c7
6
+ metadata.gz: 6d04cbc7a65a5d71459009150197091bdd59137ee6da40e521d275ccfca861f8c85ecc0c3c07dac9741bae004828726341f8509dc0f4eab5ddada36e40309408
7
+ data.tar.gz: 14e3171ff0d0c041cb88deabfe10a39d43826769436e94b4ae7f8adbd92811a645b7d3ec33e7d4cd1a30a40ae4888c2d9c7b7d40604b03affc3fd2c550bcd863
@@ -1,12 +1,13 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- MovableInkAWS (1.0.18)
4
+ MovableInkAWS (1.2.0)
5
5
  aws-sdk-athena (~> 1)
6
6
  aws-sdk-autoscaling (~> 1)
7
7
  aws-sdk-cloudwatch (~> 1)
8
8
  aws-sdk-core (~> 3)
9
9
  aws-sdk-ec2 (~> 1)
10
+ aws-sdk-eks (~> 1)
10
11
  aws-sdk-elasticache (~> 1)
11
12
  aws-sdk-rds (~> 1)
12
13
  aws-sdk-route53 (~> 1)
@@ -20,48 +21,51 @@ GEM
20
21
  remote: https://rubygems.org/
21
22
  specs:
22
23
  aws-eventstream (1.1.0)
23
- aws-partitions (1.322.0)
24
- aws-sdk-athena (1.26.0)
25
- aws-sdk-core (~> 3, >= 3.71.0)
24
+ aws-partitions (1.353.0)
25
+ aws-sdk-athena (1.30.0)
26
+ aws-sdk-core (~> 3, >= 3.99.0)
26
27
  aws-sigv4 (~> 1.1)
27
- aws-sdk-autoscaling (1.37.0)
28
- aws-sdk-core (~> 3, >= 3.71.0)
28
+ aws-sdk-autoscaling (1.44.0)
29
+ aws-sdk-core (~> 3, >= 3.99.0)
29
30
  aws-sigv4 (~> 1.1)
30
- aws-sdk-cloudwatch (1.38.0)
31
- aws-sdk-core (~> 3, >= 3.71.0)
31
+ aws-sdk-cloudwatch (1.42.0)
32
+ aws-sdk-core (~> 3, >= 3.99.0)
32
33
  aws-sigv4 (~> 1.1)
33
- aws-sdk-core (3.97.0)
34
+ aws-sdk-core (3.104.3)
34
35
  aws-eventstream (~> 1, >= 1.0.2)
35
36
  aws-partitions (~> 1, >= 1.239.0)
36
37
  aws-sigv4 (~> 1.1)
37
38
  jmespath (~> 1.0)
38
- aws-sdk-ec2 (1.164.0)
39
- aws-sdk-core (~> 3, >= 3.71.0)
39
+ aws-sdk-ec2 (1.183.0)
40
+ aws-sdk-core (~> 3, >= 3.99.0)
40
41
  aws-sigv4 (~> 1.1)
41
- aws-sdk-elasticache (1.35.0)
42
- aws-sdk-core (~> 3, >= 3.71.0)
42
+ aws-sdk-eks (1.39.0)
43
+ aws-sdk-core (~> 3, >= 3.99.0)
43
44
  aws-sigv4 (~> 1.1)
44
- aws-sdk-kms (1.32.0)
45
- aws-sdk-core (~> 3, >= 3.71.0)
45
+ aws-sdk-elasticache (1.40.0)
46
+ aws-sdk-core (~> 3, >= 3.99.0)
46
47
  aws-sigv4 (~> 1.1)
47
- aws-sdk-rds (1.85.0)
48
- aws-sdk-core (~> 3, >= 3.71.0)
48
+ aws-sdk-kms (1.36.0)
49
+ aws-sdk-core (~> 3, >= 3.99.0)
49
50
  aws-sigv4 (~> 1.1)
50
- aws-sdk-route53 (1.35.0)
51
- aws-sdk-core (~> 3, >= 3.71.0)
51
+ aws-sdk-rds (1.95.0)
52
+ aws-sdk-core (~> 3, >= 3.99.0)
52
53
  aws-sigv4 (~> 1.1)
53
- aws-sdk-s3 (1.67.0)
54
- aws-sdk-core (~> 3, >= 3.96.1)
54
+ aws-sdk-route53 (1.40.0)
55
+ aws-sdk-core (~> 3, >= 3.99.0)
56
+ aws-sigv4 (~> 1.1)
57
+ aws-sdk-s3 (1.76.0)
58
+ aws-sdk-core (~> 3, >= 3.104.1)
55
59
  aws-sdk-kms (~> 1)
56
60
  aws-sigv4 (~> 1.1)
57
- aws-sdk-sns (1.24.0)
58
- aws-sdk-core (~> 3, >= 3.71.0)
61
+ aws-sdk-sns (1.29.0)
62
+ aws-sdk-core (~> 3, >= 3.99.0)
59
63
  aws-sigv4 (~> 1.1)
60
- aws-sdk-ssm (1.79.0)
61
- aws-sdk-core (~> 3, >= 3.71.0)
64
+ aws-sdk-ssm (1.86.0)
65
+ aws-sdk-core (~> 3, >= 3.99.0)
62
66
  aws-sigv4 (~> 1.1)
63
- aws-sigv4 (1.1.4)
64
- aws-eventstream (~> 1.0, >= 1.0.2)
67
+ aws-sigv4 (1.2.1)
68
+ aws-eventstream (~> 1, >= 1.0.2)
65
69
  diff-lcs (1.3)
66
70
  httparty (0.16.3)
67
71
  mime-types (~> 3.0)
@@ -75,15 +79,15 @@ GEM
75
79
  rspec-core (~> 3.9.0)
76
80
  rspec-expectations (~> 3.9.0)
77
81
  rspec-mocks (~> 3.9.0)
78
- rspec-core (3.9.0)
79
- rspec-support (~> 3.9.0)
80
- rspec-expectations (3.9.0)
82
+ rspec-core (3.9.2)
83
+ rspec-support (~> 3.9.3)
84
+ rspec-expectations (3.9.2)
81
85
  diff-lcs (>= 1.2.0, < 2.0)
82
86
  rspec-support (~> 3.9.0)
83
- rspec-mocks (3.9.0)
87
+ rspec-mocks (3.9.1)
84
88
  diff-lcs (>= 1.2.0, < 2.0)
85
89
  rspec-support (~> 3.9.0)
86
- rspec-support (3.9.0)
90
+ rspec-support (3.9.3)
87
91
 
88
92
  PLATFORMS
89
93
  ruby
@@ -93,4 +97,4 @@ DEPENDENCIES
93
97
  rspec (~> 3.6)
94
98
 
95
99
  BUNDLED WITH
96
- 1.17.3
100
+ 2.1.3
@@ -14,6 +14,7 @@ Gem::Specification.new do |s|
14
14
  s.add_runtime_dependency 'aws-sdk-autoscaling', '~> 1'
15
15
  s.add_runtime_dependency 'aws-sdk-cloudwatch', '~> 1'
16
16
  s.add_runtime_dependency 'aws-sdk-ec2', '~> 1'
17
+ s.add_runtime_dependency 'aws-sdk-eks', '~> 1'
17
18
  s.add_runtime_dependency 'aws-sdk-elasticache', '~> 1'
18
19
  s.add_runtime_dependency 'aws-sdk-rds', '~> 1'
19
20
  s.add_runtime_dependency 'aws-sdk-route53', '~> 1'
@@ -1,4 +1,5 @@
1
1
  require_relative 'aws/errors'
2
+ require_relative 'aws/metadata'
2
3
  require_relative 'aws/ec2'
3
4
  require_relative 'aws/sns'
4
5
  require_relative 'aws/autoscaling'
@@ -6,6 +7,7 @@ require_relative 'aws/route53'
6
7
  require_relative 'aws/ssm'
7
8
  require_relative 'aws/athena'
8
9
  require_relative 'aws/s3'
10
+ require_relative 'aws/eks'
9
11
  require_relative 'aws/elasticache'
10
12
  require_relative 'aws/api_gateway'
11
13
  require 'aws-sdk-cloudwatch'
@@ -13,6 +15,7 @@ require 'aws-sdk-cloudwatch'
13
15
 
14
16
  module MovableInk
15
17
  class AWS
18
+ include Metadata
16
19
  include EC2
17
20
  include SNS
18
21
  include Autoscaling
@@ -22,6 +25,7 @@ module MovableInk
22
25
  include S3
23
26
  include ElastiCache
24
27
  include ApiGateway
28
+ include EKS
25
29
 
26
30
  class << self
27
31
  def regions
@@ -61,6 +65,7 @@ module MovableInk
61
65
  Aws::EC2::Errors::ResourceAlreadyAssociated,
62
66
  Aws::EC2::Errors::Unavailable,
63
67
  Aws::SNS::Errors::ThrottledException,
68
+ Aws::AutoScaling::Errors::Throttling,
64
69
  Aws::AutoScaling::Errors::ThrottledException,
65
70
  Aws::S3::Errors::SlowDown,
66
71
  Aws::Route53::Errors::Throttling,
@@ -68,6 +73,7 @@ module MovableInk
68
73
  Aws::Route53::Errors::PriorRequestNotComplete,
69
74
  Aws::Route53::Errors::ServiceUnavailable,
70
75
  Aws::SSM::Errors::TooManyUpdates,
76
+ Aws::SSM::Errors::ThrottlingException,
71
77
  Aws::Athena::Errors::ThrottlingException,
72
78
  MovableInk::AWS::Errors::NoEnvironmentTagError
73
79
  sleep_time = (num+1)**2 + rand(10)
@@ -93,14 +99,6 @@ module MovableInk
93
99
  self.class.regions
94
100
  end
95
101
 
96
- def availability_zone
97
- @availability_zone ||= begin
98
- az = `ec2metadata --availability-zone 2>/dev/null`.chomp
99
- raise(MovableInk::AWS::Errors::EC2Required) if az.empty?
100
- az
101
- end
102
- end
103
-
104
102
  def my_region
105
103
  @my_region ||= availability_zone.chop
106
104
  end
@@ -63,14 +63,6 @@ module MovableInk
63
63
  end
64
64
  end
65
65
 
66
- def instance_id
67
- @instance_id ||= begin
68
- id = `ec2metadata --instance-id 2>/dev/null`.chomp
69
- raise(MovableInk::AWS::Errors::EC2Required) if id.empty?
70
- id
71
- end
72
- end
73
-
74
66
  def instance_tags
75
67
  @instance_tags ||= run_with_backoff(quiet: true) do
76
68
  ec2.describe_tags({
@@ -79,14 +71,6 @@ module MovableInk
79
71
  end
80
72
  end
81
73
 
82
- def private_ipv4
83
- @ipv4 ||= begin
84
- ipv4 = `ec2metadata --local-ipv4 2>/dev/null`.chomp
85
- raise(MovableInk::AWS::Errors::EC2Required) if ipv4.empty?
86
- ipv4
87
- end
88
- end
89
-
90
74
  def me
91
75
  @me ||= all_instances.select{|instance| instance.instance_id == instance_id}.first rescue nil
92
76
  end
@@ -98,7 +82,7 @@ module MovableInk
98
82
  name: 'tag:mi:roles',
99
83
  values: roles
100
84
  })
101
- instances = load_all_instances(my_region, filter: filter)
85
+ instances = load_all_instances(region, filter: filter)
102
86
  else
103
87
  instances = all_instances(region: region).select { |instance|
104
88
  instance.tags.select{ |tag| tag.key == 'mi:roles' }.detect { |tag|
@@ -0,0 +1,58 @@
1
+ require 'aws-sdk-eks'
2
+ require 'yaml'
3
+
4
+ module MovableInk
5
+ class AWS
6
+ module EKS
7
+ def eks(region: my_region)
8
+ @eks_client ||= {}
9
+ @eks_client[region] ||= Aws::EKS::Client.new(region: region)
10
+ end
11
+
12
+ def generate_kubeconfig(region: my_region, cluster_name:)
13
+ client = eks(region: region)
14
+
15
+ resp = run_with_backoff do
16
+ client.describe_cluster({ name: cluster_name })
17
+ rescue Aws::EKS::Errors::ResourceNotFoundException
18
+ return nil
19
+ end
20
+
21
+ cluster_arn = resp.cluster.arn
22
+ cluster_server_address = resp.cluster.endpoint
23
+ cluster_certificate_authority_data = resp.cluster.certificate_authority.data
24
+
25
+ {
26
+ 'apiVersion' => 'v1',
27
+ 'clusters' => [{
28
+ 'cluster' => {
29
+ 'certificate-authority-data' => cluster_certificate_authority_data,
30
+ 'server' => cluster_server_address,
31
+ },
32
+ 'name' => cluster_arn
33
+ }],
34
+ 'contexts' => [{
35
+ 'context' => {
36
+ 'cluster' => cluster_arn,
37
+ 'user' => cluster_arn,
38
+ },
39
+ 'name' => cluster_arn,
40
+ }],
41
+ 'current-context' => cluster_arn,
42
+ 'kind' => 'Config',
43
+ 'preferences' => {},
44
+ 'users' => [{
45
+ 'name' => cluster_arn,
46
+ 'user' => {
47
+ 'exec' => {
48
+ 'apiVersion' => 'client.authentication.k8s.io/v1alpha1',
49
+ 'args' => ['--region', region, 'eks', 'get-token', '--cluster-name', cluster_name],
50
+ 'command' => 'aws',
51
+ }
52
+ }
53
+ }]
54
+ }.to_yaml
55
+ end
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,62 @@
1
+ require 'net/http'
2
+
3
+ module MovableInk
4
+ class AWS
5
+ module Metadata
6
+ def http
7
+ @http ||= begin
8
+ http = Net::HTTP.new("169.254.169.254", 80)
9
+ http.open_timeout = 1
10
+ http.read_timeout = 1
11
+ http
12
+ end
13
+ end
14
+
15
+ def retrieve_metadata(key)
16
+ request = Net::HTTP::Get.new("/latest/meta-data/#{key}")
17
+ request['X-aws-ec2-metadata-token'] = imds_token
18
+ response = http.request(request)
19
+ response.body
20
+ rescue
21
+ ""
22
+ end
23
+
24
+ def availability_zone
25
+ @availability_zone ||= begin
26
+ az = retrieve_metadata('placement/availability-zone')
27
+ raise(MovableInk::AWS::Errors::EC2Required) if az.empty?
28
+ az
29
+ end
30
+ end
31
+
32
+ def instance_id
33
+ @instance_id ||= begin
34
+ id = retrieve_metadata('instance-id')
35
+ raise(MovableInk::AWS::Errors::EC2Required) if id.empty?
36
+ id
37
+ end
38
+ end
39
+
40
+ def private_ipv4
41
+ @ipv4 ||= begin
42
+ ipv4 = retrieve_metadata('local-ipv4')
43
+ raise(MovableInk::AWS::Errors::EC2Required) if ipv4.empty?
44
+ ipv4
45
+ end
46
+ end
47
+
48
+ private
49
+
50
+ def imds_token
51
+ begin
52
+ request = Net::HTTP::Put.new('/latest/api/token')
53
+ request['X-aws-ec2-metadata-token-ttl-seconds'] = 120
54
+ response = http.request(request)
55
+ response.body
56
+ rescue
57
+ nil
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
@@ -1,5 +1,5 @@
1
1
  module MovableInk
2
2
  class AWS
3
- VERSION = '1.0.18'
3
+ VERSION = '1.2.0'
4
4
  end
5
5
  end
@@ -2,15 +2,6 @@ require_relative '../lib/movable_ink/aws'
2
2
 
3
3
  describe MovableInk::AWS do
4
4
  context "outside EC2" do
5
- it "should raise an error if EC2 is required" do
6
- aws = MovableInk::AWS.new
7
- allow(aws).to receive(:`).with('ec2metadata --instance-id 2>/dev/null').and_return("")
8
- allow(aws).to receive(:`).with('ec2metadata --availability-zone 2>/dev/null').and_return("")
9
-
10
- expect{ aws.instance_id }.to raise_error(MovableInk::AWS::Errors::EC2Required)
11
- expect{ aws.availability_zone }.to raise_error(MovableInk::AWS::Errors::EC2Required)
12
- end
13
-
14
5
  it 'doesnt raise an error if instance_id is set' do
15
6
  aws = MovableInk::AWS.new(instance_id: 'i-987654321')
16
7
  expect(aws.instance_id).to eq('i-987654321')
@@ -18,21 +9,9 @@ describe MovableInk::AWS do
18
9
  end
19
10
 
20
11
  context "inside EC2" do
21
- it "should call ec2metadata to get the instance ID" do
22
- aws = MovableInk::AWS.new
23
- expect(aws).to receive(:`).with('ec2metadata --instance-id 2>/dev/null').and_return("i-12345\n")
24
- expect(aws.instance_id).to eq('i-12345')
25
- end
26
-
27
- it "should call ec2metadata to get the availability zone" do
28
- aws = MovableInk::AWS.new
29
- expect(aws).to receive(:`).with('ec2metadata --availability-zone 2>/dev/null').and_return("us-east-1a\n")
30
- expect(aws.availability_zone).to eq('us-east-1a')
31
- end
32
-
33
12
  it "should find the datacenter by region" do
34
13
  aws = MovableInk::AWS.new
35
- expect(aws).to receive(:`).with('ec2metadata --availability-zone 2>/dev/null').and_return("us-east-1a\n")
14
+ expect(aws).to receive(:retrieve_metadata).with('placement/availability-zone').and_return("us-east-1a")
36
15
  expect(aws.datacenter).to eq('iad')
37
16
  end
38
17
 
@@ -4,17 +4,11 @@ describe MovableInk::AWS::EC2 do
4
4
  context "outside EC2" do
5
5
  it "should raise an error if trying to load mi_env outside of EC2" do
6
6
  aws = MovableInk::AWS.new
7
- allow(aws).to receive(:`).with('ec2metadata --instance-id 2>/dev/null').and_return("")
8
- allow(aws).to receive(:`).with('ec2metadata --availability-zone 2>/dev/null').and_return("")
7
+ allow(aws).to receive(:retrieve_metadata).with('instance-id').and_return("")
8
+ allow(aws).to receive(:retrieve_metadata).with('placement/availability-zone').and_return("")
9
9
  expect{ aws.mi_env }.to raise_error(MovableInk::AWS::Errors::EC2Required)
10
10
  end
11
11
 
12
- it 'should raise an error if trying to load private_ipv4 outside of EC2' do
13
- aws = MovableInk::AWS.new
14
- allow(aws).to receive(:`).with('ec2metadata --local-ipv4 2>/dev/null').and_return('')
15
- expect{ aws.private_ipv4 }.to raise_error(MovableInk::AWS::Errors::EC2Required)
16
- end
17
-
18
12
  it "should use the provided environment" do
19
13
  aws = MovableInk::AWS.new(environment: 'test')
20
14
  expect(aws.mi_env).to eq('test')
@@ -67,12 +61,6 @@ describe MovableInk::AWS::EC2 do
67
61
  expect(aws.mi_env).to eq('test')
68
62
  end
69
63
 
70
- it 'calls ec2metadata to get the private ipv4 address of the instance' do
71
- aws = MovableInk::AWS.new
72
- allow(aws).to receive(:`).with('ec2metadata --local-ipv4 2>/dev/null').and_return('10.0.0.1')
73
- expect(aws.private_ipv4).to eq('10.0.0.1')
74
- end
75
-
76
64
  context 'instance_tags' do
77
65
  it 'returns the tags of the current instance' do
78
66
  ec2.stub_responses(:describe_tags, tag_data)
@@ -0,0 +1,40 @@
1
+ require_relative '../lib/movable_ink/aws'
2
+
3
+ describe MovableInk::AWS::Metadata do
4
+ context 'outside ec2' do
5
+ it 'should raise an error if EC2 is required' do
6
+ aws = MovableInk::AWS.new
7
+ allow(aws).to receive(:retrieve_metadata).with('instance-id').and_return("")
8
+ allow(aws).to receive(:retrieve_metadata).with('placement/availability-zone').and_return("")
9
+
10
+ expect{ aws.instance_id }.to raise_error(MovableInk::AWS::Errors::EC2Required)
11
+ expect{ aws.availability_zone }.to raise_error(MovableInk::AWS::Errors::EC2Required)
12
+ end
13
+
14
+ it 'should raise an error if trying to load private_ipv4 outside of EC2' do
15
+ aws = MovableInk::AWS.new
16
+ allow(aws).to receive(:retrieve_metadata).with('local-ipv4').and_return('')
17
+ expect{ aws.private_ipv4 }.to raise_error(MovableInk::AWS::Errors::EC2Required)
18
+ end
19
+ end
20
+
21
+ context 'inside ec2' do
22
+ it 'calls the EC2 metadata service to get the private ipv4 address of the instance' do
23
+ aws = MovableInk::AWS.new
24
+ allow(aws).to receive(:retrieve_metadata).with('local-ipv4').and_return('10.0.0.1')
25
+ expect(aws.private_ipv4).to eq('10.0.0.1')
26
+ end
27
+
28
+ it 'calls the EC2 metadata service to get the instance ID' do
29
+ aws = MovableInk::AWS.new
30
+ expect(aws).to receive(:retrieve_metadata).with('instance-id').and_return("i-12345")
31
+ expect(aws.instance_id).to eq('i-12345')
32
+ end
33
+
34
+ it 'calls the EC2 metadata service to get the availability zone' do
35
+ aws = MovableInk::AWS.new
36
+ expect(aws).to receive(:retrieve_metadata).with('placement/availability-zone').and_return("us-east-1a")
37
+ expect(aws.availability_zone).to eq('us-east-1a')
38
+ end
39
+ end
40
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: MovableInkAWS
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.18
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Chesler
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-30 00:00:00.000000000 Z
11
+ date: 2020-08-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '1'
83
+ - !ruby/object:Gem::Dependency
84
+ name: aws-sdk-eks
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: aws-sdk-elasticache
85
99
  requirement: !ruby/object:Gem::Requirement
@@ -210,8 +224,10 @@ files:
210
224
  - lib/movable_ink/aws/athena.rb
211
225
  - lib/movable_ink/aws/autoscaling.rb
212
226
  - lib/movable_ink/aws/ec2.rb
227
+ - lib/movable_ink/aws/eks.rb
213
228
  - lib/movable_ink/aws/elasticache.rb
214
229
  - lib/movable_ink/aws/errors.rb
230
+ - lib/movable_ink/aws/metadata.rb
215
231
  - lib/movable_ink/aws/route53.rb
216
232
  - lib/movable_ink/aws/s3.rb
217
233
  - lib/movable_ink/aws/sns.rb
@@ -221,6 +237,7 @@ files:
221
237
  - spec/aws_spec.rb
222
238
  - spec/ec2_spec.rb
223
239
  - spec/elasticache_spec.rb
240
+ - spec/metadata_spec.rb
224
241
  - spec/route53_spec.rb
225
242
  - spec/s3_spec.rb
226
243
  - spec/sns_spec.rb
@@ -243,8 +260,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
243
260
  - !ruby/object:Gem::Version
244
261
  version: '0'
245
262
  requirements: []
246
- rubyforge_project:
247
- rubygems_version: 2.7.7
263
+ rubygems_version: 3.0.8
248
264
  signing_key:
249
265
  specification_version: 4
250
266
  summary: AWS Utility methods for MovableInk