cfnlego 0.0.6 → 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.codeclimate.yml +2 -0
- data/Gemfile.lock +2 -2
- data/README.md +15 -13
- data/Rakefile +4 -0
- data/cfnlego.gemspec +1 -0
- data/lib/cfnlego/resources/CloudFront/Distribution.yaml +87 -0
- data/lib/cfnlego/resources/Route53/RecordSet.yaml +27 -0
- data/lib/cfnlego/version.rb +1 -1
- metadata +19 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 87083f3258efe9267b25f869a7aa7390be8c3840
|
4
|
+
data.tar.gz: 4db55fe2c94d0a4ca4d34de812ff8e890863714b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0bd78b7fc97943aed96984043e4b8b07f5bc6dba09007fd1464edaad1d533e9078e06880aa0349595ed71fe1a0365ba8ae0997f74cc4caaa95b6bc637cbdcaf1
|
7
|
+
data.tar.gz: d76dc42455702dd36b3fbaf4405157b8ba080fd0f270e2849a20ccaac7d8714167509365c2ee1fd90894a288683cb3b9f5afa604f24af83a61d450e063d7da79
|
data/.codeclimate.yml
ADDED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
GEM
|
2
2
|
remote: https://rubygems.org/
|
3
3
|
specs:
|
4
|
-
cfndsl (0.2.
|
4
|
+
cfndsl (0.2.3)
|
5
5
|
coderay (1.1.0)
|
6
6
|
diff-lcs (1.2.5)
|
7
7
|
ffi (1.9.10)
|
@@ -34,7 +34,7 @@ GEM
|
|
34
34
|
method_source (~> 0.8.1)
|
35
35
|
slop (~> 3.4)
|
36
36
|
rake (10.4.2)
|
37
|
-
rb-fsevent (0.9.
|
37
|
+
rb-fsevent (0.9.6)
|
38
38
|
rb-inotify (0.9.5)
|
39
39
|
ffi (>= 0.5.0)
|
40
40
|
rspec (3.3.0)
|
data/README.md
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
cfnlego
|
2
2
|
========
|
3
3
|
|
4
|
-
[![Build Status](https://travis-ci.org/allinwonder/cfnlego.svg)](https://travis-ci.org/allinwonder/cfnlego)
|
4
|
+
[![Build Status](https://travis-ci.org/allinwonder/cfnlego.svg)](https://travis-ci.org/allinwonder/cfnlego) [![Gem Version](https://badge.fury.io/rb/cfnlego.svg)](http://badge.fury.io/rb/cfnlego) [![Code Climate](https://codeclimate.com/github/allinwonder/cfnlego/badges/gpa.svg)](https://codeclimate.com/github/allinwonder/cfnlego)
|
5
5
|
|
6
6
|
### Description
|
7
7
|
|
8
8
|
cfnlego is built to quickly bootstrap CloudFormation development with cfndsl.
|
9
9
|
|
10
|
-
It provides templates for
|
10
|
+
It provides templates for all (WIP) AWS Resources and simply bake them into a template
|
11
11
|
|
12
12
|
### How to use
|
13
13
|
|
@@ -32,17 +32,19 @@ Example:
|
|
32
32
|
|
33
33
|
### Current Supported Resources
|
34
34
|
|
35
|
-
-
|
36
|
-
-
|
37
|
-
-
|
38
|
-
-
|
39
|
-
-
|
40
|
-
-
|
41
|
-
-
|
42
|
-
-
|
43
|
-
-
|
44
|
-
-
|
45
|
-
-
|
35
|
+
- AWS::AutoScaling::AutoScalingGroup
|
36
|
+
- AWS::AutoScaling::LaunchConfiguration
|
37
|
+
- AWS::AutoScaling::LifecycleHook
|
38
|
+
- AWS::CloudFront::Distribution
|
39
|
+
- AWS::CloudWatch::Alarm
|
40
|
+
- AWS::ElasticLoadBalancing::LoadBalancer
|
41
|
+
- AWS::IAM::InstanceProfile
|
42
|
+
- AWS::IAM::ManagedPolicy
|
43
|
+
- AWS::IAM::Role
|
44
|
+
- AWS::Lambda::Function
|
45
|
+
- AWS::Route53::RecordSet
|
46
|
+
- AWS::SNS::Topic
|
47
|
+
- AWS::SNS::TopicPolicy
|
46
48
|
|
47
49
|
### License
|
48
50
|
|
data/Rakefile
CHANGED
@@ -5,6 +5,10 @@ namespace :cfnlego do
|
|
5
5
|
|
6
6
|
task :install do
|
7
7
|
end
|
8
|
+
|
9
|
+
task :supported_resources do
|
10
|
+
`cd lib/cfnlego/resources/ && find . | grep -v '^.$'| sed -e "s/^\.\///" | grep '/' | sed 's/\//::/g' | sed 's/\.yaml//' | sed 's/^/AWS::/g'`
|
11
|
+
end
|
8
12
|
end
|
9
13
|
|
10
14
|
require 'rspec/core/rake_task'
|
data/cfnlego.gemspec
CHANGED
@@ -20,6 +20,7 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.bindir = "bin"
|
21
21
|
spec.executables << "cfnlego"
|
22
22
|
|
23
|
+
spec.add_runtime_dependency "ruby-beautify", "~> 0.97"
|
23
24
|
spec.add_development_dependency "bundler", "~> 1.9"
|
24
25
|
spec.add_development_dependency "rake", "~> 10.0"
|
25
26
|
spec.add_development_dependency "cfndsl", "~> 0.2"
|
@@ -0,0 +1,87 @@
|
|
1
|
+
AWS::CloudFront::Distribution:
|
2
|
+
Properties:
|
3
|
+
DistributionConfig: |
|
4
|
+
{
|
5
|
+
"Aliases" => ["CNAMEs (alternate domain names), if any, for the distribution"],
|
6
|
+
"CacheBehaviors" => [
|
7
|
+
{
|
8
|
+
"AllowedMethods" => ["DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT"], # default ["HEAD", "GET"]
|
9
|
+
"CachedMethods" => ["GET", "HEAD", "OPTIONS"], # default ["HEAD", "GET"]
|
10
|
+
"ForwardedValues" => {
|
11
|
+
"Cookies" => {
|
12
|
+
"Forward" => "\"none, all, or whitelist\"",
|
13
|
+
"WhitelistedNames" => ["The names of cookies to forward to the origin for the cache behavior."]
|
14
|
+
},
|
15
|
+
"Headers" => ["(whitelisted headers)", "If you specify a single asterisk *, all headers are forwarded"],
|
16
|
+
"QueryString" => false # Indicates whether you want CloudFront to forward query strings to the origin, Required: Yes
|
17
|
+
},
|
18
|
+
"MinTTL" => "\"The minimum amount of time that you want objects to stay in the cache\"",
|
19
|
+
"PathPattern" => "\"The pattern to which this cache behavior applies. For example, you can specify images/*.jpg.\"",
|
20
|
+
"SmoothStreaming" => "\"distribute media files in the Microsoft Smooth Streaming format\"",
|
21
|
+
"TargetOriginId" => "\"The ID value of the origin to which you want CloudFront to route requests\"",
|
22
|
+
"TrustedSigners" => ["A list of AWS accounts that can create signed URLs in order to access private content."],
|
23
|
+
"ViewerProtocolPolicy" => "\"The protocol that users can use to access the files\""
|
24
|
+
}
|
25
|
+
],
|
26
|
+
"Comment" => "\"Comment\"",
|
27
|
+
"CustomErrorResponses" => [
|
28
|
+
{
|
29
|
+
"ErrorCachingMinTTL" => 300, #The default value is 300.
|
30
|
+
"ErrorCode" => 500, # 400, 403, 404, 405, 414, 500, 501, 502, 503, or 504
|
31
|
+
"ResponseCode" => 500, # 200, 400, 403, 404, 405, 414, 500, 501, 502, 503, or 504.
|
32
|
+
"ResponsePagePath" => "\"The path to the custom error page\""
|
33
|
+
}
|
34
|
+
],
|
35
|
+
"DefaultCacheBehavior" => {
|
36
|
+
"AllowedMethods" => ["DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT"], # default ["HEAD", "GET"]
|
37
|
+
"CachedMethods" => ["GET", "HEAD", "OPTIONS"], # default ["HEAD", "GET"].
|
38
|
+
"ForwardedValues" => {
|
39
|
+
"Cookies" => {
|
40
|
+
"Forward" => "\"none, all, or whitelist\"",
|
41
|
+
"WhitelistedNames" => ["The names of cookies to forward to the origin for the cache behavior."]
|
42
|
+
},
|
43
|
+
"Headers" => ["(whitelisted headers)", "If you specify a single asterisk *, all headers are forwarded"],
|
44
|
+
"QueryString" => false # Indicates whether you want CloudFront to forward query strings to the origin, Required: Yes
|
45
|
+
},
|
46
|
+
"MinTTL" => "\"The minimum amount of time that you want objects to stay in the cache\"",
|
47
|
+
"SmoothStreaming" => "\"distribute media files in the Microsoft Smooth Streaming format\"",
|
48
|
+
"TargetOriginId" => "\"The ID value of the origin to which you want CloudFront to route requests\"",
|
49
|
+
"TrustedSigners" => ["A list of AWS accounts that can create signed URLs in order to access private content."],
|
50
|
+
"ViewerProtocolPolicy" => "\"allow-all | redirect-to-https | https-only\""
|
51
|
+
},
|
52
|
+
"DefaultRootObject" => "\"The object (such as index.html) that you want CloudFront to request from your origin when the root URL\"",
|
53
|
+
"Enabled" => true,
|
54
|
+
"Logging" => {
|
55
|
+
"Bucket" => "\"s3bucket\"",
|
56
|
+
"IncludeCookies" => true,
|
57
|
+
"Prefix" => "\"/prefix\""
|
58
|
+
},
|
59
|
+
"Origins" => [
|
60
|
+
{
|
61
|
+
"CustomOriginConfig" => {
|
62
|
+
"HTTPPort" => "\"80\"",
|
63
|
+
"HTTPSPort" => "\"443\"",
|
64
|
+
"OriginProtocolPolicy" => "\"http-only | match-viewer\""
|
65
|
+
},
|
66
|
+
"DomainName" => "\"The DNS name of the Amazon Simple Storage Service (S3) bucket or the HTTP server\"",
|
67
|
+
"Id" => "\"An identifier for the origin\"",
|
68
|
+
"OriginPath" => "\The path that CloudFront uses to request content from an S3 bucket or custom origin. The combination of the DomainName and OriginPath properties must resolve to a valid path. The value must start with a slash mark (/) and cannot end with a slash mark.\"",
|
69
|
+
"S3OriginConfig" => {
|
70
|
+
"OriginAccessIdentity" => "\"origin-access-identity/cloudfront/ID-of-origin-access-identity\""
|
71
|
+
}
|
72
|
+
}
|
73
|
+
],
|
74
|
+
"PriceClass" => "PriceClass_All | PriceClass_200 | PriceClass_100",
|
75
|
+
"Restrictions" => {
|
76
|
+
"GeoRestriction" => {
|
77
|
+
"Locations" => ["The two-letter, uppercase country code for a country that you want to include in your blacklist or whitelist."],
|
78
|
+
"RestrictionType" => "\"blacklist | whitelist | none\""
|
79
|
+
}
|
80
|
+
},
|
81
|
+
"ViewerCertificate" => {
|
82
|
+
"CloudFrontDefaultCertificate" => true,
|
83
|
+
"IamCertificateId" => "\"The IAM certificate ID to use if you're using an alternate domain name, Path MUST starts with /cloudfront/",
|
84
|
+
"MinimumProtocolVersion" => "\"If you specify the IamCertificateId property and specify SNI only for the SslSupportMethod property, you must use TLSv1 for the minimum protocol version. If you don't specify a value, AWS CloudFormation specifies SSLv3.\"",
|
85
|
+
"SslSupportMethod" => "\"vip | sni-only\""
|
86
|
+
}
|
87
|
+
}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
AWS::Route53::RecordSet:
|
2
|
+
Properties:
|
3
|
+
AliasTarget: |
|
4
|
+
{
|
5
|
+
"DNSName" => "The DNS name of the load balancer, the domain name of the CloudFront distribution, or the website endpoint of the Amazon S3 bucket",
|
6
|
+
"EvaluateTargetHealth" => true,
|
7
|
+
"HostedZoneId" => "For CloudFront, use Z2FDTNDATAQYW2 http://docs.aws.amazon.com/Route53/latest/APIReference/CreateAliasRRSAPI.html"
|
8
|
+
}
|
9
|
+
Comment: "\"Comment\""
|
10
|
+
Failover: "\"PRIMARY | SECONDARY\""
|
11
|
+
GeoLocation: |
|
12
|
+
{
|
13
|
+
"ContinentCode" => "AF, AN, AS, EU, OC, NA, SA",
|
14
|
+
"CountryCode" => "http://docs.aws.amazon.com/Route53/latest/APIReference/API_ChangeResourceRecordSets_Requests.html#change-rrsets-request-continent-code",
|
15
|
+
"SubdivisionCode" => "http://docs.aws.amazon.com/Route53/latest/APIReference/API_ChangeResourceRecordSets_Requests.html#change-rrsets-request-subdivision-code"
|
16
|
+
}
|
17
|
+
HealthCheckId: "\"The health check ID\""
|
18
|
+
HostedZoneId: "\"The ID of the hosted zone\""
|
19
|
+
HostedZoneName: "\"You must specify either the HostedZoneName or HostedZoneId, but you cannot specify both.\""
|
20
|
+
Name: "\"The name of the domain. ends with a period as the last label indication\""
|
21
|
+
Region: "\"Latency resource record sets only: The Amazon EC2 region where the resource that is specified in this resource record set resides.\""
|
22
|
+
ResourceRecords: |
|
23
|
+
["List of resource records to add.", " if you set ResourceRecords, you must set TTL or SetIdentifier."]
|
24
|
+
SetIdentifier: "\"A unique identifier that differentiates among multiple resource record sets that have the same combination of DNS name and type.\""
|
25
|
+
TTL: "\"The resource record cache time to live (TTL), in seconds.\""
|
26
|
+
Type: "\"A | AAAA | CNAME | MX | NS | PTR | SOA | SPF | SRV | TXT\""
|
27
|
+
Weight: "\"Weighted resource record sets only: Weight expects integer values\""
|
data/lib/cfnlego/version.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cfnlego
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kevin Yung
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-09-
|
11
|
+
date: 2015-09-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: ruby-beautify
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0.97'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0.97'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: bundler
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -60,6 +74,7 @@ executables:
|
|
60
74
|
extensions: []
|
61
75
|
extra_rdoc_files: []
|
62
76
|
files:
|
77
|
+
- ".codeclimate.yml"
|
63
78
|
- ".gitignore"
|
64
79
|
- ".ruby-version"
|
65
80
|
- ".travis.yml"
|
@@ -77,12 +92,14 @@ files:
|
|
77
92
|
- lib/cfnlego/resources/AutoScaling/AutoScalingGroup.yaml
|
78
93
|
- lib/cfnlego/resources/AutoScaling/LaunchConfiguration.yaml
|
79
94
|
- lib/cfnlego/resources/AutoScaling/LifecycleHook.yaml
|
95
|
+
- lib/cfnlego/resources/CloudFront/Distribution.yaml
|
80
96
|
- lib/cfnlego/resources/CloudWatch/Alarm.yaml
|
81
97
|
- lib/cfnlego/resources/ElasticLoadBalancing/LoadBalancer.yaml
|
82
98
|
- lib/cfnlego/resources/IAM/InstanceProfile.yaml
|
83
99
|
- lib/cfnlego/resources/IAM/ManagedPolicy.yaml
|
84
100
|
- lib/cfnlego/resources/IAM/Role.yaml
|
85
101
|
- lib/cfnlego/resources/Lambda/Function.yaml
|
102
|
+
- lib/cfnlego/resources/Route53/RecordSet.yaml
|
86
103
|
- lib/cfnlego/resources/SNS/Topic.yaml
|
87
104
|
- lib/cfnlego/resources/SNS/TopicPolicy.yaml
|
88
105
|
- lib/cfnlego/version.rb
|