Skip to content

Commit f222250

Browse files
committed
Added example and build
1 parent 49b0c46 commit f222250

File tree

8 files changed

+156
-0
lines changed

8 files changed

+156
-0
lines changed

.ruby-version

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
2.3.0

Gemfile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
source "http://rubygems.org"
2+
3+
gem "rake"

Gemfile.lock

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
GEM
2+
remote: http://rubygems.org/
3+
specs:
4+
rake (11.1.2)
5+
6+
PLATFORMS
7+
ruby
8+
9+
DEPENDENCIES
10+
rake
11+
12+
BUNDLED WITH
13+
1.11.2

Rakefile

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
require 'rake'
2+
3+
inputs = {
4+
'stack_item_label' => 'expl-tst',
5+
'stack_item_fullname' => 'Example Stack',
6+
'vpc_id' => 'vpc-xxxxxx',
7+
'region' => 'us-west-2',
8+
'subnets' => 'subnet-111111,subnet-222222',
9+
'ami' => 'ami-xxxxxx',
10+
'instance_type' => 't2.small',
11+
'key_name' => 'example',
12+
'route_cidrs' => '10.10.0.0/25,10.10.0.128/25,10.10.4.0/25,10.10.4.128/25',
13+
's3_bucket' => 'openvpn-certs',
14+
's3_bucket_prefix' => '20160603',
15+
'cidr_whitelist' => '0.0.0.0/0'
16+
}
17+
18+
task :default => :verify
19+
20+
desc "Verify the stack"
21+
task :verify do
22+
23+
vars = []
24+
inputs.each() do |var, value|
25+
vars.push("-var #{var}=\"#{value}\"")
26+
end
27+
28+
['openvpn'].each do |stack|
29+
task_args = {:stack => stack, :args => vars.join(' ')}
30+
Rake::Task['clean'].execute(Rake::TaskArguments.new(task_args.keys, task_args.values))
31+
Rake::Task['plan'].execute(Rake::TaskArguments.new(task_args.keys, task_args.values))
32+
end
33+
end
34+
35+
desc "Remove existing local state if present"
36+
task :clean, [:stack] do |t, args|
37+
sh "cd examples/#{args['stack']} && rm -fr .terraform *.tfstate*"
38+
end
39+
40+
desc "Create execution plan"
41+
task :plan, [:stack, :args] do |t, args|
42+
sh "cd examples/#{args['stack']} && terraform get && terraform plan -module-depth=-1 -input=false #{args['args']}"
43+
end

circle.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
machine:
2+
environment:
3+
TF_VERSION: 0.6.16
4+
TF_URL: https://releases.hashicorp.com/terraform/${TF_VERSION}/terraform_${TF_VERSION}_linux_amd64.zip
5+
dependencies:
6+
pre:
7+
- "[[ -f \"${HOME}/bin/terraform\" ]] || (wget -O \"/tmp/tf.zip\" \"${TF_URL}\" && unzip -o -d \"${HOME}/bin\" \"/tmp/tf.zip\")"
8+
- terraform version
9+
test:
10+
override:
11+
# Style check
12+
- "[ $(terraform fmt -write=false | wc -l) -eq 0 ]"
13+
# Verify plan
14+
- bundle exec rake

examples/openvpn/main.tf

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# OpenVPN Server Example
2+
3+
## Configures provider
4+
provider "aws" {
5+
region = "${var.region}"
6+
}
7+
8+
## Creates OpenVPN deployment
9+
module "openvpn_server" {
10+
source = "../../certs"
11+
12+
## Resource tags
13+
stack_item_label = "${var.stack_item_label}"
14+
stack_item_fullname = "${var.stack_item_fullname}"
15+
16+
## VPC parameters
17+
vpc_id = "${var.vpc_id}"
18+
region = "${var.region}"
19+
subnets = "${var.subnets}"
20+
21+
## OpenVPN parameters
22+
ami = "${var.ami}"
23+
instance_type = "${var.instance_type}"
24+
key_name = "${var.key_name}"
25+
route_cidrs = "${var.route_cidrs}"
26+
s3_bucket = "${var.s3_bucket}"
27+
s3_bucket_prefix = "${var.s3_bucket_prefix}"
28+
cidr_whitelist = "${var.cidr_whitelist}"
29+
}

examples/openvpn/outputs.tf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+

examples/openvpn/variables.tf

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# Inputs
2+
3+
## Resource tags
4+
variable "stack_item_label" {
5+
type = "string"
6+
}
7+
8+
variable "stack_item_fullname" {
9+
type = "string"
10+
}
11+
12+
## VPC parameters
13+
variable "vpc_id" {
14+
type = "string"
15+
}
16+
17+
variable "region" {
18+
type = "string"
19+
}
20+
21+
variable "subnets" {
22+
type = "string"
23+
}
24+
25+
## OpenVPN parameters
26+
variable "ami" {
27+
type = "string"
28+
}
29+
30+
variable "instance_type" {
31+
type = "string"
32+
}
33+
34+
variable "key_name" {
35+
type = "string"
36+
}
37+
38+
variable "route_cidrs" {
39+
type = "string"
40+
}
41+
42+
variable "s3_bucket" {
43+
type = "string"
44+
}
45+
46+
variable "s3_bucket_prefix" {
47+
type = "string"
48+
}
49+
50+
variable "cidr_whitelist" {
51+
type = "string"
52+
}

0 commit comments

Comments
 (0)