kite 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (93) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/CHANGELOG.md +18 -1
  4. data/Dockerfile +30 -9
  5. data/Makefile +21 -9
  6. data/README.md +9 -0
  7. data/bin/concourse/check +12 -0
  8. data/bin/concourse/in +12 -0
  9. data/bin/concourse/out +46 -0
  10. data/config/pipelines/review.yml +158 -0
  11. data/config/pipelines/tasks/create-pull-requests-tag.yml +13 -0
  12. data/config/pipelines/tasks/create-repository-tag.yml +13 -0
  13. data/config/pipelines/tasks/run-master-tests.yml +12 -0
  14. data/config/pipelines/tasks/run-pr-tests.yml +12 -0
  15. data/kite.gemspec +1 -1
  16. data/lib/kite/generate.rb +39 -0
  17. data/lib/kite/helpers/concourse.rb +36 -0
  18. data/lib/kite/render.rb +68 -2
  19. data/lib/kite/version.rb +1 -1
  20. data/tpl/aws/README.md +20 -0
  21. data/tpl/aws/bin/concourse-deploy.sh.tt +4 -1
  22. data/tpl/aws/bin/ingress-deploy.sh.tt +7 -0
  23. data/tpl/aws/bin/ingress-update.sh.tt +7 -0
  24. data/tpl/aws/bin/kops-delete.sh.erb +5 -0
  25. data/tpl/aws/bin/kops-deploy.sh.erb +11 -0
  26. data/tpl/aws/bin/oauth-deploy.sh.tt +17 -0
  27. data/tpl/aws/bin/prometheus-deploy.sh.tt +23 -0
  28. data/tpl/aws/bosh-vars.yml.erb +1 -0
  29. data/tpl/aws/config/oauth.yml +59 -0
  30. data/tpl/aws/deployments/bosh/cloud-config.yml.tt +17 -1
  31. data/tpl/aws/deployments/concourse/concourse.yml.tt +6 -0
  32. data/tpl/aws/deployments/ingress/ingress.yml.erb +78 -0
  33. data/tpl/aws/deployments/oauth/oauth.yml.tt +95 -0
  34. data/tpl/aws/deployments/prometheus/monitor-bosh.yml +518 -0
  35. data/tpl/aws/deployments/prometheus/monitor-kubernetes.yml +30 -0
  36. data/tpl/aws/deployments/prometheus/prometheus.yml.tt +184 -0
  37. data/tpl/aws/docs/concourse.md +2 -2
  38. data/tpl/aws/docs/ingress.md +14 -0
  39. data/tpl/aws/docs/kops.md +5 -8
  40. data/tpl/aws/docs/oauth.md +24 -0
  41. data/tpl/aws/docs/prometheus.md +31 -0
  42. data/tpl/aws/terraform/kite_bucket.tf +8 -0
  43. data/tpl/aws/terraform/network.tf.tt +27 -0
  44. data/tpl/aws/terraform/outputs.tf +4 -0
  45. data/tpl/aws/terraform/terraform.tfvars.tt +1 -0
  46. data/tpl/aws/terraform/variables.tf +4 -0
  47. data/tpl/gcp/README.md +19 -3
  48. data/tpl/gcp/bin/base/setup-tunnel.sh.tt +8 -3
  49. data/tpl/gcp/bin/bosh-install.sh.tt +4 -0
  50. data/tpl/gcp/bin/concourse-deploy.sh.tt +4 -1
  51. data/tpl/gcp/bin/ingress-deploy.sh.tt +7 -0
  52. data/tpl/gcp/bin/ingress-update.sh.tt +7 -0
  53. data/tpl/gcp/bin/oauth-deploy.sh.tt +19 -0
  54. data/tpl/gcp/bin/prometheus-deploy.sh.tt +23 -0
  55. data/tpl/gcp/bin/vault-deploy.sh.tt +1 -1
  56. data/tpl/gcp/bosh-vars.yml.erb +1 -0
  57. data/tpl/gcp/config/oauth.yml +59 -0
  58. data/tpl/gcp/deployments/bosh/cloud-config.yml.tt +17 -3
  59. data/tpl/gcp/deployments/concourse/concourse.yml.tt +15 -5
  60. data/tpl/gcp/deployments/ingress/ingress.yml.erb +111 -0
  61. data/tpl/gcp/deployments/oauth/oauth.yml.tt +95 -0
  62. data/tpl/gcp/deployments/prometheus/monitor-bosh.yml +518 -0
  63. data/tpl/gcp/deployments/prometheus/monitor-kubernetes.yml +30 -0
  64. data/tpl/gcp/deployments/prometheus/prometheus.yml +183 -0
  65. data/tpl/gcp/docs/bosh.md +5 -0
  66. data/tpl/gcp/docs/concourse.md +3 -3
  67. data/tpl/gcp/docs/ingress.md +12 -0
  68. data/tpl/gcp/docs/oauth.md +24 -0
  69. data/tpl/gcp/docs/prometheus.md +27 -0
  70. data/tpl/gcp/docs/vault.md +2 -1
  71. data/tpl/gcp/terraform/main.tf +6 -1
  72. data/tpl/gcp/terraform/outputs.tf +4 -0
  73. data/tpl/service/%output_path%/charts/%app_name%/Chart.yaml.tt +4 -0
  74. data/tpl/service/%output_path%/charts/%app_name%/templates/NOTES.txt.tt +19 -0
  75. data/tpl/service/%output_path%/charts/%app_name%/templates/_helpers.tpl +16 -0
  76. data/tpl/service/%output_path%/charts/%app_name%/templates/deployment.yaml +37 -0
  77. data/tpl/service/%output_path%/charts/%app_name%/templates/ingress.yaml +32 -0
  78. data/tpl/service/%output_path%/charts/%app_name%/templates/service.yaml +19 -0
  79. data/tpl/service/%output_path%/charts/%app_name%/values.yaml.tt +37 -0
  80. data/tpl/service/%output_path%/environments/.keep +0 -0
  81. data/tpl/service/%output_path%/pipelines/review.yml.tt +189 -0
  82. data/tpl/service/%output_path%/pipelines/tasks/create-pull-requests-tag.yml.tt +13 -0
  83. data/tpl/service/%output_path%/pipelines/tasks/create-repository-tag.yml.tt +13 -0
  84. data/tpl/service/%output_path%/pipelines/tasks/helm-deploy.yml.tt +22 -0
  85. data/tpl/service/%output_path%/pipelines/tasks/run-master-tests.yml.tt +12 -0
  86. data/tpl/service/%output_path%/pipelines/tasks/run-pr-tests.yml.tt +12 -0
  87. data/tpl/service/Dockerfile.tt +4 -0
  88. data/tpl/service/Makefile.tt +28 -0
  89. data/tpl/service/VERSION.tt +1 -0
  90. data/tpl/service/docs/pipeline.md.tt +58 -0
  91. data/tpl/skel/config/cloud.yml +30 -5
  92. metadata +58 -5
  93. 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,12 @@
1
+ ---
2
+ platform: linux
3
+ image_resource:
4
+ type: docker-image
5
+ source:
6
+ repository: <%= @image %>
7
+ username: _json_key
8
+ password: ((gcr_password))
9
+
10
+ run:
11
+ path: sh
12
+ args: ["-exc", "echo Success"]
@@ -0,0 +1,12 @@
1
+ ---
2
+ platform: linux
3
+ image_resource:
4
+ type: docker-image
5
+ source:
6
+ repository: <%= @image %>
7
+ username: _json_key
8
+ password: ((gcr_password))
9
+
10
+ run:
11
+ path: sh
12
+ args: ["-exc", "echo Success"]
@@ -0,0 +1,4 @@
1
+ FROM nginx:1.13
2
+ # MAINTAINER Some Name <email@<%= @name %>.com>
3
+
4
+ RUN echo "Hello, <%= @title %>!" > /usr/share/nginx/html/index.html
@@ -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
+ ```
@@ -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-b"
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.0.0/24"
32
- internal_gw: "10.0.0.2"
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: "http://concourse.example.com"
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"