From 7c2ae158490c93f5f2fb93f7cf8794e7d486e0fe Mon Sep 17 00:00:00 2001 From: Jophine Antony Date: Fri, 21 Apr 2017 10:31:40 +0530 Subject: [PATCH 1/4] Create Particles for Route 53 --- managed-route53/Makefile | 29 +++++++++++ managed-route53/README.md | 23 +++++++++ .../build.f/particles-initial/.gitignore | 4 ++ .../build.f/particles-initial/condensation.js | 21 ++++++++ .../particles-initial/config/default.js | 16 +++++++ .../build.f/particles-initial/gulpfile.js | 7 +++ .../build.f/particles-initial/package.json | 33 +++++++++++++ .../cftemplates/route53HostedZone.json.hbs | 16 +++++++ .../cftemplates/route53RecordSet.json.hbs | 21 ++++++++ .../particles/parameters/optionalString.hbs | 8 ++++ .../particles/parameters/requiredString.hbs | 7 +++ .../particles/resources/route53HostedZone.hbs | 4 ++ .../particles/resources/route53RecordSet.hbs | 4 ++ managed-route53/build.f/run_stack.js | 48 +++++++++++++++++++ managed-route53/package.json | 33 +++++++++++++ 15 files changed, 274 insertions(+) create mode 100644 managed-route53/Makefile create mode 100644 managed-route53/README.md create mode 100644 managed-route53/build.f/particles-initial/.gitignore create mode 100644 managed-route53/build.f/particles-initial/condensation.js create mode 100644 managed-route53/build.f/particles-initial/config/default.js create mode 100644 managed-route53/build.f/particles-initial/gulpfile.js create mode 100644 managed-route53/build.f/particles-initial/package.json create mode 100644 managed-route53/build.f/particles-initial/particles/cftemplates/route53HostedZone.json.hbs create mode 100644 managed-route53/build.f/particles-initial/particles/cftemplates/route53RecordSet.json.hbs create mode 100644 managed-route53/build.f/particles-initial/particles/parameters/optionalString.hbs create mode 100644 managed-route53/build.f/particles-initial/particles/parameters/requiredString.hbs create mode 100644 managed-route53/build.f/particles-initial/particles/resources/route53HostedZone.hbs create mode 100644 managed-route53/build.f/particles-initial/particles/resources/route53RecordSet.hbs create mode 100644 managed-route53/build.f/run_stack.js create mode 100644 managed-route53/package.json diff --git a/managed-route53/Makefile b/managed-route53/Makefile new file mode 100644 index 00000000..7f7e0785 --- /dev/null +++ b/managed-route53/Makefile @@ -0,0 +1,29 @@ + +ifdef ACCOUNTS +else + ACCOUNTS := 442294194136 +endif + +TEST := false + +ifdef AWS_REGION +else + AWS_REGION := us-east-1 +endif + +build: setup + +buildlambda: upload update + +upload: + npm install + cd build.f; node run_upload_code; + +update: + npm install + cd build.f; node run_update_code; + +setup: + cd build.f/particles-initial; npm install; ./node_modules/.bin/gulp condensation:build; ./node_modules/.bin/gulp condensation:deploy; + +clean: diff --git a/managed-route53/README.md b/managed-route53/README.md new file mode 100644 index 00000000..3d479e8a --- /dev/null +++ b/managed-route53/README.md @@ -0,0 +1,23 @@ + +# Route53 + +AWS micro service to Manage AWS Route53. + + +## How To Setup + + $ make \ + -e AWS_REGION= \ + -e ACCOUNTS="" + + +## How To Update Lambda Function Codes + + $ make buildlambda + + +## How To Remove Service + + $ make clean -e AWS_REGION= + + diff --git a/managed-route53/build.f/particles-initial/.gitignore b/managed-route53/build.f/particles-initial/.gitignore new file mode 100644 index 00000000..c4eeca9b --- /dev/null +++ b/managed-route53/build.f/particles-initial/.gitignore @@ -0,0 +1,4 @@ +condensation_errors +config/local.js +dist +node_modules diff --git a/managed-route53/build.f/particles-initial/condensation.js b/managed-route53/build.f/particles-initial/condensation.js new file mode 100644 index 00000000..dc838682 --- /dev/null +++ b/managed-route53/build.f/particles-initial/condensation.js @@ -0,0 +1,21 @@ +var git = require('gulp-git'), +gulp = require('gulp'), +vfs = require('vinyl-fs'), +zip = require('gulp-zip'), +exec = require('child_process').exec; + +module.exports.initialize = function(cb) { + var child = exec('npm install', function(error, stdout, stderr) { + if (error) return cb(error); + }); + + vfs.src(["managed-route53/index_*.js", "managed-route53/json/*.json", "lib/flow_controller.js", "lib/aws/*.js"],{cwd:'../../..', base:'../../..'}) + .pipe(zip('managed-route53.zip')) + .pipe(gulp.dest('./particles/assets')) + .on('end', function(err, data) { + vfs.src(['cloudformation/*.js'],{cwd:'../../..', base:'../../..'}) + .pipe(zip('cloudformation_builder.zip')) + .pipe(gulp.dest('./particles/assets')) + .on('end', cb); + }); +}; diff --git a/managed-route53/build.f/particles-initial/config/default.js b/managed-route53/build.f/particles-initial/config/default.js new file mode 100644 index 00000000..70405100 --- /dev/null +++ b/managed-route53/build.f/particles-initial/config/default.js @@ -0,0 +1,16 @@ +var config = { + s3: [ + { + aws: { + region: 'us-east-1', + bucket: 'sgas.particles-managed-route53.442294194136.us-east-1' + }, + clean: true, + validate: true, + create: true + } + ], + dist: 'dist' +}; + +module.exports = config; diff --git a/managed-route53/build.f/particles-initial/gulpfile.js b/managed-route53/build.f/particles-initial/gulpfile.js new file mode 100644 index 00000000..f13fd13d --- /dev/null +++ b/managed-route53/build.f/particles-initial/gulpfile.js @@ -0,0 +1,7 @@ +var gulp = require('gulp'), +config = require('config'); + +// Will add necessary gulp tasks to build, compile and validate +// CloudFormation templates + +require('condensation').buildTasks(gulp,config); diff --git a/managed-route53/build.f/particles-initial/package.json b/managed-route53/build.f/particles-initial/package.json new file mode 100644 index 00000000..a89571f5 --- /dev/null +++ b/managed-route53/build.f/particles-initial/package.json @@ -0,0 +1,33 @@ +{ + "name": "managed-route53", + "version": "0.0.1", + "description": "Condensation particles for building AWS Route53 CloudFormation templates.", + "scripts": { + "test": "./node_modules/.bin/mocha", + "build": "./node_modules/.bin/gulp condensation:build", + "deploy": "./node_modules/.bin/gulp condensation:deploy", + "gulp": "./node_modules/.bin/gulp" + }, + "license": "Apache-2.0", + "keywords": [ + "condensation-particles", + "aws", + "cloudformation", + "cloud", + "formation", + "aws", + "vpc" + ], + "dependencies": { + "condensation": "^0.5.5", + "config": "^1.21.0", + "gulp": "^3.9.1", + "particles-core": "^0.4.5", + "particles-vpc": "^0.5.1", + "particles-nat-gateway": "^0.2.2" + }, + "devDependencies": { + "condensation-particle-tests": "^0.5.2", + "mocha": "^2.5.3" + } +} diff --git a/managed-route53/build.f/particles-initial/particles/cftemplates/route53HostedZone.json.hbs b/managed-route53/build.f/particles-initial/particles/cftemplates/route53HostedZone.json.hbs new file mode 100644 index 00000000..34918b3d --- /dev/null +++ b/managed-route53/build.f/particles-initial/particles/cftemplates/route53HostedZone.json.hbs @@ -0,0 +1,16 @@ +{{#layout templateDescription="This template creates Route53 Hosted Zone"}} + +{{parameter "requiredString" logicalId="RouteHostName"}} +{{parameter "optionalString" logicalId="RouteHostComment"}} + +{{#resource "route53HostedZone" logicalId="Route53HostedZone" }} + "Properties": { + "Name": {{ref "RouteHostName"}}, + "HostedZoneConfig": { + "Comment": {{ref "RouteHostComment"}} + } + } +{{/resource}} + +{{output "m:core" "base" logicalId="Route53HostZoneID" value=(ref "Route53HostedZone")}} +{{/layout}} diff --git a/managed-route53/build.f/particles-initial/particles/cftemplates/route53RecordSet.json.hbs b/managed-route53/build.f/particles-initial/particles/cftemplates/route53RecordSet.json.hbs new file mode 100644 index 00000000..553e31aa --- /dev/null +++ b/managed-route53/build.f/particles-initial/particles/cftemplates/route53RecordSet.json.hbs @@ -0,0 +1,21 @@ +{{#layout templateDescription="This template creates Route53 Record Set"}} + +{{parameter "requiredString" logicalId="HostedZoneName" description="Hosted Zone Name"}} +{{parameter "requiredString" logicalId="RecordSetName" description="Name of Record Set"}} +{{parameter "requiredString" logicalId="RecordSetType" description="Type of Record Set, eg: A, CNAME, MX, AAAA, TXT, PTR, SRV, SPF, NAPTR"}} +{{parameter "requiredString" logicalId="ResourceRecord" description="Value for the record set"}} +{{parameter "requiredString" logicalId="TTLValue" description="TTL in seconds"}} +{{parameter "requiredString" logicalId="ResourceRecord" description="Value for Record Set Type" type="CommaDelimitedList"}} + +{{#resource "route53RecordSet" logicalId="Route53RecordSet" type="AWS::Route53::RecordSet"}} + "Properties": { + "HostedZoneName": {{ref "HostedZoneName"}}, + "Name": {{ref "RecordSetName"}}, + "Type": {{ref "RecordSetType"}}, + "TTL": {{ref "TTLValue"}}, + "ResourceRecords": {{ref "ResourceRecord"}} + } +{{/resource}} + +{{output "m:core" "base" logicalId="Route53RecordSetDomainName" value=(ref "Route53RecordSet")}} +{{/layout}} diff --git a/managed-route53/build.f/particles-initial/particles/parameters/optionalString.hbs b/managed-route53/build.f/particles-initial/particles/parameters/optionalString.hbs new file mode 100644 index 00000000..2c2583c5 --- /dev/null +++ b/managed-route53/build.f/particles-initial/particles/parameters/optionalString.hbs @@ -0,0 +1,8 @@ +--- +description: "Optional input for Route53" +--- +{{ + parameter "m:core" "base" + type="String" + optional=true +}} diff --git a/managed-route53/build.f/particles-initial/particles/parameters/requiredString.hbs b/managed-route53/build.f/particles-initial/particles/parameters/requiredString.hbs new file mode 100644 index 00000000..7dcac27b --- /dev/null +++ b/managed-route53/build.f/particles-initial/particles/parameters/requiredString.hbs @@ -0,0 +1,7 @@ +--- +description: "Required input for Route53" +--- +{{ + parameter "m:core" "base" + type="String" +}} diff --git a/managed-route53/build.f/particles-initial/particles/resources/route53HostedZone.hbs b/managed-route53/build.f/particles-initial/particles/resources/route53HostedZone.hbs new file mode 100644 index 00000000..6a862575 --- /dev/null +++ b/managed-route53/build.f/particles-initial/particles/resources/route53HostedZone.hbs @@ -0,0 +1,4 @@ +{{#resource "m:core" "base" type="AWS::Route53::HostedZone"}} + {{#helper "m:core" "properties"}} + {{/helper}} +{{/resource}} diff --git a/managed-route53/build.f/particles-initial/particles/resources/route53RecordSet.hbs b/managed-route53/build.f/particles-initial/particles/resources/route53RecordSet.hbs new file mode 100644 index 00000000..91376bf6 --- /dev/null +++ b/managed-route53/build.f/particles-initial/particles/resources/route53RecordSet.hbs @@ -0,0 +1,4 @@ +{{#resource "m:core" "base" type="AWS::Route53::RecordSet"}} + {{#helper "m:core" "properties"}} + {{/helper}} +{{/resource}} diff --git a/managed-route53/build.f/run_stack.js b/managed-route53/build.f/run_stack.js new file mode 100644 index 00000000..cc50e97f --- /dev/null +++ b/managed-route53/build.f/run_stack.js @@ -0,0 +1,48 @@ + +var argv = require('minimist')(process.argv.slice(2)); +var action = argv._[0]; +var region = argv['region']; +var name = argv['name']; +var particles = argv['particles']; +if (!region || !action || (action != 'launch' && action != 'drop') || !name) { + console.log("Usage : node run_stack launch/drop --region --name [--parameters ] [--particles ]"); + return; +} +console.log('action = ' + action); +console.log('region = ' + region); +console.log('name = ' + name); +console.log('particles Folder = ' + particles); + +var templateStr = null; +if (particles) { + var fs = require("fs"); + templateStr = fs.readFileSync(__dirname + '/particles-' + particles + "/dist/0/particles/cftemplates/template.json", {encoding:'utf8'}); +} +var input = { + region: region, + stackName: name +} +if (templateStr) input.templateStr = templateStr; +console.log(input); + +var stack_builder = new (require('../../lib/stack_builder'))(); +stack_builder[action](input, function(err, data) { + if(err) { + if (action == 'launch') { + console.log("Error occurred during " + action + " : " + err); + process.exit(1); + } + else if (action == 'drop') { + console.log("stack was already removed"); + process.exit(0); + } + } + else if(data) { + console.log("Successfully completed to " + action + " stack"); + process.exit(0); + } + else { + console.log("Failed to " + action + " stack"); + process.exit(1); + } +}); diff --git a/managed-route53/package.json b/managed-route53/package.json new file mode 100644 index 00000000..a89571f5 --- /dev/null +++ b/managed-route53/package.json @@ -0,0 +1,33 @@ +{ + "name": "managed-route53", + "version": "0.0.1", + "description": "Condensation particles for building AWS Route53 CloudFormation templates.", + "scripts": { + "test": "./node_modules/.bin/mocha", + "build": "./node_modules/.bin/gulp condensation:build", + "deploy": "./node_modules/.bin/gulp condensation:deploy", + "gulp": "./node_modules/.bin/gulp" + }, + "license": "Apache-2.0", + "keywords": [ + "condensation-particles", + "aws", + "cloudformation", + "cloud", + "formation", + "aws", + "vpc" + ], + "dependencies": { + "condensation": "^0.5.5", + "config": "^1.21.0", + "gulp": "^3.9.1", + "particles-core": "^0.4.5", + "particles-vpc": "^0.5.1", + "particles-nat-gateway": "^0.2.2" + }, + "devDependencies": { + "condensation-particle-tests": "^0.5.2", + "mocha": "^2.5.3" + } +} From 8ef2eec76ecb303855bc5858b0dfa090c5370a7c Mon Sep 17 00:00:00 2001 From: Jophine Antony Date: Fri, 21 Apr 2017 16:44:19 +0530 Subject: [PATCH 2/4] Moved resources out of cftemplates and added to resources directory as sets --- .../cftemplates/route53HostedZone.json.hbs | 14 +------------- .../cftemplates/route53RecordSet.json.hbs | 19 +------------------ .../particles/resources/route53HostedZone.hbs | 4 +--- .../particles/resources/route53RecordSet.hbs | 4 +--- .../particles/sets/hostedzone.hbs | 14 ++++++++++++++ .../particles/sets/recordset.hbs | 19 +++++++++++++++++++ 6 files changed, 37 insertions(+), 37 deletions(-) create mode 100644 managed-route53/build.f/particles-initial/particles/sets/hostedzone.hbs create mode 100644 managed-route53/build.f/particles-initial/particles/sets/recordset.hbs diff --git a/managed-route53/build.f/particles-initial/particles/cftemplates/route53HostedZone.json.hbs b/managed-route53/build.f/particles-initial/particles/cftemplates/route53HostedZone.json.hbs index 34918b3d..033e4dd1 100644 --- a/managed-route53/build.f/particles-initial/particles/cftemplates/route53HostedZone.json.hbs +++ b/managed-route53/build.f/particles-initial/particles/cftemplates/route53HostedZone.json.hbs @@ -1,16 +1,4 @@ {{#layout templateDescription="This template creates Route53 Hosted Zone"}} +{{set "hostedzone"}} -{{parameter "requiredString" logicalId="RouteHostName"}} -{{parameter "optionalString" logicalId="RouteHostComment"}} - -{{#resource "route53HostedZone" logicalId="Route53HostedZone" }} - "Properties": { - "Name": {{ref "RouteHostName"}}, - "HostedZoneConfig": { - "Comment": {{ref "RouteHostComment"}} - } - } -{{/resource}} - -{{output "m:core" "base" logicalId="Route53HostZoneID" value=(ref "Route53HostedZone")}} {{/layout}} diff --git a/managed-route53/build.f/particles-initial/particles/cftemplates/route53RecordSet.json.hbs b/managed-route53/build.f/particles-initial/particles/cftemplates/route53RecordSet.json.hbs index 553e31aa..982d25d4 100644 --- a/managed-route53/build.f/particles-initial/particles/cftemplates/route53RecordSet.json.hbs +++ b/managed-route53/build.f/particles-initial/particles/cftemplates/route53RecordSet.json.hbs @@ -1,21 +1,4 @@ {{#layout templateDescription="This template creates Route53 Record Set"}} -{{parameter "requiredString" logicalId="HostedZoneName" description="Hosted Zone Name"}} -{{parameter "requiredString" logicalId="RecordSetName" description="Name of Record Set"}} -{{parameter "requiredString" logicalId="RecordSetType" description="Type of Record Set, eg: A, CNAME, MX, AAAA, TXT, PTR, SRV, SPF, NAPTR"}} -{{parameter "requiredString" logicalId="ResourceRecord" description="Value for the record set"}} -{{parameter "requiredString" logicalId="TTLValue" description="TTL in seconds"}} -{{parameter "requiredString" logicalId="ResourceRecord" description="Value for Record Set Type" type="CommaDelimitedList"}} - -{{#resource "route53RecordSet" logicalId="Route53RecordSet" type="AWS::Route53::RecordSet"}} - "Properties": { - "HostedZoneName": {{ref "HostedZoneName"}}, - "Name": {{ref "RecordSetName"}}, - "Type": {{ref "RecordSetType"}}, - "TTL": {{ref "TTLValue"}}, - "ResourceRecords": {{ref "ResourceRecord"}} - } -{{/resource}} - -{{output "m:core" "base" logicalId="Route53RecordSetDomainName" value=(ref "Route53RecordSet")}} +{{set "recordset"}} {{/layout}} diff --git a/managed-route53/build.f/particles-initial/particles/resources/route53HostedZone.hbs b/managed-route53/build.f/particles-initial/particles/resources/route53HostedZone.hbs index 6a862575..daf1e52a 100644 --- a/managed-route53/build.f/particles-initial/particles/resources/route53HostedZone.hbs +++ b/managed-route53/build.f/particles-initial/particles/resources/route53HostedZone.hbs @@ -1,4 +1,2 @@ -{{#resource "m:core" "base" type="AWS::Route53::HostedZone"}} - {{#helper "m:core" "properties"}} - {{/helper}} +{{#resource "m:core" "base"}} {{/resource}} diff --git a/managed-route53/build.f/particles-initial/particles/resources/route53RecordSet.hbs b/managed-route53/build.f/particles-initial/particles/resources/route53RecordSet.hbs index 91376bf6..daf1e52a 100644 --- a/managed-route53/build.f/particles-initial/particles/resources/route53RecordSet.hbs +++ b/managed-route53/build.f/particles-initial/particles/resources/route53RecordSet.hbs @@ -1,4 +1,2 @@ -{{#resource "m:core" "base" type="AWS::Route53::RecordSet"}} - {{#helper "m:core" "properties"}} - {{/helper}} +{{#resource "m:core" "base"}} {{/resource}} diff --git a/managed-route53/build.f/particles-initial/particles/sets/hostedzone.hbs b/managed-route53/build.f/particles-initial/particles/sets/hostedzone.hbs new file mode 100644 index 00000000..3cce6d61 --- /dev/null +++ b/managed-route53/build.f/particles-initial/particles/sets/hostedzone.hbs @@ -0,0 +1,14 @@ +{{parameter "requiredString" logicalId="RouteHostName"}} +{{parameter "optionalString" logicalId="RouteHostComment"}} + +{{#resource "route53HostedZone" logicalId="Route53HostedZone" }} + "Type": "AWS::Route53::HostedZone", + "Properties": { + "Name": {{ref "RouteHostName"}}, + "HostedZoneConfig": { + "Comment": {{ref "RouteHostComment"}} + } + } +{{/resource}} + +{{output "m:core" "base" logicalId="Route53HostZoneID" value=(ref "Route53HostedZone")}} diff --git a/managed-route53/build.f/particles-initial/particles/sets/recordset.hbs b/managed-route53/build.f/particles-initial/particles/sets/recordset.hbs new file mode 100644 index 00000000..70521391 --- /dev/null +++ b/managed-route53/build.f/particles-initial/particles/sets/recordset.hbs @@ -0,0 +1,19 @@ +{{parameter "requiredString" logicalId="HostedZoneName" description="Hosted Zone Name"}} +{{parameter "requiredString" logicalId="RecordSetName" description="Name of Record Set"}} +{{parameter "requiredString" logicalId="RecordSetType" description="Type of Record Set, eg: A, CNAME, MX, AAAA, TXT, PTR, SRV, SPF, NAPTR"}} +{{parameter "requiredString" logicalId="ResourceRecord" description="Value for the record set"}} +{{parameter "requiredString" logicalId="TTLValue" description="TTL in seconds"}} +{{parameter "requiredString" logicalId="ResourceRecord" description="Value for Record Set Type" type="CommaDelimitedList"}} + +{{#resource logicalId="Route53RecordSet"}} + "Type": "AWS::Route53::RecordSet", + "Properties": { + "HostedZoneName": {{ref "HostedZoneName"}}, + "Name": {{ref "RecordSetName"}}, + "Type": {{ref "RecordSetType"}}, + "TTL": {{ref "TTLValue"}}, + "ResourceRecords": {{ref "ResourceRecord"}} + } +{{/resource}} + +{{output "m:core" "base" logicalId="Route53RecordSetDomainName" value=(ref "Route53RecordSet")}} From 745cad782c351fae5ee7b30ad0265d4a7462f47e Mon Sep 17 00:00:00 2001 From: Jophine Antony Date: Wed, 26 Apr 2017 18:36:50 +0530 Subject: [PATCH 3/4] Addressed review comments. Moved resources to resources directory. --- .../particles/resources/route53HostedZone.hbs | 6 +++++- .../particles/resources/route53RecordSet.hbs | 9 ++++++++- .../particles-initial/particles/sets/hostedzone.hbs | 1 - 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/managed-route53/build.f/particles-initial/particles/resources/route53HostedZone.hbs b/managed-route53/build.f/particles-initial/particles/resources/route53HostedZone.hbs index daf1e52a..62bf544d 100644 --- a/managed-route53/build.f/particles-initial/particles/resources/route53HostedZone.hbs +++ b/managed-route53/build.f/particles-initial/particles/resources/route53HostedZone.hbs @@ -1,2 +1,6 @@ -{{#resource "m:core" "base"}} +{{#resource "m:core" "base" type="AWS::Route53::HostedZone"}} + {{#helper "m:core" "properties"}} + {{helper "m:core" "property" "Name"}} + {{helper "m:core" "property" "Comment" optional=true}} + {{/helper}} {{/resource}} diff --git a/managed-route53/build.f/particles-initial/particles/resources/route53RecordSet.hbs b/managed-route53/build.f/particles-initial/particles/resources/route53RecordSet.hbs index daf1e52a..a1aead6c 100644 --- a/managed-route53/build.f/particles-initial/particles/resources/route53RecordSet.hbs +++ b/managed-route53/build.f/particles-initial/particles/resources/route53RecordSet.hbs @@ -1,2 +1,9 @@ -{{#resource "m:core" "base"}} +{{#resource "m:core" "base" type="AWS::Route53::RecordSet"}} + {{#helper "m:core" "properties"}} + {{helper "m:core" "property" "HostedZoneName"}} + {{helper "m:core" "property" "Name"}} + {{helper "m:core" "property" "Type"}} + {{helper "m:core" "property" "TTL"}} + {{helper "m:core" "property" "ResourceRecords"}} + {{/helper}} {{/resource}} diff --git a/managed-route53/build.f/particles-initial/particles/sets/hostedzone.hbs b/managed-route53/build.f/particles-initial/particles/sets/hostedzone.hbs index 3cce6d61..1ea5e55b 100644 --- a/managed-route53/build.f/particles-initial/particles/sets/hostedzone.hbs +++ b/managed-route53/build.f/particles-initial/particles/sets/hostedzone.hbs @@ -2,7 +2,6 @@ {{parameter "optionalString" logicalId="RouteHostComment"}} {{#resource "route53HostedZone" logicalId="Route53HostedZone" }} - "Type": "AWS::Route53::HostedZone", "Properties": { "Name": {{ref "RouteHostName"}}, "HostedZoneConfig": { From 10ba6597b79b7ab738233e94e1f05018c123bd8d Mon Sep 17 00:00:00 2001 From: Jophine Antony Date: Fri, 12 May 2017 18:45:17 +0530 Subject: [PATCH 4/4] Changes: * Modified particle to get hostedzone id as input/identifier to create recordset instead of hostedzone name. This is because, aws allows to create duplicate hostedzones with same name. Hence, hostedzone id was chosen to maintain uniqueness. --- .../particles/resources/route53RecordSet.hbs | 2 +- .../build.f/particles-initial/particles/sets/recordset.hbs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/managed-route53/build.f/particles-initial/particles/resources/route53RecordSet.hbs b/managed-route53/build.f/particles-initial/particles/resources/route53RecordSet.hbs index a1aead6c..ccd9e305 100644 --- a/managed-route53/build.f/particles-initial/particles/resources/route53RecordSet.hbs +++ b/managed-route53/build.f/particles-initial/particles/resources/route53RecordSet.hbs @@ -1,6 +1,6 @@ {{#resource "m:core" "base" type="AWS::Route53::RecordSet"}} {{#helper "m:core" "properties"}} - {{helper "m:core" "property" "HostedZoneName"}} + {{helper "m:core" "property" "HostedZoneId"}} {{helper "m:core" "property" "Name"}} {{helper "m:core" "property" "Type"}} {{helper "m:core" "property" "TTL"}} diff --git a/managed-route53/build.f/particles-initial/particles/sets/recordset.hbs b/managed-route53/build.f/particles-initial/particles/sets/recordset.hbs index 70521391..f61211aa 100644 --- a/managed-route53/build.f/particles-initial/particles/sets/recordset.hbs +++ b/managed-route53/build.f/particles-initial/particles/sets/recordset.hbs @@ -1,4 +1,4 @@ -{{parameter "requiredString" logicalId="HostedZoneName" description="Hosted Zone Name"}} +{{parameter "requiredString" logicalId="HostedZoneId" description="Hosted Zone Id"}} {{parameter "requiredString" logicalId="RecordSetName" description="Name of Record Set"}} {{parameter "requiredString" logicalId="RecordSetType" description="Type of Record Set, eg: A, CNAME, MX, AAAA, TXT, PTR, SRV, SPF, NAPTR"}} {{parameter "requiredString" logicalId="ResourceRecord" description="Value for the record set"}} @@ -8,7 +8,7 @@ {{#resource logicalId="Route53RecordSet"}} "Type": "AWS::Route53::RecordSet", "Properties": { - "HostedZoneName": {{ref "HostedZoneName"}}, + "HostedZoneId": {{ref "HostedZoneId"}}, "Name": {{ref "RecordSetName"}}, "Type": {{ref "RecordSetType"}}, "TTL": {{ref "TTLValue"}},