kite 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Dockerfile +16 -0
- data/Makefile +12 -0
- data/lib/kite.rb +1 -0
- data/lib/kite/base.rb +5 -0
- data/lib/kite/cloud.rb +1 -0
- data/lib/kite/core.rb +8 -24
- data/lib/kite/error.rb +1 -0
- data/lib/kite/render.rb +30 -0
- data/lib/kite/version.rb +1 -1
- data/tpl/aws/README.md +3 -3
- data/tpl/aws/bosh-install.sh.erb +7 -11
- data/tpl/aws/concourse-deploy.sh.erb +17 -0
- data/tpl/aws/deployments/bosh/{bosh_director.yml → bosh.yml} +7 -7
- data/tpl/aws/deployments/bosh/{bosh_vars.yml.erb → bosh_vars.yml.tt} +3 -3
- data/tpl/aws/{concourse/aws_cloud.yml.erb → deployments/concourse/cloud-config.yml.erb} +16 -28
- data/tpl/aws/{concourse → deployments/concourse}/concourse.yml.erb +24 -20
- data/tpl/aws/set-env.sh.erb +7 -0
- data/tpl/aws/setup-tunnel.sh.erb +1 -1
- data/tpl/aws/terraform/main.tf +6 -6
- data/tpl/aws/terraform/network.tf +74 -43
- data/tpl/aws/terraform/outputs.tf +5 -5
- data/tpl/aws/terraform/terraform.tfvars.erb +10 -10
- data/tpl/aws/terraform/variables.tf +11 -10
- data/tpl/gcp/README.md +31 -2
- data/tpl/gcp/deployments/concourse/cloud-config.yml.erb +56 -0
- data/tpl/gcp/deployments/concourse/concourse.yml.erb +86 -0
- data/tpl/gcp/set-env.sh.erb +8 -0
- data/tpl/gcp/setup-tunnel.sh.erb +1 -1
- data/tpl/gcp/terraform/network.tf +11 -0
- data/tpl/skel/config/cloud.yml +17 -14
- metadata +14 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3084fa0faffd40bc3ffad4f326ea1501cb6eb31a
|
4
|
+
data.tar.gz: dcee9c104c6d840a0465b209aa391872b12cb629
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c2affb89e3e7fb09feddecf3151c0042ea1708319ccd5f56fc5d896562e385aadb4dd79c32858de2e60a28f77b0830a482384a95062ca0c982afd4c0374717bf
|
7
|
+
data.tar.gz: 11fc96ffbe8cde21ed4bc3adb09c10acaafce7faebbe1badffc06ca3919913769f4e459f4cde23779a47f7649f41eeca1fc7cdd5dc3419b55ae1f794bdb1b19e
|
data/Dockerfile
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
FROM ruby:2.4.1
|
2
|
+
|
3
|
+
RUN apt-get update && apt-get install -y zip
|
4
|
+
|
5
|
+
# Install Terraform
|
6
|
+
RUN curl https://releases.hashicorp.com/terraform/0.10.5/terraform_0.10.5_linux_amd64.zip?_ga=2.49593953.619315674.1505216069-1504763789.1498760046 -o terraform.zip
|
7
|
+
RUN unzip terraform -d /usr/bin/terraform && chmod +x /usr/bin/terraform
|
8
|
+
|
9
|
+
# Install BOSH v2
|
10
|
+
RUN curl https://s3.amazonaws.com/bosh-cli-artifacts/bosh-cli-2.0.31-linux-amd64 -o /usr/bin/bosh && chmod +x /usr/bin/bosh
|
11
|
+
|
12
|
+
# Copy kite source, build and install the gem , egnerate a test cloud skeleton
|
13
|
+
COPY . /kite
|
14
|
+
WORKDIR /kite
|
15
|
+
RUN bundle && rake build && gem install pkg/kite-*
|
16
|
+
RUN kite new test
|
data/Makefile
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
IMAGE ?= kaigara/kitebox
|
2
|
+
TAG ?= $(shell git describe --tags --abbrev=0 2>/dev/null || echo "1.0.0")
|
3
|
+
|
4
|
+
.PHONY: build
|
5
|
+
|
6
|
+
build:
|
7
|
+
echo "Building $(IMAGE):$(TAG)"
|
8
|
+
docker build -t "$(IMAGE):$(TAG)" .
|
9
|
+
start: build
|
10
|
+
docker run -d --name="kitebox" $(IMAGE):$(TAG)
|
11
|
+
clean:
|
12
|
+
docker rm $(docker stop {kitebox})
|
data/lib/kite.rb
CHANGED
data/lib/kite/base.rb
CHANGED
data/lib/kite/cloud.rb
CHANGED
data/lib/kite/core.rb
CHANGED
@@ -3,11 +3,8 @@ module Kite
|
|
3
3
|
|
4
4
|
include Kite::Helpers
|
5
5
|
|
6
|
-
def self.source_root
|
7
|
-
File.expand_path(File.join(File.dirname(__FILE__), "../../tpl"))
|
8
|
-
end
|
9
|
-
|
10
6
|
desc "new CLOUD_PATH", "Generate Cloud infrastructure skeleton from configuration"
|
7
|
+
# Creates a cloud infrastructure skeleton with a given name
|
11
8
|
def new(cloud_name)
|
12
9
|
target = Kite::Cloud.new(self, cloud_name)
|
13
10
|
target.prepare
|
@@ -15,6 +12,7 @@ module Kite
|
|
15
12
|
|
16
13
|
method_option :cloud, type: :string, desc: "Cloud provider", enum: %w{aws gcp}, required: true
|
17
14
|
desc "generate", "Generate Cloud IaC from configuration"
|
15
|
+
# Generates Infrastructure as Code and setup scripts for the given cloud using values from <b>config/cloud.yml</b>
|
18
16
|
def generate()
|
19
17
|
say "Generating Cloud #{ options[:cloud] } IaC", :green
|
20
18
|
@values = parse_cloud_config
|
@@ -30,7 +28,10 @@ module Kite
|
|
30
28
|
|
31
29
|
template('aws/bosh-install.sh.erb', 'bin/bosh-install.sh')
|
32
30
|
template('aws/setup-tunnel.sh.erb', 'bin/setup-tunnel.sh')
|
31
|
+
template('aws/concourse-deploy.sh.erb', 'bin/concourse-deploy.sh')
|
32
|
+
template('aws/set-env.sh.erb', 'bin/set-env.sh')
|
33
33
|
chmod('bin/bosh-install.sh', 0755)
|
34
|
+
chmod('bin/concourse-deploy.sh', 0755)
|
34
35
|
chmod('bin/setup-tunnel.sh', 0755)
|
35
36
|
|
36
37
|
when 'gcp'
|
@@ -44,6 +45,7 @@ module Kite
|
|
44
45
|
template('gcp/bosh-install.sh.erb', 'bin/bosh-install.sh')
|
45
46
|
template('gcp/bosh-vars.yml.erb', 'bosh-vars.yml')
|
46
47
|
template('gcp/setup-tunnel.sh.erb', 'bin/setup-tunnel.sh')
|
48
|
+
template('gcp/set-env.sh.erb', 'bin/set-env.sh')
|
47
49
|
chmod('bin/bosh-install.sh', 0755)
|
48
50
|
chmod('bin/setup-tunnel.sh', 0755)
|
49
51
|
|
@@ -53,29 +55,11 @@ module Kite
|
|
53
55
|
end
|
54
56
|
end
|
55
57
|
|
56
|
-
method_option :cloud, type: :string, desc: "Cloud provider", enum: %w{aws gcp}, required: true
|
57
58
|
desc 'render MANIFEST', 'Render manifest file from configuration and Terraform output'
|
58
|
-
|
59
|
-
say "Rendering #{ manifest } manifest", :green
|
60
|
-
@values = parse_cloud_config
|
61
|
-
@tf_output = parse_tf_state('terraform/terraform.tfstate')
|
62
|
-
|
63
|
-
case manifest
|
64
|
-
when "bosh"
|
65
|
-
cloud = options[:cloud]
|
66
|
-
directory("#{cloud}/deployments", 'deployments')
|
67
|
-
|
68
|
-
when "concourse"
|
69
|
-
template("aws/concourse/aws_cloud.yml.erb", "aws_cloud.yml")
|
70
|
-
template("aws/concourse/concourse.yml.erb", "concourse.yml")
|
71
|
-
|
72
|
-
else
|
73
|
-
say "Manifest type not specified"
|
74
|
-
|
75
|
-
end
|
76
|
-
end
|
59
|
+
subcommand "render", Kite::Render
|
77
60
|
|
78
61
|
desc "version", "Return kite version"
|
62
|
+
# Return kite version
|
79
63
|
def version
|
80
64
|
say "v#{ Kite::VERSION }"
|
81
65
|
end
|
data/lib/kite/error.rb
CHANGED
data/lib/kite/render.rb
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
module Kite
|
2
|
+
# Subcommand for rendering manifests, deployments etc.
|
3
|
+
class Render < Base
|
4
|
+
|
5
|
+
include Kite::Helpers
|
6
|
+
|
7
|
+
desc "manifest <type>", "Renders a manifest of selected type"
|
8
|
+
method_option :cloud, type: :string, desc: "Cloud provider", enum: %w{aws gcp}, required: true
|
9
|
+
# Render a manifest of selected type based on <b>config/cloud.yml</b> and <b>terraform apply</b> results
|
10
|
+
def manifest(type)
|
11
|
+
say "Rendering #{type} manifest", :green
|
12
|
+
@values = parse_cloud_config
|
13
|
+
@tf_output = parse_tf_state('terraform/terraform.tfstate')
|
14
|
+
|
15
|
+
case type
|
16
|
+
when "bosh"
|
17
|
+
cloud = options[:cloud]
|
18
|
+
directory("#{cloud}/deployments", 'deployments')
|
19
|
+
|
20
|
+
when "concourse"
|
21
|
+
template("#{options[:cloud]}/deployments/concourse/cloud-config.yml.erb", "deployments/concourse/cloud-config.yml")
|
22
|
+
template("#{options[:cloud]}/deployments/concourse/concourse.yml.erb", "deployments/concourse/concourse.yml")
|
23
|
+
|
24
|
+
else
|
25
|
+
say "Manifest type not specified"
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
data/lib/kite/version.rb
CHANGED
data/tpl/aws/README.md
CHANGED
@@ -20,9 +20,9 @@ Usage
|
|
20
20
|
|
21
21
|
To deploy a BOSH Director:
|
22
22
|
- Apply the terraform IaC from `terraform` folder
|
23
|
-
- Run `bin/
|
24
|
-
- Run `kite render bosh --cloud
|
25
|
-
- Run `bin/
|
23
|
+
- Run `source bin/setup-tunnel.sh` to create an SSH CLI tunnel
|
24
|
+
- Run `kite render manifest bosh --cloud=aws` to render BOSH deployment files
|
25
|
+
- Run `bin/bosh-install.sh` to deploy the BOSH Director
|
26
26
|
|
27
27
|
To access BOSH Director information, use bosh -e *bosh_name* env
|
28
28
|
|
data/tpl/aws/bosh-install.sh.erb
CHANGED
@@ -3,10 +3,10 @@
|
|
3
3
|
set -xe
|
4
4
|
|
5
5
|
# Create a new BOSH environment with Director
|
6
|
-
bosh create-env deployments/bosh/
|
7
|
-
--state=state.json \
|
8
|
-
--vars-store=creds.yml \
|
9
|
-
--vars-file=bosh_vars.yml \
|
6
|
+
bosh create-env deployments/bosh/bosh.yml \
|
7
|
+
--state=config/state.json \
|
8
|
+
--vars-store=config/creds.yml \
|
9
|
+
--vars-file=deployments/bosh/bosh_vars.yml \
|
10
10
|
--var-file private_key=<%= @values['kite']['private_key_path'] %> \
|
11
11
|
-o deployments/bosh/cpi.yml \
|
12
12
|
-o deployments/bosh/jumpbox-user.yml
|
@@ -14,12 +14,8 @@ bosh create-env deployments/bosh/bosh_director.yml \
|
|
14
14
|
# Configure alias for the new environment
|
15
15
|
bosh alias-env <%= @values['bosh']['name'] %> \
|
16
16
|
-e <%= @values['bosh']['static_ip'] %> \
|
17
|
-
--ca-cert <(bosh int ./creds.yml --path /director_ssl/ca)
|
17
|
+
--ca-cert <(bosh int ./config/creds.yml --path /director_ssl/ca)
|
18
18
|
|
19
19
|
# Get jumpbox user key
|
20
|
-
bosh int creds.yml --path /jumpbox_ssh/private_key > jumpbox.key
|
21
|
-
chmod 600 jumpbox.key
|
22
|
-
|
23
|
-
# Log into the newly created Director
|
24
|
-
export BOSH_CLIENT=admin
|
25
|
-
export BOSH_CLIENT_SECRET=`bosh int ./creds.yml --path /admin_password`
|
20
|
+
bosh int config/creds.yml --path /jumpbox_ssh/private_key > config/jumpbox.key
|
21
|
+
chmod 600 config/jumpbox.key
|
@@ -0,0 +1,17 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
|
3
|
+
set -xe
|
4
|
+
|
5
|
+
# Render Concourse-related files
|
6
|
+
kite render manifest concourse --cloud aws
|
7
|
+
|
8
|
+
# Update BOSH director cloud configuration
|
9
|
+
bosh update-cloud-config deployments/concourse/cloud-config.yml
|
10
|
+
|
11
|
+
# Upload necessary stemcells and releases
|
12
|
+
bosh -e <%= @values['bosh']['name'] %> upload-stemcell https://bosh.io/d/stemcells/bosh-aws-xen-hvm-ubuntu-trusty-go_agent
|
13
|
+
bosh -e <%= @values['bosh']['name'] %> upload-release https://bosh.io/d/github.com/concourse/concourse
|
14
|
+
bosh -e <%= @values['bosh']['name'] %> upload-release https://bosh.io/d/github.com/cloudfoundry-incubator/garden-runc-release
|
15
|
+
|
16
|
+
# Deploy Concourse
|
17
|
+
bosh -e <%= @values['bosh']['name'] %> -d concourse deploy deployments/concourse/concourse.yml
|
@@ -3,9 +3,9 @@ name: bosh
|
|
3
3
|
|
4
4
|
releases:
|
5
5
|
- name: bosh
|
6
|
-
version: "
|
7
|
-
url: https://s3.amazonaws.com/bosh-compiled-release-tarballs/bosh-
|
8
|
-
sha1:
|
6
|
+
version: "263"
|
7
|
+
url: https://s3.amazonaws.com/bosh-compiled-release-tarballs/bosh-263-ubuntu-trusty-3445.7-20170901-012146-902840377-20170901012153.tgz?versionId=89a.ZxB3Jc_gl6s4YESlL41xNOfoJKrO
|
8
|
+
sha1: cc71c2ee6992071b1e1f6ae9f2119c03a42521c5
|
9
9
|
|
10
10
|
resource_pools:
|
11
11
|
- name: vms
|
@@ -24,9 +24,9 @@ networks:
|
|
24
24
|
- name: default
|
25
25
|
type: manual
|
26
26
|
subnets:
|
27
|
-
- range:
|
28
|
-
gateway:
|
29
|
-
static: [
|
27
|
+
- range: ((internal_cidr))
|
28
|
+
gateway: ((internal_gw))
|
29
|
+
static: [((internal_ip))]
|
30
30
|
dns: [8.8.8.8]
|
31
31
|
|
32
32
|
instance_groups:
|
@@ -56,7 +56,7 @@ instance_groups:
|
|
56
56
|
database: bosh
|
57
57
|
adapter: postgres
|
58
58
|
blobstore:
|
59
|
-
address:
|
59
|
+
address: ((internal_ip))
|
60
60
|
port: 25250
|
61
61
|
provider: dav
|
62
62
|
director:
|
@@ -1,11 +1,11 @@
|
|
1
1
|
director_name: <%= @values['bosh']['name'] %>
|
2
|
-
internal_cidr: <%= @values['aws']['
|
3
|
-
internal_gw:
|
2
|
+
internal_cidr: <%= @values['aws']['private_subnet']['network'] %>
|
3
|
+
internal_gw: <%= @values['aws']['private_subnet']['gateway'] %>
|
4
4
|
internal_ip: <%= @values['bosh']['static_ip'] %>
|
5
5
|
access_key_id: <%= @values['aws']['access_key'] %>
|
6
6
|
secret_access_key: <%= @values['aws']['secret_key'] %>
|
7
7
|
region: <%= @values['aws']['region'] %>
|
8
|
-
az: <%= @values['aws']['
|
8
|
+
az: <%= @values['aws']['zone'] %>
|
9
9
|
default_key_name: <%= @values['kite']['keypair_name'] %>
|
10
10
|
default_security_groups: [<%= @tf_output['security_group_id'] %>]
|
11
11
|
subnet_id: <%= @tf_output['platform_subnet_id'] %>
|
@@ -1,46 +1,44 @@
|
|
1
1
|
---
|
2
2
|
azs:
|
3
3
|
- name: z1
|
4
|
-
cloud_properties: {availability_zone: <%= @values['aws']['
|
4
|
+
cloud_properties: {availability_zone: <%= @values['aws']['zone'] %>}
|
5
5
|
|
6
6
|
vm_types:
|
7
7
|
- name: concourse_standalone
|
8
8
|
cloud_properties:
|
9
9
|
instance_type: m3.large
|
10
10
|
ephemeral_disk: {size: 5000, type: gp2}
|
11
|
-
|
12
|
-
security_groups: [concourse-sg, boshdefault]
|
11
|
+
security_groups: [concourse-sg, bosh_sg]
|
13
12
|
- name: concourse_web
|
14
13
|
cloud_properties:
|
15
14
|
instance_type: m3.medium
|
16
15
|
ephemeral_disk: {size: 3000, type: gp2}
|
17
|
-
|
18
|
-
security_groups: [concourse-sg, boshdefault]
|
16
|
+
security_groups: [concourse-sg, bosh_sg]
|
19
17
|
- name: concourse_db
|
20
18
|
cloud_properties:
|
21
19
|
instance_type: m3.medium
|
22
20
|
ephemeral_disk: {size: 3000, type: gp2}
|
23
|
-
security_groups: [
|
21
|
+
security_groups: [bosh_sg]
|
24
22
|
- name: concourse_worker
|
25
23
|
cloud_properties:
|
26
24
|
instance_type: m3.large
|
27
25
|
ephemeral_disk: {size: 30000, type: gp2}
|
28
|
-
security_groups: [
|
26
|
+
security_groups: [bosh_sg]
|
29
27
|
- name: default
|
30
28
|
cloud_properties:
|
31
29
|
instance_type: t2.micro
|
32
30
|
ephemeral_disk: {size: 3000, type: gp2}
|
33
|
-
security_groups: [
|
31
|
+
security_groups: [bosh_sg]
|
34
32
|
- name: large
|
35
33
|
cloud_properties:
|
36
34
|
instance_type: m3.large
|
37
35
|
ephemeral_disk: {size: 5000, type: gp2}
|
38
|
-
security_groups: [
|
36
|
+
security_groups: [bosh_sg]
|
39
37
|
- name: vault-default
|
40
38
|
cloud_properties:
|
41
39
|
instance_type: t2.micro
|
42
40
|
ephemeral_disk: {size: 3000, type: gp2}
|
43
|
-
security_groups: [vault-sg,
|
41
|
+
security_groups: [vault-sg, bosh_sg]
|
44
42
|
|
45
43
|
disk_types:
|
46
44
|
- name: default
|
@@ -51,25 +49,15 @@ disk_types:
|
|
51
49
|
cloud_properties: {type: gp2}
|
52
50
|
|
53
51
|
networks:
|
54
|
-
- name:
|
55
|
-
type: manual
|
56
|
-
subnets:
|
57
|
-
- range: 10.0.0.0/24
|
58
|
-
gateway: 10.0.0.1
|
59
|
-
az: z1
|
60
|
-
static: [10.0.0.6]
|
61
|
-
reserved: [10.0.0.1-10.0.0.5]
|
62
|
-
dns: [10.0.0.2]
|
63
|
-
cloud_properties: {subnet: <%= @tf_output['default_subnet_id'] %>}
|
64
|
-
- name: ops_services
|
52
|
+
- name: platform_net
|
65
53
|
type: manual
|
66
54
|
subnets:
|
67
|
-
-
|
68
|
-
|
69
|
-
|
70
|
-
reserved: [10.0.
|
71
|
-
dns: [10.0.
|
72
|
-
cloud_properties: {subnet: <%= @tf_output['
|
55
|
+
- az: z1
|
56
|
+
range: <%= @values['aws']['private_subnet']['network'] %>
|
57
|
+
gateway: <%= @values['aws']['private_subnet']['gateway'] %>
|
58
|
+
reserved: [10.0.20.1-10.0.20.10]
|
59
|
+
dns: [10.0.20.8]
|
60
|
+
cloud_properties: {subnet: <%= @tf_output['platform_subnet_id'] %>}
|
73
61
|
- name: vip
|
74
62
|
type: vip
|
75
63
|
|
@@ -78,4 +66,4 @@ compilation:
|
|
78
66
|
reuse_compilation_vms: true
|
79
67
|
az: z1
|
80
68
|
vm_type: large
|
81
|
-
network:
|
69
|
+
network: platform_net
|
@@ -1,37 +1,33 @@
|
|
1
|
-
---
|
2
1
|
name: concourse
|
3
2
|
|
4
|
-
director_uuid: <%= %x(bosh status --uuid) %>
|
5
|
-
|
6
3
|
releases:
|
7
4
|
- name: concourse
|
8
5
|
version: latest
|
9
6
|
- name: garden-runc
|
10
7
|
version: latest
|
11
8
|
|
12
|
-
stemcells:
|
13
|
-
- alias: trusty
|
14
|
-
os: ubuntu-trusty
|
15
|
-
version: latest
|
16
|
-
|
17
9
|
instance_groups:
|
18
10
|
- name: web
|
19
11
|
instances: 1
|
20
12
|
vm_type: concourse_web
|
21
|
-
stemcell: trusty
|
22
13
|
azs: [z1]
|
23
|
-
|
14
|
+
# vm_extensions: [concourse-lb]
|
15
|
+
stemcell: trusty
|
16
|
+
networks:
|
17
|
+
- name: platform_net
|
18
|
+
default: [dns, gateway]
|
24
19
|
jobs:
|
25
20
|
- name: atc
|
26
21
|
release: concourse
|
27
22
|
properties:
|
28
|
-
|
23
|
+
bind_port: 80
|
29
24
|
external_url: <%= @values['concourse']['url'] %>
|
30
|
-
|
31
25
|
basic_auth_username: <%= @values['concourse']['auth_username'] %>
|
32
26
|
basic_auth_password: <%= @values['concourse']['auth_password'] %>
|
27
|
+
publicly_viewable: true
|
33
28
|
|
34
29
|
postgresql_database: &atc_db atc
|
30
|
+
|
35
31
|
- name: tsa
|
36
32
|
release: concourse
|
37
33
|
properties: {}
|
@@ -39,30 +35,32 @@ instance_groups:
|
|
39
35
|
- name: db
|
40
36
|
instances: 1
|
41
37
|
vm_type: concourse_db
|
42
|
-
stemcell: trusty
|
43
|
-
persistent_disk_type: default
|
44
38
|
azs: [z1]
|
45
|
-
|
39
|
+
stemcell: trusty
|
40
|
+
persistent_disk_type: large
|
41
|
+
networks: [{name: platform_net}]
|
46
42
|
jobs:
|
47
43
|
- name: postgresql
|
48
44
|
release: concourse
|
49
45
|
properties:
|
50
46
|
databases:
|
51
47
|
- name: *atc_db
|
52
|
-
|
53
|
-
role: dbrole
|
48
|
+
role: admin
|
54
49
|
password: <%= @values['concourse']['db_password'] %>
|
55
50
|
|
56
51
|
- name: worker
|
57
52
|
instances: 1
|
58
53
|
vm_type: concourse_worker
|
59
|
-
stemcell: trusty
|
60
54
|
azs: [z1]
|
61
|
-
|
55
|
+
stemcell: trusty
|
56
|
+
networks: [{name: platform_net}]
|
62
57
|
jobs:
|
63
58
|
- name: groundcrew
|
64
59
|
release: concourse
|
65
|
-
properties:
|
60
|
+
properties:
|
61
|
+
additional_resource_types:
|
62
|
+
- type: gcs-resource
|
63
|
+
image: docker:///frodenas/gcs-resource
|
66
64
|
- name: baggageclaim
|
67
65
|
release: concourse
|
68
66
|
properties: {}
|
@@ -72,6 +70,7 @@ instance_groups:
|
|
72
70
|
garden:
|
73
71
|
listen_network: tcp
|
74
72
|
listen_address: 0.0.0.0:7777
|
73
|
+
network_mtu: 1432
|
75
74
|
|
76
75
|
update:
|
77
76
|
canaries: 1
|
@@ -79,3 +78,8 @@ update:
|
|
79
78
|
serial: false
|
80
79
|
canary_watch_time: 1000-60000
|
81
80
|
update_watch_time: 1000-60000
|
81
|
+
|
82
|
+
stemcells:
|
83
|
+
- alias: trusty
|
84
|
+
os: ubuntu-trusty
|
85
|
+
version: latest
|
data/tpl/aws/setup-tunnel.sh.erb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
1
|
BASTION_IP="$(terraform output -state=terraform/terraform.tfstate bastion_ip)"
|
2
|
-
ssh -D 5000 -fNC ubuntu@$BASTION_IP -i <%= @values['kite']['
|
2
|
+
ssh -4 -D 5000 -fNC ubuntu@$BASTION_IP -i <%= @values['kite']['private_key_path'] %>
|
3
3
|
|
4
4
|
export BOSH_ALL_PROXY=socks5://localhost:5000
|
data/tpl/aws/terraform/main.tf
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
# Specify the provider and access details
|
2
2
|
provider "aws" {
|
3
|
-
region = "${var.
|
4
|
-
access_key = "${var.
|
5
|
-
secret_key = "${var.
|
3
|
+
region = "${var.region}"
|
4
|
+
access_key = "${var.access_key}"
|
5
|
+
secret_key = "${var.secret_key}"
|
6
6
|
}
|
7
7
|
|
8
8
|
resource "aws_key_pair" "platform_key" {
|
@@ -11,12 +11,12 @@ resource "aws_key_pair" "platform_key" {
|
|
11
11
|
}
|
12
12
|
|
13
13
|
resource "aws_instance" "bastion" {
|
14
|
-
ami = "${lookup(var.aws_amis, var.
|
14
|
+
ami = "${lookup(var.aws_amis, var.region)}"
|
15
15
|
instance_type = "t2.small"
|
16
16
|
key_name = "${var.keypair_name}"
|
17
17
|
|
18
|
-
vpc_security_group_ids = ["${aws_security_group.
|
19
|
-
subnet_id = "${aws_subnet.
|
18
|
+
vpc_security_group_ids = ["${aws_security_group.bastion_sg.id}"]
|
19
|
+
subnet_id = "${aws_subnet.platform_dmz.id}"
|
20
20
|
|
21
21
|
associate_public_ip_address = true
|
22
22
|
|
@@ -1,9 +1,9 @@
|
|
1
1
|
# Create a VPC to launch our instances into
|
2
2
|
resource "aws_vpc" "platform" {
|
3
|
-
cidr_block = "${var.
|
3
|
+
cidr_block = "${var.vpc_cidr_block}"
|
4
4
|
|
5
5
|
tags {
|
6
|
-
Name = "${var.
|
6
|
+
Name = "${var.vpc_name}"
|
7
7
|
Component = "kite-platform"
|
8
8
|
}
|
9
9
|
}
|
@@ -17,6 +17,40 @@ resource "aws_internet_gateway" "platform" {
|
|
17
17
|
}
|
18
18
|
}
|
19
19
|
|
20
|
+
# DMZ subnet
|
21
|
+
resource "aws_subnet" "platform_dmz" {
|
22
|
+
vpc_id = "${aws_vpc.platform.id}"
|
23
|
+
availability_zone = "${var.availability_zone}"
|
24
|
+
cidr_block = "${var.public_subnet_cidr}"
|
25
|
+
map_public_ip_on_launch = false
|
26
|
+
tags {
|
27
|
+
Name = "${var.public_subnet_name}"
|
28
|
+
Component = "kite-platform"
|
29
|
+
}
|
30
|
+
}
|
31
|
+
|
32
|
+
# Private subnet
|
33
|
+
resource "aws_subnet" "platform_net" {
|
34
|
+
vpc_id = "${aws_vpc.platform.id}"
|
35
|
+
availability_zone = "${var.availability_zone}"
|
36
|
+
cidr_block = "${var.private_subnet_cidr}"
|
37
|
+
map_public_ip_on_launch = false
|
38
|
+
tags {
|
39
|
+
Name = "${var.private_subnet_name}"
|
40
|
+
Component = "kite-platform"
|
41
|
+
}
|
42
|
+
}
|
43
|
+
|
44
|
+
# Allocate an Elastic IP for NAT gateway
|
45
|
+
resource "aws_eip" "nat_ip" {
|
46
|
+
}
|
47
|
+
|
48
|
+
# Create a NAT gateway to forward the traffic for BOSH
|
49
|
+
resource "aws_nat_gateway" "nat_gateway" {
|
50
|
+
allocation_id = "${aws_eip.nat_ip.id}"
|
51
|
+
subnet_id = "${aws_subnet.platform_dmz.id}"
|
52
|
+
}
|
53
|
+
|
20
54
|
# Grant the VPC internet access on its main route table
|
21
55
|
resource "aws_route" "internet_access" {
|
22
56
|
route_table_id = "${aws_vpc.platform.main_route_table_id}"
|
@@ -24,27 +58,51 @@ resource "aws_route" "internet_access" {
|
|
24
58
|
gateway_id = "${aws_internet_gateway.platform.id}"
|
25
59
|
}
|
26
60
|
|
27
|
-
# Create a
|
28
|
-
resource "
|
61
|
+
# Create a custom route table for the private subnet
|
62
|
+
resource "aws_route_table" "private_route" {
|
29
63
|
vpc_id = "${aws_vpc.platform.id}"
|
30
|
-
|
31
|
-
|
32
|
-
|
64
|
+
|
65
|
+
route {
|
66
|
+
cidr_block = "0.0.0.0/0"
|
67
|
+
nat_gateway_id = "${aws_nat_gateway.nat_gateway.id}"
|
68
|
+
}
|
69
|
+
|
33
70
|
tags {
|
34
|
-
Name = "
|
71
|
+
Name = "platform-route"
|
35
72
|
Component = "kite-platform"
|
36
73
|
}
|
37
74
|
}
|
38
75
|
|
39
|
-
#
|
40
|
-
resource "
|
76
|
+
# Associate custom route table with private subnet
|
77
|
+
resource "aws_route_table_association" "private_route" {
|
78
|
+
subnet_id = "${aws_subnet.platform_net.id}"
|
79
|
+
route_table_id = "${aws_route_table.private_route.id}"
|
80
|
+
}
|
81
|
+
|
82
|
+
# The default security group
|
83
|
+
resource "aws_security_group" "bastion_sg" {
|
84
|
+
name = "bastion_sg"
|
85
|
+
description = "Bastion security group"
|
41
86
|
vpc_id = "${aws_vpc.platform.id}"
|
42
|
-
availability_zone = "${var.aws_availability_zone}"
|
43
|
-
cidr_block = "${var.aws_ops_subnet_cidr_block}"
|
44
|
-
map_public_ip_on_launch = false
|
45
87
|
tags {
|
46
|
-
Name = "
|
47
|
-
Component = "
|
88
|
+
Name = "bastion-sg"
|
89
|
+
Component = "bosh-director"
|
90
|
+
}
|
91
|
+
|
92
|
+
ingress {
|
93
|
+
from_port = 22
|
94
|
+
to_port = 22
|
95
|
+
protocol = "tcp"
|
96
|
+
cidr_blocks = [
|
97
|
+
"0.0.0.0/0"]
|
98
|
+
}
|
99
|
+
|
100
|
+
egress {
|
101
|
+
from_port = 0
|
102
|
+
to_port = 0
|
103
|
+
protocol = "-1"
|
104
|
+
cidr_blocks = [
|
105
|
+
"0.0.0.0/0"]
|
48
106
|
}
|
49
107
|
}
|
50
108
|
|
@@ -54,7 +112,7 @@ resource "aws_security_group" "bosh_sg" {
|
|
54
112
|
description = "Default BOSH security group"
|
55
113
|
vpc_id = "${aws_vpc.platform.id}"
|
56
114
|
tags {
|
57
|
-
Name = "bosh-
|
115
|
+
Name = "bosh-sg"
|
58
116
|
Component = "bosh-director"
|
59
117
|
}
|
60
118
|
|
@@ -148,30 +206,3 @@ resource "aws_security_group" "concourse_sg" {
|
|
148
206
|
cidr_blocks = ["0.0.0.0/0"]
|
149
207
|
}
|
150
208
|
}
|
151
|
-
|
152
|
-
# Create a Vault security group
|
153
|
-
resource "aws_security_group" "vault_sg" {
|
154
|
-
name = "vault-sg"
|
155
|
-
description = "Vault security group"
|
156
|
-
vpc_id = "${aws_vpc.platform.id}"
|
157
|
-
tags {
|
158
|
-
Name = "vault-sg"
|
159
|
-
Component = "vault"
|
160
|
-
}
|
161
|
-
|
162
|
-
# outbound internet access
|
163
|
-
egress {
|
164
|
-
from_port = 0
|
165
|
-
to_port = 0
|
166
|
-
protocol = "-1"
|
167
|
-
cidr_blocks = ["0.0.0.0/0"]
|
168
|
-
}
|
169
|
-
|
170
|
-
# inbound http
|
171
|
-
ingress {
|
172
|
-
from_port = 8200
|
173
|
-
to_port = 8200
|
174
|
-
protocol = "tcp"
|
175
|
-
cidr_blocks = ["0.0.0.0/0"]
|
176
|
-
}
|
177
|
-
}
|
@@ -3,13 +3,13 @@ output "security_group_id" {
|
|
3
3
|
}
|
4
4
|
|
5
5
|
output "platform_subnet_id" {
|
6
|
-
value = "${aws_subnet.
|
7
|
-
}
|
8
|
-
|
9
|
-
output "ops_services_subnet_id" {
|
10
|
-
value = "${aws_subnet.ops_services.id}"
|
6
|
+
value = "${aws_subnet.platform_net.id}"
|
11
7
|
}
|
12
8
|
|
13
9
|
output "bastion_ip" {
|
14
10
|
value = "${aws_instance.bastion.public_ip}"
|
15
11
|
}
|
12
|
+
|
13
|
+
output "gateway_ip" {
|
14
|
+
value = "${aws_nat_gateway.nat_gateway.private_ip}"
|
15
|
+
}
|
@@ -1,16 +1,16 @@
|
|
1
1
|
# Credentials
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
2
|
+
access_key = "<%= @values['aws']['access_key'] %>"
|
3
|
+
secret_key = "<%= @values['aws']['secret_key'] %>"
|
4
|
+
region = "<%= @values['aws']['region'] %>"
|
5
|
+
availability_zone = "<%= @values['aws']['zone'] %>"
|
6
6
|
|
7
7
|
# Network Config
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
8
|
+
vpc_cidr_block = "<%= @values['aws']['vpc_cidr_block'] %>"
|
9
|
+
vpc_name = "<%= @values['aws']['vpc_name'] %>"
|
10
|
+
public_subnet_name = "<%= @values['aws']['public_subnet']['name'] %>"
|
11
|
+
public_subnet_cidr = "<%= @values['aws']['public_subnet']['network'] %>"
|
12
|
+
private_subnet_name = "<%= @values['aws']['private_subnet']['name'] %>"
|
13
|
+
private_subnet_cidr = "<%= @values['aws']['private_subnet']['network'] %>"
|
14
14
|
|
15
15
|
# Kite config
|
16
16
|
keypair_name = "<%= @values['kite']['keypair_name'] %>"
|
@@ -1,8 +1,8 @@
|
|
1
|
-
variable "
|
1
|
+
variable "access_key" {
|
2
2
|
type = "string"
|
3
3
|
}
|
4
4
|
|
5
|
-
variable "
|
5
|
+
variable "secret_key" {
|
6
6
|
type = "string"
|
7
7
|
}
|
8
8
|
|
@@ -18,37 +18,37 @@ variable "keypair_name" {
|
|
18
18
|
type = "string"
|
19
19
|
}
|
20
20
|
|
21
|
-
variable "
|
21
|
+
variable "region" {
|
22
22
|
type = "string"
|
23
23
|
default = "eu-central-1"
|
24
24
|
}
|
25
25
|
|
26
|
-
variable "
|
26
|
+
variable "availability_zone" {
|
27
27
|
type = "string"
|
28
28
|
default = "eu-central-1a"
|
29
29
|
}
|
30
30
|
|
31
|
-
variable "
|
31
|
+
variable "vpc_cidr_block" {
|
32
32
|
type = "string"
|
33
33
|
}
|
34
34
|
|
35
|
-
variable "
|
35
|
+
variable "vpc_name" {
|
36
36
|
type = "string"
|
37
37
|
}
|
38
38
|
|
39
|
-
variable "
|
39
|
+
variable "public_subnet_cidr" {
|
40
40
|
type = "string"
|
41
41
|
}
|
42
42
|
|
43
|
-
variable "
|
43
|
+
variable "public_subnet_name" {
|
44
44
|
type = "string"
|
45
45
|
}
|
46
46
|
|
47
|
-
variable "
|
47
|
+
variable "private_subnet_cidr" {
|
48
48
|
type = "string"
|
49
49
|
}
|
50
50
|
|
51
|
-
variable "
|
51
|
+
variable "private_subnet_name" {
|
52
52
|
type = "string"
|
53
53
|
}
|
54
54
|
|
@@ -56,5 +56,6 @@ variable "aws_amis" {
|
|
56
56
|
default = {
|
57
57
|
us-east-1 = "ami-1d4e7a66"
|
58
58
|
eu-central-1 = "ami-958128fa"
|
59
|
+
eu-west-1 = "ami-785db401"
|
59
60
|
}
|
60
61
|
}
|
data/tpl/gcp/README.md
CHANGED
@@ -8,15 +8,44 @@ pushd terraform && terraform init && terraform apply && popd
|
|
8
8
|
|
9
9
|
Render bosh deployment
|
10
10
|
```
|
11
|
-
kite render bosh --cloud=gcp
|
11
|
+
kite render manifest bosh --cloud=gcp
|
12
12
|
```
|
13
13
|
|
14
14
|
Setup tunnel
|
15
15
|
```
|
16
|
-
|
16
|
+
. bin/setup-tunnel.sh
|
17
17
|
```
|
18
18
|
|
19
19
|
Install BOSH
|
20
20
|
```
|
21
21
|
./bin/bosh-install.sh
|
22
22
|
```
|
23
|
+
|
24
|
+
Connect to the Director
|
25
|
+
```
|
26
|
+
. bin/set-env.sh
|
27
|
+
|
28
|
+
bosh alias-env bosh-1 -e 10.0.0.10 --ca-cert \
|
29
|
+
<(bosh int ./config/creds.yml --path /director_ssl/ca)
|
30
|
+
```
|
31
|
+
|
32
|
+
Render concourse deployment
|
33
|
+
```
|
34
|
+
kite render manifest concourse --cloud=gcp
|
35
|
+
```
|
36
|
+
|
37
|
+
Install concourse
|
38
|
+
```
|
39
|
+
bosh -e bosh-1 update-cloud-config deployments/concourse/cloud-config.yml
|
40
|
+
|
41
|
+
bosh -e bosh-1 upload-stemcell \
|
42
|
+
https://bosh.io/d/stemcells/bosh-google-kvm-ubuntu-trusty-go_agent?v=3445.7
|
43
|
+
|
44
|
+
bosh -e bosh-1 upload-release \
|
45
|
+
https://github.com/concourse/concourse/releases/download/v3.4.1/concourse-3.4.1.tgz
|
46
|
+
|
47
|
+
bosh -e bosh-1 upload-release \
|
48
|
+
https://github.com/concourse/concourse/releases/download/v3.4.1/garden-runc-1.6.0.tgz
|
49
|
+
|
50
|
+
bosh -e bosh-1 -d concourse deploy deployments/concourse/concourse.yml
|
51
|
+
```
|
@@ -0,0 +1,56 @@
|
|
1
|
+
azs:
|
2
|
+
- name: z1
|
3
|
+
cloud_properties:
|
4
|
+
zone: <%= @values['gcp']['zone'] %>
|
5
|
+
|
6
|
+
vm_types:
|
7
|
+
- name: common
|
8
|
+
cloud_properties:
|
9
|
+
machine_type: n1-standard-2
|
10
|
+
root_disk_size_gb: 20
|
11
|
+
root_disk_type: pd-ssd
|
12
|
+
|
13
|
+
- name: worker
|
14
|
+
cloud_properties:
|
15
|
+
machine_type: n1-standard-4
|
16
|
+
root_disk_size_gb: 100
|
17
|
+
root_disk_type: pd-ssd
|
18
|
+
|
19
|
+
# vm_extensions:
|
20
|
+
# - name: concourse-lb
|
21
|
+
# cloud_properties:
|
22
|
+
# target_pool: concourse-target-pool
|
23
|
+
|
24
|
+
compilation:
|
25
|
+
workers: 2
|
26
|
+
network: public
|
27
|
+
reuse_compilation_vms: true
|
28
|
+
az: z1
|
29
|
+
cloud_properties:
|
30
|
+
machine_type: n1-standard-4
|
31
|
+
root_disk_size_gb: 100
|
32
|
+
root_disk_type: pd-ssd
|
33
|
+
preemptible: true
|
34
|
+
|
35
|
+
networks:
|
36
|
+
- name: public
|
37
|
+
type: manual
|
38
|
+
subnets:
|
39
|
+
- az: z1
|
40
|
+
range: <%= @values['gcp']['subnet_cidr'] %>
|
41
|
+
gateway: <%= @values['gcp']['internal_gw'] %>
|
42
|
+
static: [10.0.0.2, 10.0.0.10]
|
43
|
+
cloud_properties:
|
44
|
+
network_name: <%= @values['gcp']['vpc_name'] %>
|
45
|
+
subnetwork_name: <%= @values['gcp']['subnet_name'] %>
|
46
|
+
ephemeral_external_ip: true
|
47
|
+
tags:
|
48
|
+
- concourse-public
|
49
|
+
- concourse-internal
|
50
|
+
|
51
|
+
- name: vip
|
52
|
+
type: vip
|
53
|
+
|
54
|
+
disk_types:
|
55
|
+
- name: database
|
56
|
+
disk_size: 10240
|
@@ -0,0 +1,86 @@
|
|
1
|
+
name: concourse
|
2
|
+
|
3
|
+
releases:
|
4
|
+
- name: concourse
|
5
|
+
version: 3.4.1
|
6
|
+
- name: garden-runc
|
7
|
+
version: 1.6.0
|
8
|
+
|
9
|
+
instance_groups:
|
10
|
+
- name: web
|
11
|
+
instances: 1
|
12
|
+
vm_type: common
|
13
|
+
azs: [z1]
|
14
|
+
# vm_extensions: [concourse-lb]
|
15
|
+
stemcell: trusty
|
16
|
+
networks:
|
17
|
+
- name: public
|
18
|
+
default: [dns, gateway]
|
19
|
+
|
20
|
+
jobs:
|
21
|
+
- name: atc
|
22
|
+
release: concourse
|
23
|
+
properties:
|
24
|
+
bind_port: 80
|
25
|
+
external_url: <%= @values['concourse']['url'] %>
|
26
|
+
basic_auth_username: <%= @values['concourse']['auth_username'] %>
|
27
|
+
basic_auth_password: <%= @values['concourse']['auth_password'] %>
|
28
|
+
publicly_viewable: true
|
29
|
+
|
30
|
+
postgresql_database: &atc_db atc
|
31
|
+
|
32
|
+
- name: tsa
|
33
|
+
release: concourse
|
34
|
+
properties: {}
|
35
|
+
|
36
|
+
- name: db
|
37
|
+
instances: 1
|
38
|
+
vm_type: common
|
39
|
+
azs: [z1]
|
40
|
+
stemcell: trusty
|
41
|
+
persistent_disk_type: database
|
42
|
+
networks: [{name: public}]
|
43
|
+
jobs:
|
44
|
+
- name: postgresql
|
45
|
+
release: concourse
|
46
|
+
properties:
|
47
|
+
databases:
|
48
|
+
- name: *atc_db
|
49
|
+
role: admin
|
50
|
+
password: <%= @values['concourse']['db_password'] %>
|
51
|
+
|
52
|
+
- name: worker
|
53
|
+
instances: 1
|
54
|
+
vm_type: worker
|
55
|
+
azs: [z1]
|
56
|
+
stemcell: trusty
|
57
|
+
networks: [{name: public}]
|
58
|
+
jobs:
|
59
|
+
- name: groundcrew
|
60
|
+
release: concourse
|
61
|
+
properties:
|
62
|
+
additional_resource_types:
|
63
|
+
- type: gcs-resource
|
64
|
+
image: docker:///frodenas/gcs-resource
|
65
|
+
- name: baggageclaim
|
66
|
+
release: concourse
|
67
|
+
properties: {}
|
68
|
+
- name: garden
|
69
|
+
release: garden-runc
|
70
|
+
properties:
|
71
|
+
garden:
|
72
|
+
listen_network: tcp
|
73
|
+
listen_address: 0.0.0.0:7777
|
74
|
+
network_mtu: 1432
|
75
|
+
|
76
|
+
update:
|
77
|
+
canaries: 1
|
78
|
+
max_in_flight: 1
|
79
|
+
serial: false
|
80
|
+
canary_watch_time: 1000-60000
|
81
|
+
update_watch_time: 1000-60000
|
82
|
+
|
83
|
+
stemcells:
|
84
|
+
- alias: trusty
|
85
|
+
os: ubuntu-trusty
|
86
|
+
version: latest
|
@@ -0,0 +1,8 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
|
3
|
+
BASTION_IP="$(terraform output -state=terraform/terraform.tfstate bastion_ip)"
|
4
|
+
|
5
|
+
export BASTION_IP
|
6
|
+
export BOSH_ALL_PROXY=socks5://localhost:5000
|
7
|
+
export BOSH_CLIENT=admin
|
8
|
+
export BOSH_CLIENT_SECRET=`bosh int ./config/creds.yml --path /admin_password`
|
data/tpl/gcp/setup-tunnel.sh.erb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#!/usr/bin/env bash
|
2
2
|
|
3
3
|
BASTION_IP="$(terraform output -state=terraform/terraform.tfstate bastion_ip)"
|
4
|
-
ssh -D 5000 -fNC kite@$BASTION_IP -i <%= @values['kite']['
|
4
|
+
ssh -D 5000 -fNC kite@$BASTION_IP -i <%= @values['kite']['private_key_path'] %>
|
5
5
|
|
6
6
|
export BOSH_ALL_PROXY=socks5://localhost:5000
|
@@ -39,3 +39,14 @@ resource "google_compute_firewall" "platform_internal" {
|
|
39
39
|
target_tags = ["platform-internal"]
|
40
40
|
source_tags = ["platform-internal"]
|
41
41
|
}
|
42
|
+
|
43
|
+
# Allow concourse
|
44
|
+
resource "google_compute_firewall" "allow_concourse" {
|
45
|
+
name = "allow-concourse"
|
46
|
+
network = "${google_compute_network.platform.name}"
|
47
|
+
|
48
|
+
allow {
|
49
|
+
protocol = "all"
|
50
|
+
}
|
51
|
+
|
52
|
+
}
|
data/tpl/skel/config/cloud.yml
CHANGED
@@ -7,31 +7,34 @@ aws:
|
|
7
7
|
access_key: "enter your amazon key"
|
8
8
|
secret_key: "enter your secret key"
|
9
9
|
region: "eu-central-1"
|
10
|
-
|
11
|
-
vpc_cidr_block: "10.0.0.0/16"
|
10
|
+
zone: "eu-central-1a"
|
12
11
|
vpc_name: "platform-tools"
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
12
|
+
vpc_cidr_block: "10.0.0.0/16"
|
13
|
+
public_subnet:
|
14
|
+
name: "platform-dmz"
|
15
|
+
network: "10.0.10.0/26"
|
16
|
+
private_subnet:
|
17
|
+
name: "platform-net"
|
18
|
+
gateway: "10.0.20.1"
|
19
|
+
network: "10.0.20.0/26"
|
17
20
|
|
18
21
|
gcp:
|
19
|
-
project: gcp-project
|
20
|
-
region: europe-west1
|
21
|
-
zone: europe-west1-b
|
22
|
+
project: "gcp-project"
|
23
|
+
region: "europe-west1"
|
24
|
+
zone: "europe-west1-b"
|
22
25
|
service_account: "~/safe/terraform.json"
|
23
26
|
vpc_name: "platform-tools"
|
24
27
|
subnet_name: "platform-net"
|
25
28
|
subnet_cidr: "10.0.0.0/24"
|
26
|
-
internal_gw: "10.0.0.
|
29
|
+
internal_gw: "10.0.0.2"
|
27
30
|
|
28
31
|
bosh:
|
29
32
|
name: "bosh-director"
|
30
|
-
static_ip: "10.0.
|
33
|
+
static_ip: "10.0.20.10"
|
31
34
|
|
32
35
|
concourse:
|
33
|
-
hostname: "
|
34
|
-
url: "http://
|
36
|
+
hostname: "concourse.example.com"
|
37
|
+
url: "http://concourse.example.com"
|
35
38
|
auth_username: "concourse"
|
36
39
|
auth_password: "concourse"
|
37
|
-
db_password: "
|
40
|
+
db_password: "concourse"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kite
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Louis Bellet
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-09-
|
11
|
+
date: 2017-09-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -79,7 +79,9 @@ files:
|
|
79
79
|
- ".gitignore"
|
80
80
|
- ".rspec"
|
81
81
|
- ".travis.yml"
|
82
|
+
- Dockerfile
|
82
83
|
- Gemfile
|
84
|
+
- Makefile
|
83
85
|
- README.md
|
84
86
|
- Rakefile
|
85
87
|
- bin/kite
|
@@ -92,15 +94,18 @@ files:
|
|
92
94
|
- lib/kite/core.rb
|
93
95
|
- lib/kite/error.rb
|
94
96
|
- lib/kite/helpers.rb
|
97
|
+
- lib/kite/render.rb
|
95
98
|
- lib/kite/version.rb
|
96
99
|
- tpl/aws/README.md
|
97
100
|
- tpl/aws/bosh-install.sh.erb
|
98
|
-
- tpl/aws/concourse
|
99
|
-
- tpl/aws/
|
100
|
-
- tpl/aws/deployments/bosh/
|
101
|
-
- tpl/aws/deployments/bosh/bosh_vars.yml.erb
|
101
|
+
- tpl/aws/concourse-deploy.sh.erb
|
102
|
+
- tpl/aws/deployments/bosh/bosh.yml
|
103
|
+
- tpl/aws/deployments/bosh/bosh_vars.yml.tt
|
102
104
|
- tpl/aws/deployments/bosh/cpi.yml
|
103
105
|
- tpl/aws/deployments/bosh/jumpbox-user.yml
|
106
|
+
- tpl/aws/deployments/concourse/cloud-config.yml.erb
|
107
|
+
- tpl/aws/deployments/concourse/concourse.yml.erb
|
108
|
+
- tpl/aws/set-env.sh.erb
|
104
109
|
- tpl/aws/setup-tunnel.sh.erb
|
105
110
|
- tpl/aws/terraform/main.tf
|
106
111
|
- tpl/aws/terraform/network.tf
|
@@ -114,6 +119,9 @@ files:
|
|
114
119
|
- tpl/gcp/deployments/bosh/cloud-config.yml
|
115
120
|
- tpl/gcp/deployments/bosh/cpi.yml
|
116
121
|
- tpl/gcp/deployments/bosh/jumpbox-user.yml
|
122
|
+
- tpl/gcp/deployments/concourse/cloud-config.yml.erb
|
123
|
+
- tpl/gcp/deployments/concourse/concourse.yml.erb
|
124
|
+
- tpl/gcp/set-env.sh.erb
|
117
125
|
- tpl/gcp/setup-tunnel.sh.erb
|
118
126
|
- tpl/gcp/terraform/main.tf
|
119
127
|
- tpl/gcp/terraform/network.tf
|