genome 0.1.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 +7 -0
- data/.gitignore +20 -0
- data/.rspec +2 -0
- data/.travis.yml +5 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +21 -0
- data/README.md +110 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/genome.gemspec +41 -0
- data/lib/genome/builder.rb +102 -0
- data/lib/genome/config.rb +25 -0
- data/lib/genome/core/helpers/property.rb +32 -0
- data/lib/genome/core/helpers/property_config.rb +31 -0
- data/lib/genome/core/helpers/template.rb +45 -0
- data/lib/genome/core/templates/base.rb +19 -0
- data/lib/genome/core/templates/documentdb_cluster.rb +30 -0
- data/lib/genome/core/templates/documentdb_instance.rb +21 -0
- data/lib/genome/core/templates/documentdb_parameter_group.rb +19 -0
- data/lib/genome/core/templates/documentdb_subnet_group.rb +18 -0
- data/lib/genome/core/templates/ec2_security_group.rb +20 -0
- data/lib/genome/core/templates/ec2_security_group_ingress.rb +24 -0
- data/lib/genome/core/templates/ec2_subnet.rb +21 -0
- data/lib/genome/core/templates/ec2_vpc.rb +23 -0
- data/lib/genome/core/templates/ecs_cluster.rb +13 -0
- data/lib/genome/core/templates/sqs_queue.rb +16 -0
- data/lib/genome/error.rb +9 -0
- data/lib/genome/reference.rb +9 -0
- data/lib/genome/resource.rb +55 -0
- data/lib/genome/resources/documentdb.rb +139 -0
- data/lib/genome/resources/sqs_queue.rb +19 -0
- data/lib/genome/stack.rb +129 -0
- data/lib/genome/version.rb +3 -0
- data/lib/genome.rb +4 -0
- metadata +163 -0
@@ -0,0 +1,20 @@
|
|
1
|
+
require_relative 'base'
|
2
|
+
|
3
|
+
module Genome
|
4
|
+
module Core
|
5
|
+
module Templates
|
6
|
+
class EC2SecurityGroup
|
7
|
+
include Base
|
8
|
+
|
9
|
+
aws_template 'AWS::EC2::SecurityGroup'
|
10
|
+
|
11
|
+
property :GroupDescription
|
12
|
+
property :GroupName
|
13
|
+
property :SecurityGroupEgress
|
14
|
+
property :SecurityGroupIngress
|
15
|
+
property :Tags
|
16
|
+
property :VpcId
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require_relative 'base'
|
2
|
+
|
3
|
+
module Genome
|
4
|
+
module Core
|
5
|
+
module Templates
|
6
|
+
class EC2SecurityGroupIngress
|
7
|
+
include Base
|
8
|
+
|
9
|
+
aws_template 'AWS::EC2::SecurityGroupIngress'
|
10
|
+
|
11
|
+
property :GroupId, settable: true
|
12
|
+
property :SourceSecurityGroupId, settable: true
|
13
|
+
property :FromPort, settable: true
|
14
|
+
property :ToPort, settable: true
|
15
|
+
property :IpProtocol, settable: true
|
16
|
+
|
17
|
+
module IpProtocols
|
18
|
+
TCP = 'tcp'.freeze
|
19
|
+
ICMP = 'icmp'.freeze
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require_relative 'base'
|
2
|
+
|
3
|
+
module Genome
|
4
|
+
module Core
|
5
|
+
module Templates
|
6
|
+
class EC2Subnet
|
7
|
+
include Base
|
8
|
+
|
9
|
+
aws_template 'AWS::EC2::Subnet'
|
10
|
+
|
11
|
+
property :AssignIpv6AddressOnCreation
|
12
|
+
property :AvailabilityZone
|
13
|
+
property :CidrBlock
|
14
|
+
property :Ipv6CidrBlock
|
15
|
+
property :MapPublicIpOnLaunch
|
16
|
+
property :Tags
|
17
|
+
property :VpcId
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require_relative 'base'
|
2
|
+
|
3
|
+
module Genome
|
4
|
+
module Core
|
5
|
+
module Templates
|
6
|
+
class EC2VPC
|
7
|
+
include Base
|
8
|
+
|
9
|
+
aws_template 'AWS::EC2::VPC'
|
10
|
+
|
11
|
+
property :CidrBlock
|
12
|
+
property :EnableDnsSupport
|
13
|
+
property :EnableDnsHostnames
|
14
|
+
property :CidrBlockInstanceTenancy
|
15
|
+
property :Tags
|
16
|
+
|
17
|
+
module InstanceTenancies
|
18
|
+
DEFAULT = 'default'.freeze
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require_relative 'base'
|
2
|
+
|
3
|
+
module Genome
|
4
|
+
module Core
|
5
|
+
module Templates
|
6
|
+
class SQSQueue
|
7
|
+
include Base
|
8
|
+
|
9
|
+
aws_template 'AWS::SQS::Queue'
|
10
|
+
|
11
|
+
property :VisibilityTimeout, settable: true
|
12
|
+
property :QueueName, settable: true
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/lib/genome/error.rb
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'active_support'
|
2
|
+
require 'active_support/concern'
|
3
|
+
require 'active_support/core_ext'
|
4
|
+
|
5
|
+
require_relative 'error'
|
6
|
+
require_relative 'reference'
|
7
|
+
|
8
|
+
module Genome
|
9
|
+
module Resource
|
10
|
+
extend ActiveSupport::Concern
|
11
|
+
|
12
|
+
included do
|
13
|
+
class_attribute :templates, default: {}
|
14
|
+
class_attribute :references, default: []
|
15
|
+
class_attribute :description
|
16
|
+
end
|
17
|
+
|
18
|
+
module ClassMethods
|
19
|
+
def template(template_name, template_klass, template_parameters)
|
20
|
+
raise Error::DuplicateTemplate, "Duplicate template name defined '#{template_name}'" if self.templates.key?(template_name)
|
21
|
+
|
22
|
+
dependencies = template_parameters.delete(:DependsOn)
|
23
|
+
|
24
|
+
templates[template_name] = {
|
25
|
+
klass: template_klass,
|
26
|
+
parameters: template_parameters,
|
27
|
+
dependencies: dependencies,
|
28
|
+
}
|
29
|
+
end
|
30
|
+
|
31
|
+
def remove_template(template_name)
|
32
|
+
templates.delete(template_name)
|
33
|
+
remove_dependencies(template_name)
|
34
|
+
end
|
35
|
+
|
36
|
+
def remove_dependencies(*dependencies)
|
37
|
+
templates.each do |template_name, template_parameters|
|
38
|
+
dependencies.each do |dependency|
|
39
|
+
template_parameters[:dependencies]&.delete(dependency)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def reference(resource_name)
|
45
|
+
Reference.new(resource_name)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
# mattr_accessor :resources, default: [], instance_accessor: false
|
50
|
+
|
51
|
+
# included do
|
52
|
+
# Resource.resources << self
|
53
|
+
# end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,139 @@
|
|
1
|
+
require_relative '../resource'
|
2
|
+
require_relative '../core/templates/documentdb_cluster'
|
3
|
+
require_relative '../core/templates/documentdb_instance'
|
4
|
+
require_relative '../core/templates/documentdb_parameter_group'
|
5
|
+
require_relative '../core/templates/documentdb_subnet_group'
|
6
|
+
require_relative '../core/templates/ec2_subnet'
|
7
|
+
require_relative '../core/templates/ec2_vpc'
|
8
|
+
|
9
|
+
module Genome
|
10
|
+
module Resources
|
11
|
+
class DocumentDB
|
12
|
+
include Resource
|
13
|
+
|
14
|
+
template :DocumentDBEC2SVPC, Core::Templates::EC2VPC,
|
15
|
+
CidrBlock: '10.50.0.0/16',
|
16
|
+
EnableDnsSupport: true,
|
17
|
+
InstanceTenancy: Core::Templates::EC2VPC::InstanceTenancies::DEFAULT,
|
18
|
+
Tags: [
|
19
|
+
{ Key: :Resource, Value: :DocumentDBCluster }
|
20
|
+
]
|
21
|
+
|
22
|
+
template :DocumentDBEC2SubnetUSEast1A, Core::Templates::EC2Subnet,
|
23
|
+
VpcId: reference(:DocumentDBEC2SVPC),
|
24
|
+
CidrBlock: '10.50.0.0/24',
|
25
|
+
AvailabilityZone: 'us-east-1a',
|
26
|
+
Tags: [
|
27
|
+
{ Key: :Resource, Value: :DocumentDBCluster }
|
28
|
+
],
|
29
|
+
DependsOn: [
|
30
|
+
:DocumentDBEC2SVPC
|
31
|
+
]
|
32
|
+
|
33
|
+
template :DocumentDBEC2SubnetUSEast1B, Core::Templates::EC2Subnet,
|
34
|
+
VpcId: reference(:DocumentDBEC2SVPC),
|
35
|
+
CidrBlock: '10.50.1.0/24',
|
36
|
+
AvailabilityZone: 'us-east-1b',
|
37
|
+
Tags: [
|
38
|
+
{ Key: :Resource, Value: :DocumentDBCluster }
|
39
|
+
],
|
40
|
+
DependsOn: [
|
41
|
+
:DocumentDBEC2SVPC
|
42
|
+
]
|
43
|
+
|
44
|
+
template :DocumentDBEC2SubnetUSEast1C, Core::Templates::EC2Subnet,
|
45
|
+
VpcId: reference(:DocumentDBEC2SVPC),
|
46
|
+
CidrBlock: '10.50.2.0/24',
|
47
|
+
AvailabilityZone: 'us-east-1c',
|
48
|
+
Tags: [
|
49
|
+
{ Key: :Resource, Value: :DocumentDBCluster }
|
50
|
+
],
|
51
|
+
DependsOn: [
|
52
|
+
:DocumentDBEC2SVPC
|
53
|
+
]
|
54
|
+
|
55
|
+
template :DocumentDBSubnetGroup, Core::Templates::DocumentDBSubnetGroup,
|
56
|
+
DBSubnetGroupDescription: 'Maintained by Genome: Default DocumentDB Subnet Group',
|
57
|
+
DBSubnetGroupName: 'documentdb-cluster',
|
58
|
+
SubnetIds: [
|
59
|
+
reference(:DocumentDBEC2SubnetUSEast1A),
|
60
|
+
reference(:DocumentDBEC2SubnetUSEast1B),
|
61
|
+
reference(:DocumentDBEC2SubnetUSEast1C),
|
62
|
+
],
|
63
|
+
Tags: [
|
64
|
+
{ Key: :Resource, Value: :DocumentDBCluster }
|
65
|
+
],
|
66
|
+
DependsOn: [
|
67
|
+
:DocumentDBEC2SubnetUSEast1A,
|
68
|
+
:DocumentDBEC2SubnetUSEast1B,
|
69
|
+
:DocumentDBEC2SubnetUSEast1C
|
70
|
+
]
|
71
|
+
|
72
|
+
template :DocumentDBInstance, Core::Templates::DocumentDBInstance,
|
73
|
+
AutoMinorVersionUpgrade: true,
|
74
|
+
DBClusterIdentifier: 'documentdb-cluster',
|
75
|
+
DBInstanceClass: :'db.r4.large',
|
76
|
+
DBInstanceIdentifier: 'documentdb-instance',
|
77
|
+
Tags: [
|
78
|
+
{ Key: :Resource, Value: :DocumentDBCluster }
|
79
|
+
],
|
80
|
+
DependsOn: [
|
81
|
+
:DocumentDBCluster
|
82
|
+
]
|
83
|
+
|
84
|
+
template :DocumentDBParameterGroup, Core::Templates::DocumentDBParameterGroup,
|
85
|
+
Description: 'Maintained by Genome: Default DocumentDB Parameter Group',
|
86
|
+
Family: 'docdb3.6',
|
87
|
+
Name: 'documentdb-parameter-group',
|
88
|
+
Parameters: {
|
89
|
+
audit_logs: :enabled,
|
90
|
+
tls: :enabled,
|
91
|
+
ttl_monitor: :enabled
|
92
|
+
},
|
93
|
+
Tags: [
|
94
|
+
{ Key: :Resource, Value: :DocumentDBCluster }
|
95
|
+
]
|
96
|
+
|
97
|
+
template :DocumentDBCluster, Core::Templates::DocumentDBCluster,
|
98
|
+
DBClusterIdentifier: 'documentdb-cluster',
|
99
|
+
DBClusterParameterGroupName: 'documentdb-parameter-group',
|
100
|
+
DBSubnetGroupName: 'documentdb-cluster',
|
101
|
+
MasterUsername: 'master',
|
102
|
+
MasterUserPassword: 'anotverysecurepassword9876',
|
103
|
+
StorageEncrypted: true,
|
104
|
+
Tags: [
|
105
|
+
{ Key: :Resource, Value: :DocumentDBCluster }
|
106
|
+
],
|
107
|
+
DependsOn: [
|
108
|
+
:DocumentDBParameterGroup,
|
109
|
+
:DocumentDBSubnetGroup
|
110
|
+
]
|
111
|
+
|
112
|
+
def self.disable_vpc
|
113
|
+
remove_template(:DocumentDBEC2SVPC)
|
114
|
+
remove_dependencies(:DocumentDBEC2SVPC)
|
115
|
+
end
|
116
|
+
|
117
|
+
def self.disable_subnets
|
118
|
+
remove_template(:DocumentDBEC2SubnetUSEast1A)
|
119
|
+
remove_template(:DocumentDBEC2SubnetUSEast1B)
|
120
|
+
remove_template(:DocumentDBEC2SubnetUSEast1C)
|
121
|
+
end
|
122
|
+
|
123
|
+
def self.subnet_ids(subnet_ids)
|
124
|
+
templates[:DocumentDBSubnetGroup][:parameters][:SubnetIds] = subnet_ids
|
125
|
+
end
|
126
|
+
|
127
|
+
def self.security_group_ids(security_group_ids)
|
128
|
+
templates[:DocumentDBCluster][:parameters][:VpcSecurityGroupIds] = security_group_ids
|
129
|
+
end
|
130
|
+
|
131
|
+
def self.add_cluster_dependencies(*dependencies)
|
132
|
+
cluster_dependencies = templates[:DocumentDBCluster][:parameters][:DependsOn] || []
|
133
|
+
cluster_dependencies += dependencies
|
134
|
+
|
135
|
+
templates[:DocumentDBCluster][:parameters][:DependsOn] = cluster_dependencies
|
136
|
+
end
|
137
|
+
end
|
138
|
+
end
|
139
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require_relative '../resource'
|
2
|
+
require_relative '../core/templates/ec2_security_group'
|
3
|
+
require_relative '../core/templates/sqs_queue'
|
4
|
+
|
5
|
+
module Genome
|
6
|
+
module Resources
|
7
|
+
class SQSQueue
|
8
|
+
include Resource
|
9
|
+
|
10
|
+
template :SQSSecurityGroup, Core::Templates::EC2SecurityGroup,
|
11
|
+
GroupDescription: 'Security Group for SQS'
|
12
|
+
|
13
|
+
template :SQSQueue, Core::Templates::SQSQueue,
|
14
|
+
QueueName: 'default_queue',
|
15
|
+
DependsOn: [ :SQSSecurityGroup ]
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/genome/stack.rb
ADDED
@@ -0,0 +1,129 @@
|
|
1
|
+
require 'active_support'
|
2
|
+
require 'active_support/concern'
|
3
|
+
require 'active_support/core_ext'
|
4
|
+
require 'aws-sdk-cloudformation'
|
5
|
+
require 'json'
|
6
|
+
|
7
|
+
require_relative 'builder'
|
8
|
+
require_relative 'error'
|
9
|
+
|
10
|
+
module Genome
|
11
|
+
module Stack
|
12
|
+
extend ActiveSupport::Concern
|
13
|
+
|
14
|
+
mattr_accessor :stacks, default: {}
|
15
|
+
|
16
|
+
included do
|
17
|
+
class_attribute :capabilities, default: [:CAPABILITY_IAM, :CAPABILITY_NAMED_IAM]
|
18
|
+
class_attribute :resources, default: []
|
19
|
+
class_attribute :template_url
|
20
|
+
class_attribute :disable_rollback
|
21
|
+
class_attribute :rollback_configuration
|
22
|
+
class_attribute :timeout_in_minutes
|
23
|
+
class_attribute :notification_arns
|
24
|
+
class_attribute :resource_types
|
25
|
+
class_attribute :role_arn
|
26
|
+
class_attribute :on_failure
|
27
|
+
class_attribute :stack_policy_body
|
28
|
+
class_attribute :stack_policy_url
|
29
|
+
class_attribute :tags
|
30
|
+
class_attribute :client_request_token
|
31
|
+
class_attribute :enable_termination_protection
|
32
|
+
end
|
33
|
+
|
34
|
+
|
35
|
+
module ClassMethods
|
36
|
+
def stack_name(stack_name)
|
37
|
+
@stack_name = stack_name
|
38
|
+
|
39
|
+
Stack.stacks[stack_name] = self
|
40
|
+
end
|
41
|
+
|
42
|
+
def capability(capability_name)
|
43
|
+
capabilities << capability_name
|
44
|
+
end
|
45
|
+
|
46
|
+
def disable_iam_capabilities
|
47
|
+
capabilities.delete(:CAPABILITY_IAM)
|
48
|
+
capabilities.delete(:CAPABILITY_NAMED_IAM)
|
49
|
+
end
|
50
|
+
|
51
|
+
def resource(resource_klass)
|
52
|
+
resources << resource_klass
|
53
|
+
end
|
54
|
+
|
55
|
+
def cloudformation_client
|
56
|
+
@cloudformation_client ||= Aws::CloudFormation::Client.new
|
57
|
+
end
|
58
|
+
|
59
|
+
def build
|
60
|
+
template = nil
|
61
|
+
|
62
|
+
resources.each do |resource|
|
63
|
+
template = Genome::Builder.template(resource)
|
64
|
+
end
|
65
|
+
|
66
|
+
cloudformation_client.create_stack(
|
67
|
+
stack_name: @stack_name,
|
68
|
+
template_body: template.to_json,
|
69
|
+
parameters: [],
|
70
|
+
capabilities: @capabilities
|
71
|
+
)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
|
78
|
+
# require 'aws-sdk-cloudformation'
|
79
|
+
# require 'json'
|
80
|
+
|
81
|
+
# module DcLibStack
|
82
|
+
# module Generator
|
83
|
+
# def self.included(base)
|
84
|
+
# base.extend(ClassMethods)
|
85
|
+
# end
|
86
|
+
|
87
|
+
# module ClassMethods
|
88
|
+
# def cloudformation_client
|
89
|
+
# @cloudformation_client ||= Aws::CloudFormation::Client.new
|
90
|
+
# end
|
91
|
+
|
92
|
+
# def create(stack_name)
|
93
|
+
# template = new.generate_template
|
94
|
+
|
95
|
+
# cloudformation_client.create_stack(
|
96
|
+
# stack_name: stack_name,
|
97
|
+
# template_body: template.to_json,
|
98
|
+
# parameters: [
|
99
|
+
# {
|
100
|
+
# parameter_key: "BenchmarkName",
|
101
|
+
# parameter_value: stack_name
|
102
|
+
# }
|
103
|
+
# ],
|
104
|
+
# capabilities: ['CAPABILITY_IAM', 'CAPABILITY_NAMED_IAM']
|
105
|
+
# )
|
106
|
+
# end
|
107
|
+
|
108
|
+
# def update(stack_name)
|
109
|
+
# template = new.generate_template
|
110
|
+
|
111
|
+
# cloudformation_client.update_stack(
|
112
|
+
# stack_name: stack_name,
|
113
|
+
# template_body: template.to_json,
|
114
|
+
# parameters: [
|
115
|
+
# {
|
116
|
+
# parameter_key: "BenchmarkName",
|
117
|
+
# parameter_value: stack_name
|
118
|
+
# }
|
119
|
+
# ],
|
120
|
+
# capabilities: ['CAPABILITY_IAM', 'CAPABILITY_NAMED_IAM']
|
121
|
+
# )
|
122
|
+
# end
|
123
|
+
|
124
|
+
# def destroy(stack_name)
|
125
|
+
# cloudformation_client.delete_stack(stack_name: stack_name)
|
126
|
+
# end
|
127
|
+
# end
|
128
|
+
# end
|
129
|
+
# end
|
data/lib/genome.rb
ADDED
metadata
ADDED
@@ -0,0 +1,163 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: genome
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- hypernova2002
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2019-03-01 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: aws-sdk-cloudformation
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.8'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.8'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: activesupport
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '5.2'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '5.2'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: bundler
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1.14'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.14'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: foreman
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rake
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '10.0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '10.0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rspec
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '3.0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '3.0'
|
97
|
+
description: A library for create and maintaining cloud formation stacks
|
98
|
+
email:
|
99
|
+
- hypernova2002@gmail.com
|
100
|
+
executables: []
|
101
|
+
extensions: []
|
102
|
+
extra_rdoc_files: []
|
103
|
+
files:
|
104
|
+
- ".gitignore"
|
105
|
+
- ".rspec"
|
106
|
+
- ".travis.yml"
|
107
|
+
- CODE_OF_CONDUCT.md
|
108
|
+
- Gemfile
|
109
|
+
- LICENSE.txt
|
110
|
+
- README.md
|
111
|
+
- Rakefile
|
112
|
+
- bin/console
|
113
|
+
- bin/setup
|
114
|
+
- genome.gemspec
|
115
|
+
- lib/genome.rb
|
116
|
+
- lib/genome/builder.rb
|
117
|
+
- lib/genome/config.rb
|
118
|
+
- lib/genome/core/helpers/property.rb
|
119
|
+
- lib/genome/core/helpers/property_config.rb
|
120
|
+
- lib/genome/core/helpers/template.rb
|
121
|
+
- lib/genome/core/templates/base.rb
|
122
|
+
- lib/genome/core/templates/documentdb_cluster.rb
|
123
|
+
- lib/genome/core/templates/documentdb_instance.rb
|
124
|
+
- lib/genome/core/templates/documentdb_parameter_group.rb
|
125
|
+
- lib/genome/core/templates/documentdb_subnet_group.rb
|
126
|
+
- lib/genome/core/templates/ec2_security_group.rb
|
127
|
+
- lib/genome/core/templates/ec2_security_group_ingress.rb
|
128
|
+
- lib/genome/core/templates/ec2_subnet.rb
|
129
|
+
- lib/genome/core/templates/ec2_vpc.rb
|
130
|
+
- lib/genome/core/templates/ecs_cluster.rb
|
131
|
+
- lib/genome/core/templates/sqs_queue.rb
|
132
|
+
- lib/genome/error.rb
|
133
|
+
- lib/genome/reference.rb
|
134
|
+
- lib/genome/resource.rb
|
135
|
+
- lib/genome/resources/documentdb.rb
|
136
|
+
- lib/genome/resources/sqs_queue.rb
|
137
|
+
- lib/genome/stack.rb
|
138
|
+
- lib/genome/version.rb
|
139
|
+
homepage: https://github.com/hypernova2002/genome
|
140
|
+
licenses:
|
141
|
+
- MIT
|
142
|
+
metadata:
|
143
|
+
allowed_push_host: https://rubygems.org
|
144
|
+
post_install_message:
|
145
|
+
rdoc_options: []
|
146
|
+
require_paths:
|
147
|
+
- lib
|
148
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
154
|
+
requirements:
|
155
|
+
- - ">="
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: '0'
|
158
|
+
requirements: []
|
159
|
+
rubygems_version: 3.0.1
|
160
|
+
signing_key:
|
161
|
+
specification_version: 4
|
162
|
+
summary: A library for create and maintaining cloud formation stacks
|
163
|
+
test_files: []
|