Gradle
Enable the KloudFormation Gradle plugin
Add the plugin to your build.gradle.kts file.
Build script snippet for plugins DSL for Gradle 2.1 and later:
plugins {
id("io.klouds.kloudformation.gradle.plugin") version "0.1.2"
}
Build script snippet for use in older Gradle versions or where dynamic configuration is required:
buildscript {
repositories {
maven {
url = uri("https://plugins.gradle.org/m2/")
}
}
dependencies {
classpath("gradle.plugin.io.klouds.kloudformation.gradle.plugin:kloudformation-gradle-plugin:0.1.2")
}
}
apply(plugin = "io.klouds.kloudformation.gradle.plugin")
This will provide your Gradle build with a new task called generateTemplate. Add this task to your main build flow.
When your project uses the Gradle Java plugin:
tasks["jar"].dependsOn("generateTemplate")
KloudFormation Gradle plugin configuration
Add the configuration to your build.gradle.kts file.
Configure the plugin to outline your template stack:
configure<KloudFormationConfiguration> {
template = KloudFormationTemplate.create {
val topicName = parameter<String>("TopicName")
topic {
topicName(topicName.ref())
}
queue()
bucket {
bucketName("myBucket")
}
}
}
The path and template format is also configurable.
The above configuration will produce the following template YAML in the default path of “build/generated/template/template.yaml”
AWSTemplateFormatVersion: "2010-09-09"
Parameters:
TopicName:
Type: "String"
Resources:
Topic:
Type: "AWS::SNS::Topic"
Properties:
TopicName:
Ref: "TopicName"
Queue:
Type: "AWS::SQS::Queue"
Bucket:
Type: "AWS::S3::Bucket"
Properties:
BucketName: "myBucket"