cfnlego 0.0.6 → 0.0.8
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 +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
|
-
[](https://travis-ci.org/allinwonder/cfnlego)
|
4
|
+
[](https://travis-ci.org/allinwonder/cfnlego) [](http://badge.fury.io/rb/cfnlego) [](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
|