kite 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/CHANGELOG.md +18 -1
- data/Dockerfile +30 -9
- data/Makefile +21 -9
- data/README.md +9 -0
- data/bin/concourse/check +12 -0
- data/bin/concourse/in +12 -0
- data/bin/concourse/out +46 -0
- data/config/pipelines/review.yml +158 -0
- data/config/pipelines/tasks/create-pull-requests-tag.yml +13 -0
- data/config/pipelines/tasks/create-repository-tag.yml +13 -0
- data/config/pipelines/tasks/run-master-tests.yml +12 -0
- data/config/pipelines/tasks/run-pr-tests.yml +12 -0
- data/kite.gemspec +1 -1
- data/lib/kite/generate.rb +39 -0
- data/lib/kite/helpers/concourse.rb +36 -0
- data/lib/kite/render.rb +68 -2
- data/lib/kite/version.rb +1 -1
- data/tpl/aws/README.md +20 -0
- data/tpl/aws/bin/concourse-deploy.sh.tt +4 -1
- data/tpl/aws/bin/ingress-deploy.sh.tt +7 -0
- data/tpl/aws/bin/ingress-update.sh.tt +7 -0
- data/tpl/aws/bin/kops-delete.sh.erb +5 -0
- data/tpl/aws/bin/kops-deploy.sh.erb +11 -0
- data/tpl/aws/bin/oauth-deploy.sh.tt +17 -0
- data/tpl/aws/bin/prometheus-deploy.sh.tt +23 -0
- data/tpl/aws/bosh-vars.yml.erb +1 -0
- data/tpl/aws/config/oauth.yml +59 -0
- data/tpl/aws/deployments/bosh/cloud-config.yml.tt +17 -1
- data/tpl/aws/deployments/concourse/concourse.yml.tt +6 -0
- data/tpl/aws/deployments/ingress/ingress.yml.erb +78 -0
- data/tpl/aws/deployments/oauth/oauth.yml.tt +95 -0
- data/tpl/aws/deployments/prometheus/monitor-bosh.yml +518 -0
- data/tpl/aws/deployments/prometheus/monitor-kubernetes.yml +30 -0
- data/tpl/aws/deployments/prometheus/prometheus.yml.tt +184 -0
- data/tpl/aws/docs/concourse.md +2 -2
- data/tpl/aws/docs/ingress.md +14 -0
- data/tpl/aws/docs/kops.md +5 -8
- data/tpl/aws/docs/oauth.md +24 -0
- data/tpl/aws/docs/prometheus.md +31 -0
- data/tpl/aws/terraform/kite_bucket.tf +8 -0
- data/tpl/aws/terraform/network.tf.tt +27 -0
- data/tpl/aws/terraform/outputs.tf +4 -0
- data/tpl/aws/terraform/terraform.tfvars.tt +1 -0
- data/tpl/aws/terraform/variables.tf +4 -0
- data/tpl/gcp/README.md +19 -3
- data/tpl/gcp/bin/base/setup-tunnel.sh.tt +8 -3
- data/tpl/gcp/bin/bosh-install.sh.tt +4 -0
- data/tpl/gcp/bin/concourse-deploy.sh.tt +4 -1
- data/tpl/gcp/bin/ingress-deploy.sh.tt +7 -0
- data/tpl/gcp/bin/ingress-update.sh.tt +7 -0
- data/tpl/gcp/bin/oauth-deploy.sh.tt +19 -0
- data/tpl/gcp/bin/prometheus-deploy.sh.tt +23 -0
- data/tpl/gcp/bin/vault-deploy.sh.tt +1 -1
- data/tpl/gcp/bosh-vars.yml.erb +1 -0
- data/tpl/gcp/config/oauth.yml +59 -0
- data/tpl/gcp/deployments/bosh/cloud-config.yml.tt +17 -3
- data/tpl/gcp/deployments/concourse/concourse.yml.tt +15 -5
- data/tpl/gcp/deployments/ingress/ingress.yml.erb +111 -0
- data/tpl/gcp/deployments/oauth/oauth.yml.tt +95 -0
- data/tpl/gcp/deployments/prometheus/monitor-bosh.yml +518 -0
- data/tpl/gcp/deployments/prometheus/monitor-kubernetes.yml +30 -0
- data/tpl/gcp/deployments/prometheus/prometheus.yml +183 -0
- data/tpl/gcp/docs/bosh.md +5 -0
- data/tpl/gcp/docs/concourse.md +3 -3
- data/tpl/gcp/docs/ingress.md +12 -0
- data/tpl/gcp/docs/oauth.md +24 -0
- data/tpl/gcp/docs/prometheus.md +27 -0
- data/tpl/gcp/docs/vault.md +2 -1
- data/tpl/gcp/terraform/main.tf +6 -1
- data/tpl/gcp/terraform/outputs.tf +4 -0
- data/tpl/service/%output_path%/charts/%app_name%/Chart.yaml.tt +4 -0
- data/tpl/service/%output_path%/charts/%app_name%/templates/NOTES.txt.tt +19 -0
- data/tpl/service/%output_path%/charts/%app_name%/templates/_helpers.tpl +16 -0
- data/tpl/service/%output_path%/charts/%app_name%/templates/deployment.yaml +37 -0
- data/tpl/service/%output_path%/charts/%app_name%/templates/ingress.yaml +32 -0
- data/tpl/service/%output_path%/charts/%app_name%/templates/service.yaml +19 -0
- data/tpl/service/%output_path%/charts/%app_name%/values.yaml.tt +37 -0
- data/tpl/service/%output_path%/environments/.keep +0 -0
- data/tpl/service/%output_path%/pipelines/review.yml.tt +189 -0
- data/tpl/service/%output_path%/pipelines/tasks/create-pull-requests-tag.yml.tt +13 -0
- data/tpl/service/%output_path%/pipelines/tasks/create-repository-tag.yml.tt +13 -0
- data/tpl/service/%output_path%/pipelines/tasks/helm-deploy.yml.tt +22 -0
- data/tpl/service/%output_path%/pipelines/tasks/run-master-tests.yml.tt +12 -0
- data/tpl/service/%output_path%/pipelines/tasks/run-pr-tests.yml.tt +12 -0
- data/tpl/service/Dockerfile.tt +4 -0
- data/tpl/service/Makefile.tt +28 -0
- data/tpl/service/VERSION.tt +1 -0
- data/tpl/service/docs/pipeline.md.tt +58 -0
- data/tpl/skel/config/cloud.yml +30 -5
- metadata +58 -5
- data/tpl/gcp/deployments/nginx/nginx.yml.erb +0 -62
@@ -0,0 +1,19 @@
|
|
1
|
+
apiVersion: v1
|
2
|
+
kind: Service
|
3
|
+
metadata:
|
4
|
+
name: {{ template "fullname" . }}
|
5
|
+
labels:
|
6
|
+
app: {{ template "name" . }}
|
7
|
+
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
|
8
|
+
release: {{ .Release.Name }}
|
9
|
+
heritage: {{ .Release.Service }}
|
10
|
+
spec:
|
11
|
+
type: {{ .Values.service.type }}
|
12
|
+
ports:
|
13
|
+
- port: {{ .Values.service.externalPort }}
|
14
|
+
targetPort: {{ .Values.service.internalPort }}
|
15
|
+
protocol: TCP
|
16
|
+
name: {{ .Values.service.name }}
|
17
|
+
selector:
|
18
|
+
app: {{ template "name" . }}
|
19
|
+
release: {{ .Release.Name }}
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# Default values for <%= @name %>.
|
2
|
+
# This is a YAML-formatted file.
|
3
|
+
# Declare variables to be passed into your templates.
|
4
|
+
replicaCount: 1
|
5
|
+
image:
|
6
|
+
repository: <%= @image %>
|
7
|
+
tag: <%= @image_version %>
|
8
|
+
pullPolicy: IfNotPresent
|
9
|
+
service:
|
10
|
+
name: <%= @name %>
|
11
|
+
type: ClusterIP
|
12
|
+
externalPort: 8080
|
13
|
+
internalPort: 8080
|
14
|
+
ingress:
|
15
|
+
enabled: false
|
16
|
+
# Used to create Ingress record (should used with service.type: ClusterIP).
|
17
|
+
hosts:
|
18
|
+
- <%= @name %>.local
|
19
|
+
annotations:
|
20
|
+
# kubernetes.io/ingress.class: nginx
|
21
|
+
# kubernetes.io/tls-acme: "true"
|
22
|
+
tls:
|
23
|
+
# Secrets must be manually created in the namespace.
|
24
|
+
# - secretName: <%= @name %>-tls
|
25
|
+
# hosts:
|
26
|
+
# - <%= @name %>.local
|
27
|
+
resources: {}
|
28
|
+
# We usually recommend not to specify default resources and to leave this as a conscious
|
29
|
+
# choice for the user. This also increases chances charts run on environments with little
|
30
|
+
# resources, such as Minikube. If you do want to specify resources, uncomment the following
|
31
|
+
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
|
32
|
+
# limits:
|
33
|
+
# cpu: 100m
|
34
|
+
# memory: 128Mi
|
35
|
+
#requests:
|
36
|
+
# cpu: 100m
|
37
|
+
# memory: 128Mi
|
File without changes
|
@@ -0,0 +1,189 @@
|
|
1
|
+
# Check `docs/pipeline.md` to get info about this file
|
2
|
+
resource_types:
|
3
|
+
<% unless @slack.nil? or @slack.empty? -%>
|
4
|
+
- name: slack-notification
|
5
|
+
type: docker-image
|
6
|
+
source:
|
7
|
+
repository: cfcommunity/slack-notification-resource
|
8
|
+
tag: latest
|
9
|
+
<% end -%>
|
10
|
+
- name: pull-request
|
11
|
+
type: docker-image
|
12
|
+
source:
|
13
|
+
repository: jtarchie/pr
|
14
|
+
|
15
|
+
resources:
|
16
|
+
- name: <%= @name %>-repository
|
17
|
+
type: git
|
18
|
+
source:
|
19
|
+
uri: <%= @git %>
|
20
|
+
branch: master
|
21
|
+
private_key: ((git_private_key))
|
22
|
+
|
23
|
+
- name: pull-requests
|
24
|
+
type: pull-request
|
25
|
+
source:
|
26
|
+
access_token: ((github_token))
|
27
|
+
base: master
|
28
|
+
private_key: ((git_private_key))
|
29
|
+
repo: <%= @git.gsub(/(.*:|.git)/, '').split('/').last(2).join('/') %>
|
30
|
+
uri: <%= @git %>
|
31
|
+
|
32
|
+
- name: <%= @name %>-image
|
33
|
+
type: docker-image
|
34
|
+
source:
|
35
|
+
repository: <%= @image %>
|
36
|
+
username: _json_key
|
37
|
+
password: ((gcr_password))
|
38
|
+
<% unless @slack.nil? or @slack.empty? -%>
|
39
|
+
- name: slack-alert
|
40
|
+
type: slack-notification
|
41
|
+
source:
|
42
|
+
url: https://hooks.slack.com/services/((slack_webhook))
|
43
|
+
<% end -%>
|
44
|
+
|
45
|
+
jobs:
|
46
|
+
- name: pr-build
|
47
|
+
plan:
|
48
|
+
- get: pull-requests
|
49
|
+
trigger: true
|
50
|
+
- task: tag
|
51
|
+
file: pull-requests/<%= @output %>/pipelines/tasks/create-pull-requests-tag.yml
|
52
|
+
- put: <%= @name %>-image
|
53
|
+
params:
|
54
|
+
build: pull-requests
|
55
|
+
tag: tag/name
|
56
|
+
|
57
|
+
- name: pr-unit
|
58
|
+
serial: true
|
59
|
+
plan:
|
60
|
+
- get: pull-requests
|
61
|
+
passed: [pr-build]
|
62
|
+
trigger: true
|
63
|
+
- get: <%= @name %>-image
|
64
|
+
passed: [pr-build]
|
65
|
+
trigger: true
|
66
|
+
- put: pull-requests
|
67
|
+
params:
|
68
|
+
path: pull-requests
|
69
|
+
status: pending
|
70
|
+
- task: run-tests
|
71
|
+
file: pull-requests/<%= @output %>/pipelines/tasks/run-pr-tests.yml
|
72
|
+
on_success:
|
73
|
+
do:
|
74
|
+
- put: pull-requests
|
75
|
+
params:
|
76
|
+
path: pull-requests
|
77
|
+
status: success
|
78
|
+
<% unless @slack.nil? or @slack.empty? -%>
|
79
|
+
- put: slack-alert
|
80
|
+
params:
|
81
|
+
channel: '#<%= @slack %>'
|
82
|
+
text: |
|
83
|
+
<%= @name %> PR tests have passed! :thumbsup_all:
|
84
|
+
Check it out at:
|
85
|
+
$ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
|
86
|
+
or at:
|
87
|
+
$ATC_EXTERNAL_URL/builds/$BUILD_ID
|
88
|
+
see on github:
|
89
|
+
`cat pull-requests/.git/url`
|
90
|
+
<% end -%>
|
91
|
+
on_failure:
|
92
|
+
do:
|
93
|
+
- put: pull-requests
|
94
|
+
params:
|
95
|
+
path: pull-requests
|
96
|
+
status: failure
|
97
|
+
<% unless @slack.nil? or @slack.empty? -%>
|
98
|
+
- put: slack-alert
|
99
|
+
params:
|
100
|
+
channel: '#<%= @slack %>'
|
101
|
+
text: |
|
102
|
+
<%= @name %> PR tests have failed! :thumbsdown_all:
|
103
|
+
Check it out at:
|
104
|
+
$ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
|
105
|
+
or at:
|
106
|
+
$ATC_EXTERNAL_URL/builds/$BUILD_ID
|
107
|
+
see on github:
|
108
|
+
`cat pull-requests/.git/url`
|
109
|
+
<% end -%>
|
110
|
+
|
111
|
+
- name: master-build
|
112
|
+
serial: true
|
113
|
+
plan:
|
114
|
+
- get: <%= @name %>-repository
|
115
|
+
trigger: true
|
116
|
+
- task: tag
|
117
|
+
file: <%= @name %>-repository/<%= @output %>/pipelines/tasks/create-repository-tag.yml
|
118
|
+
- put: <%= @name %>-image
|
119
|
+
params:
|
120
|
+
build: <%= @name %>-repository
|
121
|
+
tag: tag/name
|
122
|
+
<% unless @slack.nil? or @slack.empty? -%>
|
123
|
+
- put: slack-alert
|
124
|
+
params:
|
125
|
+
channel: '#<%= @slack %>'
|
126
|
+
text: |
|
127
|
+
<%= @name %> master branch was built and pushed!
|
128
|
+
Check it out at:
|
129
|
+
$ATC_EXTERNAL_URL/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
|
130
|
+
or at:
|
131
|
+
$ATC_EXTERNAL_URL/builds/$BUILD_ID
|
132
|
+
<% end -%>
|
133
|
+
|
134
|
+
- name: master-unit
|
135
|
+
serial: true
|
136
|
+
plan:
|
137
|
+
- get: <%= @name %>-repository
|
138
|
+
passed: [master-build]
|
139
|
+
trigger: true
|
140
|
+
- get: <%= @name %>-image
|
141
|
+
passed: [master-build]
|
142
|
+
trigger: true
|
143
|
+
- task: run-tests
|
144
|
+
file: <%= @name %>-repository/<%= @output %>/pipelines/tasks/run-master-tests.yml
|
145
|
+
<% unless @slack.nil? or @slack.empty? -%>
|
146
|
+
on_success:
|
147
|
+
put: slack-alert
|
148
|
+
params:
|
149
|
+
channel: '#<%= @slack %>'
|
150
|
+
text: |
|
151
|
+
<%= @name %> master tests have passed! :thumbsup_all:
|
152
|
+
Check it out at:
|
153
|
+
$ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
|
154
|
+
or at:
|
155
|
+
$ATC_EXTERNAL_URL/builds/$BUILD_ID
|
156
|
+
|
157
|
+
on_failure:
|
158
|
+
put: slack-alert
|
159
|
+
params:
|
160
|
+
channel: '#<%= @slack %>'
|
161
|
+
text: |
|
162
|
+
<%= @name %> master tests have failed! :thumbsdown_all:
|
163
|
+
Check it out at:
|
164
|
+
$ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
|
165
|
+
or at:
|
166
|
+
$ATC_EXTERNAL_URL/builds/$BUILD_ID
|
167
|
+
<% end -%>
|
168
|
+
|
169
|
+
- name: helm-deploy
|
170
|
+
serial: true
|
171
|
+
plan:
|
172
|
+
- get: <%= @name %>-repository
|
173
|
+
- task: helm-deploy
|
174
|
+
file: <%= @name %>-repository/<%= @output %>/pipelines/tasks/helm-deploy.yml
|
175
|
+
params:
|
176
|
+
GOOGLE_APPLICATION_JSON: ((gcr_password))
|
177
|
+
KUBECONFIG_FILE: ((kubeconfig))
|
178
|
+
<% unless @slack.nil? or @slack.empty? -%>
|
179
|
+
on_success:
|
180
|
+
put: slack-alert
|
181
|
+
params:
|
182
|
+
channel: '#<%= @slack %>'
|
183
|
+
text: |
|
184
|
+
<%= @name %> deployment has succeeded! :thumbsup_all:
|
185
|
+
Check it out at:
|
186
|
+
$ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
|
187
|
+
or at:
|
188
|
+
$ATC_EXTERNAL_URL/builds/$BUILD_ID
|
189
|
+
<% end -%>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
---
|
2
|
+
platform: linux
|
3
|
+
image_resource:
|
4
|
+
type: docker-image
|
5
|
+
source:
|
6
|
+
repository: alpine/git
|
7
|
+
run:
|
8
|
+
path: sh
|
9
|
+
args: ['-xc', 'cd pull-requests && git rev-parse --short=8 HEAD > ../tag/name']
|
10
|
+
inputs:
|
11
|
+
- name: pull-requests
|
12
|
+
outputs:
|
13
|
+
- name: tag
|
@@ -0,0 +1,13 @@
|
|
1
|
+
---
|
2
|
+
platform: linux
|
3
|
+
image_resource:
|
4
|
+
type: docker-image
|
5
|
+
source:
|
6
|
+
repository: alpine/git
|
7
|
+
run:
|
8
|
+
path: sh
|
9
|
+
args: ['-xc', 'cd <%= @name %>-repository && git rev-parse --short=8 HEAD > ../tag/name']
|
10
|
+
inputs:
|
11
|
+
- name: <%= @name %>-repository
|
12
|
+
outputs:
|
13
|
+
- name: tag
|
@@ -0,0 +1,22 @@
|
|
1
|
+
---
|
2
|
+
platform: linux
|
3
|
+
|
4
|
+
image_resource:
|
5
|
+
type: docker-image
|
6
|
+
source:
|
7
|
+
repository: heliostech/kite
|
8
|
+
|
9
|
+
inputs:
|
10
|
+
- name: <%= @name %>-repository
|
11
|
+
|
12
|
+
run:
|
13
|
+
path: "sh"
|
14
|
+
args:
|
15
|
+
- "-exc"
|
16
|
+
- |
|
17
|
+
helm init --client-only
|
18
|
+
echo ${GOOGLE_APPLICATION_JSON} > gcr_credentials.json
|
19
|
+
export GOOGLE_APPLICATION_CREDENTIALS="${PWD}/gcr_credentials.json"
|
20
|
+
echo ${KUBECONFIG_FILE} | tr -d ' ' | base64 -d > kubeconfig
|
21
|
+
export KUBECONFIG="${PWD}/kubeconfig"
|
22
|
+
helm install <%= @name %>-repository/.kite/charts/<%= @name %>
|
@@ -0,0 +1,28 @@
|
|
1
|
+
VERSION := $(shell cat VERSION)
|
2
|
+
IMAGE := <%= @image %>:$(VERSION)
|
3
|
+
|
4
|
+
.PHONY: default build push run ci deploy
|
5
|
+
|
6
|
+
default: build run
|
7
|
+
|
8
|
+
build:
|
9
|
+
@echo '> Building "<%= @name %>" docker image...'
|
10
|
+
@docker build -t $(IMAGE) .
|
11
|
+
|
12
|
+
push: build
|
13
|
+
<% if @provider == 'gcp' -%>
|
14
|
+
gcloud docker -- push $(IMAGE)
|
15
|
+
<% else -%>
|
16
|
+
docker push $(IMAGE)
|
17
|
+
<% end -%>
|
18
|
+
|
19
|
+
run:
|
20
|
+
@echo '> Starting "<%= @name %>" container...'
|
21
|
+
@docker run -d $(IMAGE)
|
22
|
+
|
23
|
+
ci:
|
24
|
+
@fly -t ci set-pipeline -p <%= @name %> -c <%= @output %>/pipelines/review.yml -n
|
25
|
+
@fly -t ci unpause-pipeline -p <%= @name %>
|
26
|
+
|
27
|
+
deploy: push
|
28
|
+
@helm install ./<%= @output %>/charts/<%= @name %> --set "image.tag=$(VERSION)"
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= @image_version %>
|
@@ -0,0 +1,58 @@
|
|
1
|
+
# <%= @title %> CI Documentation
|
2
|
+
|
3
|
+
# About
|
4
|
+
__Pipeline__ described in `<%= output_path %>/pipelines/review.yml`
|
5
|
+
|
6
|
+
## Credentials overview
|
7
|
+
|
8
|
+
- git_private_key - RSA key with access to your repository
|
9
|
+
- github_token - [Github token](https://github.com/settings/tokens) with access to web hooks
|
10
|
+
- gcr_password - JSON containing your [GCP credentials](https://developers.google.com/identity/protocols/application-default-credentials)
|
11
|
+
- slack_webhook - address of your [Slack Incoming Webhook](https://api.slack.com/incoming-webhooks)
|
12
|
+
- kubeconfig - your Kubernetes config encoded in base64
|
13
|
+
|
14
|
+
## Configurations overview
|
15
|
+
|
16
|
+
A pipeline is configured with __three sections__:
|
17
|
+
|
18
|
+
- `resource_types`
|
19
|
+
- `resources`
|
20
|
+
- `jobs`
|
21
|
+
|
22
|
+
In `resource_types` added additional resource types used by pipeline.
|
23
|
+
Each resource in a pipeline has a type. The resource's type determines what versions are detected, the bits that are fetched when used for a get step, and the side effect that occurs when used for a put step.
|
24
|
+
Out of the box, Concourse comes with a few resource types to cover common CI use cases like dealing with Git repositories and S3 buckets.
|
25
|
+
Here is `pull-request` type.
|
26
|
+
|
27
|
+
In `resources` described objects that are going to be used for jobs in the pipeline. They are listed under the resources key in the pipeline configuration.
|
28
|
+
|
29
|
+
In `jobs` described actions of pipeline, how resources progress through it, and how everything is visualized.
|
30
|
+
|
31
|
+
## Configure jobs
|
32
|
+
|
33
|
+
- `build-pull-request`
|
34
|
+
- set `trigger: true` to make a new build of the job when new pull request available
|
35
|
+
- configure `base: <branch_name>` to change which branch should be watched
|
36
|
+
|
37
|
+
- `build-master`
|
38
|
+
- set `serial: true` to build and execute one-by-one, rather than executing in parallel
|
39
|
+
- set `trigger: true` to make a new build of the job when new version available on git.
|
40
|
+
- configure <%= @name %>-repository `uri` to change ssh link to your respository.
|
41
|
+
- configure <%= @name %>-repository `branch` to change building branch of your respository.
|
42
|
+
|
43
|
+
# Getting stated
|
44
|
+
|
45
|
+
## Login to concourse
|
46
|
+
```shell
|
47
|
+
fly -t ci login -n TEAM_NAME -c CONCOURSE_URL
|
48
|
+
```
|
49
|
+
|
50
|
+
## Create or update the pipeline
|
51
|
+
```shell
|
52
|
+
fly -t ci set-pipeline -p <%= @name %> -c <%= output_path %>/pipelines/review.yml -n
|
53
|
+
```
|
54
|
+
|
55
|
+
## Un-pause the pipeline
|
56
|
+
```shell
|
57
|
+
fly -t ci unpause-pipeline -p <%= @name %>
|
58
|
+
```
|
data/tpl/skel/config/cloud.yml
CHANGED
@@ -2,7 +2,7 @@ kite:
|
|
2
2
|
keypair_name: "kitekey"
|
3
3
|
public_key_path: "~/.ssh/kite.key.pub"
|
4
4
|
private_key_path: "~/.ssh/kite.key"
|
5
|
-
bucket_name: "kite-state"
|
5
|
+
bucket_name: "kite-state-project-example"
|
6
6
|
|
7
7
|
aws:
|
8
8
|
access_key: "enter your amazon key"
|
@@ -14,6 +14,7 @@ aws:
|
|
14
14
|
vpc_id: "" # submit vpc id if you want to use an existing vpc
|
15
15
|
public_subnet:
|
16
16
|
name: "platform-dmz"
|
17
|
+
gateway: "10.0.10.1"
|
17
18
|
network: "10.0.10.0/26"
|
18
19
|
id: "" # submit id if you want to use an existing public subnet
|
19
20
|
private_subnet:
|
@@ -24,18 +25,42 @@ aws:
|
|
24
25
|
gcp:
|
25
26
|
project: "gcp-project"
|
26
27
|
region: "europe-west1"
|
27
|
-
zone: "europe-west1-
|
28
|
+
zone: "europe-west1-c"
|
28
29
|
service_account: "~/safe/terraform.json"
|
29
30
|
vpc_name: "platform-tools"
|
30
31
|
subnet_name: "platform-net"
|
31
|
-
subnet_cidr: "10.0.
|
32
|
-
internal_gw: "10.0.
|
32
|
+
subnet_cidr: "10.0.20.0/24"
|
33
|
+
internal_gw: "10.0.20.2"
|
33
34
|
|
34
35
|
bosh:
|
35
36
|
name: "bosh-director"
|
36
37
|
static_ip: "10.0.20.10"
|
37
38
|
|
39
|
+
k8s:
|
40
|
+
config_path: "~/.kube/config"
|
41
|
+
cluster_address: "k8s.example.com"
|
42
|
+
api_server_address: "https://api.k8s.example.com"
|
43
|
+
|
44
|
+
ingress:
|
45
|
+
vip: "42.42.42.42"
|
46
|
+
|
47
|
+
vault:
|
48
|
+
hostname: "vault.example.com"
|
49
|
+
|
50
|
+
prometheus:
|
51
|
+
hostname: "prometheus.example.com"
|
52
|
+
|
53
|
+
grafana:
|
54
|
+
hostname: "grafana.example.com"
|
55
|
+
|
56
|
+
alertmanager:
|
57
|
+
hostname: "alertmanager.example.com"
|
58
|
+
|
38
59
|
concourse:
|
39
60
|
hostname: "concourse.example.com"
|
40
|
-
url: "
|
61
|
+
url: "https://concourse.example.com"
|
41
62
|
auth_username: "concourse"
|
63
|
+
|
64
|
+
oauth:
|
65
|
+
hostname: "oauth.example.com"
|
66
|
+
url: "https://oauth.example.com"
|