kite 0.0.9 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +2 -5
- data/README.md +2 -2
- data/lib/kite/generate.rb +3 -0
- data/lib/kite/version.rb +1 -1
- data/tpl/aws/README.md +3 -0
- data/tpl/aws/bin/base/cleanup.sh.tt +1 -1
- data/tpl/aws/bin/concourse-deploy.sh.tt +1 -4
- data/tpl/aws/deployments/concourse/concourse.yml.tt +3 -3
- data/tpl/aws/docs/bosh.md +1 -1
- data/tpl/aws/docs/concourse.md +13 -2
- data/tpl/aws/docs/kops.md +38 -0
- data/tpl/aws/docs/vault.md +3 -1
- data/tpl/gcp/README.md +4 -0
- data/tpl/gcp/bin/base/cleanup.sh.tt +1 -1
- data/tpl/gcp/bin/concourse-deploy.sh.tt +1 -1
- data/tpl/gcp/bin/vault-deploy.sh.tt +0 -3
- data/tpl/gcp/deployments/bosh/cloud-config.yml.tt +2 -0
- data/tpl/gcp/deployments/concourse/concourse.yml.tt +3 -3
- data/tpl/gcp/docs/concourse.md +13 -2
- data/tpl/gcp/docs/vault.md +3 -1
- data/tpl/gcp/terraform/main.tf +1 -0
- data/tpl/skel/README.md.tt +1 -1
- data/tpl/skel/config/cloud.yml +0 -2
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e147a21c1ce86a6b496f71c358b65d0f135fd150
|
4
|
+
data.tar.gz: 9778352a81fd5503e02d63cccd30258259ecfb9e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7b73426bd0445b7d1cc51962ec5b6b0f56d801d0172d8802171638c1481c6e11cb9aaeaaa2c2ad0684a211a8b0fac6c7808920d3e306a6b4df16e28a94e2e769
|
7
|
+
data.tar.gz: b57f47dd619107714edae4673659520eb128e185c8c29ce5aee3b5a231005133b61569615a57e08d76ef7023526020fb5cb3b8f9e638e4403c98caa73e2b14ef
|
data/CHANGELOG.md
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
-
## [
|
4
|
-
|
5
|
-
[Full Changelog](https://github.com/helios-technologies/kite/compare/v0.0.8...HEAD)
|
3
|
+
## [v0.0.9](https://github.com/helios-technologies/kite/tree/v0.0.9) (2017-09-29)
|
4
|
+
[Full Changelog](https://github.com/helios-technologies/kite/compare/v0.0.8...v0.0.9)
|
6
5
|
|
7
6
|
**Closed issues:**
|
8
7
|
|
@@ -84,5 +83,3 @@
|
|
84
83
|
|
85
84
|
## [v0.0.2](https://github.com/helios-technologies/kite/tree/v0.0.2) (2017-08-24)
|
86
85
|
|
87
|
-
|
88
|
-
\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
|
data/README.md
CHANGED
@@ -46,10 +46,10 @@ $ kite new PROJECT_NAME
|
|
46
46
|
|
47
47
|
### Generate your infrastructure using terraform
|
48
48
|
|
49
|
-
Generate the cloud IaC needed with
|
49
|
+
Generate the cloud IaC needed with
|
50
50
|
|
51
51
|
```
|
52
|
-
$ kite generate --
|
52
|
+
$ kite generate cloud --provider=aws|gcp
|
53
53
|
```
|
54
54
|
|
55
55
|
you can now review and apply your terraform files.
|
data/lib/kite/generate.rb
CHANGED
@@ -14,10 +14,12 @@ module Kite
|
|
14
14
|
when 'aws'
|
15
15
|
directory('aws/terraform', 'terraform')
|
16
16
|
copy_file('aws/README.md', 'README.md', force: true)
|
17
|
+
copy_file('aws/docs/kops.md', 'docs/kops.md')
|
17
18
|
|
18
19
|
directory('aws/bin/base', 'bin')
|
19
20
|
chmod('bin/bootstrap.sh', 0755)
|
20
21
|
chmod('bin/cleanup.sh', 0755)
|
22
|
+
chmod('bin/setup-tunnel.sh', 0755)
|
21
23
|
|
22
24
|
when 'gcp'
|
23
25
|
directory('gcp/terraform', 'terraform')
|
@@ -27,6 +29,7 @@ module Kite
|
|
27
29
|
directory('gcp/bin/base', 'bin')
|
28
30
|
chmod('bin/bootstrap.sh', 0755)
|
29
31
|
chmod('bin/cleanup.sh', 0755)
|
32
|
+
chmod('bin/setup-tunnel.sh', 0755)
|
30
33
|
|
31
34
|
else
|
32
35
|
say 'Cloud provider not specified'
|
data/lib/kite/version.rb
CHANGED
data/tpl/aws/README.md
CHANGED
@@ -7,6 +7,9 @@ Apply terraform code
|
|
7
7
|
pushd terraform && terraform init && terraform apply && popd
|
8
8
|
```
|
9
9
|
|
10
|
+
[Note]
|
11
|
+
To destroy Bastion later, use `terraform destroy -target aws_instance.bastion`
|
12
|
+
|
10
13
|
Render BOSH manifest and related files
|
11
14
|
```
|
12
15
|
kite render manifest bosh --cloud aws
|
@@ -16,4 +16,4 @@ bosh delete-env deployments/bosh/bosh.yml \
|
|
16
16
|
pushd terraform && terraform destroy && popd
|
17
17
|
|
18
18
|
# Remove files generated by kite
|
19
|
-
rm -rf terraform deployments config/{creds.yml,
|
19
|
+
rm -rf terraform deployments docs config/{creds.yml,bosh-vars.yml,jumpbox.key} bin/*.sh
|
@@ -2,13 +2,10 @@
|
|
2
2
|
|
3
3
|
set -xe
|
4
4
|
|
5
|
-
# Render Concourse-related files
|
6
|
-
kite render manifest concourse --cloud aws
|
7
|
-
|
8
5
|
# Upload necessary stemcells and releases
|
9
6
|
bosh -e <%= @values['bosh']['name'] %> upload-stemcell https://bosh.io/d/stemcells/bosh-aws-xen-hvm-ubuntu-trusty-go_agent
|
10
7
|
bosh -e <%= @values['bosh']['name'] %> upload-release https://bosh.io/d/github.com/concourse/concourse
|
11
8
|
bosh -e <%= @values['bosh']['name'] %> upload-release https://bosh.io/d/github.com/cloudfoundry-incubator/garden-runc-release
|
12
9
|
|
13
10
|
# Deploy Concourse
|
14
|
-
bosh -e <%= @values['bosh']['name'] %> -d concourse deploy deployments/concourse/concourse.yml
|
11
|
+
bosh -e <%= @values['bosh']['name'] %> -d concourse deploy deployments/concourse/concourse.yml -v vault_token=$1
|
@@ -23,13 +23,13 @@ instance_groups:
|
|
23
23
|
bind_port: 80
|
24
24
|
external_url: <%= @values['concourse']['url'] %>
|
25
25
|
basic_auth_username: <%= @values['concourse']['auth_username'] %>
|
26
|
-
basic_auth_password:
|
26
|
+
basic_auth_password: ((auth_password))
|
27
27
|
publicly_viewable: true
|
28
28
|
|
29
29
|
vault:
|
30
30
|
auth:
|
31
31
|
backend: token
|
32
|
-
client_token:
|
32
|
+
client_token: ((vault_token))
|
33
33
|
path_prefix: /concourse
|
34
34
|
url: "http://<%= @private_subnet[11] %>:8200" # assuming Vault is deployed first
|
35
35
|
|
@@ -53,7 +53,7 @@ instance_groups:
|
|
53
53
|
databases:
|
54
54
|
- name: *atc_db
|
55
55
|
role: admin
|
56
|
-
password:
|
56
|
+
password: ((db_password))
|
57
57
|
|
58
58
|
- name: worker
|
59
59
|
instances: 1
|
data/tpl/aws/docs/bosh.md
CHANGED
data/tpl/aws/docs/concourse.md
CHANGED
@@ -10,9 +10,20 @@
|
|
10
10
|
|
11
11
|
Fill out the "token" field in `deployments/concourse/concourse.yml` with root token received from `vault init`.
|
12
12
|
|
13
|
-
Deploy Concourse
|
13
|
+
Deploy Concourse by running the script with the required arguments
|
14
14
|
```
|
15
|
-
./bin/concourse-deploy.sh
|
15
|
+
./bin/concourse-deploy.sh *concourse_auth_password* *concourse_db_password* *vault_token*
|
16
|
+
```
|
17
|
+
|
18
|
+
### Connect GitHub oAuth
|
19
|
+
|
20
|
+
To configure GitHub oAuth, you'll first need to [create](https://developer.github.com/apps/building-integrations/setting-up-and-registering-oauth-apps/registering-oauth-apps) a GitHub oAuth app.
|
21
|
+
|
22
|
+
```
|
23
|
+
fly set-team -n concourse \
|
24
|
+
--github-auth-client-id D \
|
25
|
+
--github-auth-client-secret $CLIENT_SECRET \
|
26
|
+
--github-auth-team concourse/Pivotal
|
16
27
|
```
|
17
28
|
|
18
29
|
### Test
|
@@ -0,0 +1,38 @@
|
|
1
|
+
#### KOPS
|
2
|
+
|
3
|
+
### Prerequisites
|
4
|
+
|
5
|
+
- [kubectl](https://github.com/kubernetes/kops/blob/master/docs/install.md#kubectl) installed
|
6
|
+
- [kops](https://github.com/kubernetes/kops/blob/master/docs/install.md) client installed
|
7
|
+
- SSH key generated(needed for accessing cluster's master)
|
8
|
+
- Amazon S3 bucket for storing cluster's state created
|
9
|
+
- Route 53 domain for cluster access
|
10
|
+
- IAM user with correct policies:
|
11
|
+
- AmazonEC2FullAccess
|
12
|
+
- AmazonRoute53FullAccess
|
13
|
+
- AmazonS3FullAccess
|
14
|
+
- IAMFullAccess
|
15
|
+
- AmazonVPCFullAccess
|
16
|
+
|
17
|
+
### Setup
|
18
|
+
|
19
|
+
Export AWS access keys and ID if you didn't before
|
20
|
+
```
|
21
|
+
export AWS_ACCESS_KEY_ID=<access key>
|
22
|
+
export AWS_SECRET_ACCESS_KEY=<secret key>
|
23
|
+
```
|
24
|
+
|
25
|
+
Create cluster configuration
|
26
|
+
```
|
27
|
+
kops create cluster --name *kops.example.com* --state "s3://kops-example-state-store" --zones *eu-central-1b* --ssh-public-key *path to SSH key*
|
28
|
+
```
|
29
|
+
|
30
|
+
Review and edit cluster configuration if needed
|
31
|
+
```
|
32
|
+
kops edit cluster --name *kops.example.com* --state "s3://kops-example-state-store"
|
33
|
+
```
|
34
|
+
|
35
|
+
Build the cluster
|
36
|
+
```
|
37
|
+
kops update cluster --name *kops.example.com* --state "s3://kops-example-state-store" --yes
|
38
|
+
```
|
data/tpl/aws/docs/vault.md
CHANGED
@@ -16,7 +16,7 @@ To deploy Vault, use `./bin/vault-deploy.sh`
|
|
16
16
|
|
17
17
|
### Connection
|
18
18
|
|
19
|
-
- Export your Vault's IP using `export VAULT_ADDR
|
19
|
+
- Export your Vault's IP using `export VAULT_ADDR=http://*vault_ip*:8200`
|
20
20
|
- Run `vault init` to initialize the vault
|
21
21
|
- Store the keys displayed after init
|
22
22
|
- Unseal the vault by running `vault unseal` three times using three keys from the previous step
|
@@ -31,3 +31,5 @@ To deploy Vault, use `./bin/vault-deploy.sh`
|
|
31
31
|
Before using Vault with Concourse you should mount a secrets backend with `vault mount -path=concourse kv`
|
32
32
|
|
33
33
|
To add new secrets accessible for Concourse use `vault write concourse/main/*secret_name* value="*secret_value*"`
|
34
|
+
|
35
|
+
#### It's recommended to create a separate token for Concourse by using `vault token-create`
|
data/tpl/gcp/README.md
CHANGED
@@ -7,11 +7,15 @@ Set path to your service account credentials:
|
|
7
7
|
export GOOGLE_CREDENTIALS=*~/credentials/service-account.json*
|
8
8
|
```
|
9
9
|
|
10
|
+
|
10
11
|
Apply terraform code
|
11
12
|
```
|
12
13
|
pushd terraform && terraform init && terraform apply && popd
|
13
14
|
```
|
14
15
|
|
16
|
+
[Note]
|
17
|
+
To destroy Bastion later, use `terraform destroy -target google_compute_instance.bastion`
|
18
|
+
|
15
19
|
Render BOSH manifest and related files
|
16
20
|
```
|
17
21
|
kite render manifest bosh --cloud gcp
|
@@ -17,4 +17,4 @@ bosh delete-env deployments/bosh/bosh.yml \
|
|
17
17
|
pushd terraform && terraform destroy && popd
|
18
18
|
|
19
19
|
# Remove files generated by kite
|
20
|
-
rm -rf terraform deployments config/{creds.yml,bosh_vars.yml,jumpbox.key} bin/*.sh
|
20
|
+
rm -rf terraform deployments docs config/{creds.yml,bosh_vars.yml,jumpbox.key} bin/*.sh
|
@@ -8,4 +8,4 @@ bosh -e <%= @values['bosh']['name'] %> upload-release https://github.com/concour
|
|
8
8
|
bosh -e <%= @values['bosh']['name'] %> upload-release https://github.com/concourse/concourse/releases/download/v3.4.1/garden-runc-1.6.0.tgz
|
9
9
|
|
10
10
|
# Deploy Concourse
|
11
|
-
bosh -e <%= @values['bosh']['name'] %> -d concourse deploy deployments/concourse/concourse.yml
|
11
|
+
bosh -e <%= @values['bosh']['name'] %> -d concourse deploy deployments/concourse/concourse.yml -v auth_password=$1 -v db_password=$2 -v vault_token=$3
|
@@ -2,9 +2,6 @@
|
|
2
2
|
|
3
3
|
set -xe
|
4
4
|
|
5
|
-
# Render Concourse-related files
|
6
|
-
kite render manifest vault --cloud gcp
|
7
|
-
|
8
5
|
# Upload necessary stemcells and releases
|
9
6
|
bosh -e <%= @values['bosh']['name'] %> upload-stemcell https://s3.amazonaws.com/bosh-core-stemcells/google/bosh-stemcell-3445.7-google-kvm-ubuntu-trusty-go_agent.tgz
|
10
7
|
bosh -e <%= @values['bosh']['name'] %> upload-release https://bosh.io/d/github.com/cloudfoundry-community/vault-boshrelease
|
@@ -25,13 +25,13 @@ instance_groups:
|
|
25
25
|
bind_port: 80
|
26
26
|
external_url: <%= @values['concourse']['url'] %>
|
27
27
|
basic_auth_username: <%= @values['concourse']['auth_username'] %>
|
28
|
-
basic_auth_password:
|
28
|
+
basic_auth_password: ((auth_password))
|
29
29
|
publicly_viewable: true
|
30
30
|
|
31
31
|
vault:
|
32
32
|
auth:
|
33
33
|
backend: token
|
34
|
-
client_token:
|
34
|
+
client_token: ((vault_token))
|
35
35
|
path_prefix: /concourse
|
36
36
|
url: "http://<%= @private_subnet[11] %>:8200" # expecting Vault to be deployed first
|
37
37
|
|
@@ -55,7 +55,7 @@ instance_groups:
|
|
55
55
|
databases:
|
56
56
|
- name: *atc_db
|
57
57
|
role: admin
|
58
|
-
password:
|
58
|
+
password: ((db_password))
|
59
59
|
|
60
60
|
- name: worker
|
61
61
|
instances: 1
|
data/tpl/gcp/docs/concourse.md
CHANGED
@@ -10,9 +10,20 @@
|
|
10
10
|
|
11
11
|
Fill out the "token" field in `deployments/concourse/concourse.yml` with root token received from `vault init`.
|
12
12
|
|
13
|
-
Deploy Concourse
|
13
|
+
Deploy Concourse by running the script with the required arguments
|
14
14
|
```
|
15
|
-
./bin/concourse-deploy.sh
|
15
|
+
./bin/concourse-deploy.sh *concourse_auth_password* *concourse_db_password* *vault_token*
|
16
|
+
```
|
17
|
+
|
18
|
+
### Connect GitHub oAuth
|
19
|
+
|
20
|
+
To configure GitHub oAuth, you'll first need to [create](https://developer.github.com/apps/building-integrations/setting-up-and-registering-oauth-apps/registering-oauth-apps) a GitHub oAuth app.
|
21
|
+
|
22
|
+
```
|
23
|
+
fly set-team -n concourse \
|
24
|
+
--github-auth-client-id D \
|
25
|
+
--github-auth-client-secret $CLIENT_SECRET \
|
26
|
+
--github-auth-team concourse/Pivotal
|
16
27
|
```
|
17
28
|
|
18
29
|
### Test
|
data/tpl/gcp/docs/vault.md
CHANGED
@@ -16,7 +16,7 @@ To deploy Vault, use `./bin/vault-deploy.sh`
|
|
16
16
|
|
17
17
|
### Connection
|
18
18
|
|
19
|
-
- Export your Vault's IP using `export VAULT_ADDR
|
19
|
+
- Export your Vault's IP using `export VAULT_ADDR=http://*vault_ip*:8200`
|
20
20
|
- Run `vault init` to initialize the vault
|
21
21
|
- Store the keys displayed after init
|
22
22
|
- Unseal the vault by running `vault unseal` three times using three keys from the previous step
|
@@ -31,3 +31,5 @@ To deploy Vault, use `./bin/vault-deploy.sh`
|
|
31
31
|
Before using Vault with Concourse you should mount a secrets backend with `vault mount -path=concourse kv`
|
32
32
|
|
33
33
|
To add new secrets accessible for Concourse use `vault write concourse/main/*secret_name* value="*secret_value*"`
|
34
|
+
|
35
|
+
#### It's recommended to create a separate token for Concourse by using `vault token-create`
|
data/tpl/gcp/terraform/main.tf
CHANGED
data/tpl/skel/README.md.tt
CHANGED
data/tpl/skel/config/cloud.yml
CHANGED
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.1.0
|
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-10-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -143,6 +143,7 @@ files:
|
|
143
143
|
- tpl/aws/deployments/vault/vault.yml.erb
|
144
144
|
- tpl/aws/docs/bosh.md
|
145
145
|
- tpl/aws/docs/concourse.md
|
146
|
+
- tpl/aws/docs/kops.md
|
146
147
|
- tpl/aws/docs/vault.md
|
147
148
|
- tpl/aws/terraform/main.tf.tt
|
148
149
|
- tpl/aws/terraform/network.tf.tt
|