kite 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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"
|