-
Notifications
You must be signed in to change notification settings - Fork 4
/
example-manifest.yml
231 lines (213 loc) · 7.66 KB
/
example-manifest.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
name: kafka-on-demand-broker
director_uuid: <BOSH_DIRECTOR_UUID>
releases:
- name: &broker-release on-demand-service-broker
version: latest
- name: &service-adapter-release kafka-example-service-adapter
version: latest
- name: &kafka-service-release kafka-service
version: latest
- name: service-metrics
version: 1.5.0
- name: loggregator
version: 58 # or later
- name: routing
version: 0.140.0 # or later
- name: syslog
version: 7 # or later
stemcells:
- alias: trusty
os: ubuntu-trusty
version: <STEMCELL_VERSION>
instance_groups:
- name: broker
instances: 1
jobs:
- name: broker
release: *broker-release
properties:
port: 8080
username: broker #or replace with your own
password: password #or replace with your own
disable_ssl_cert_verification: &disable_ssl_cert_verification <TRUE | FALSE> # optional
bosh:
url: <BOSH_URL>
root_ca_cert: <CA_CERT_FOR_BOSH_DIRECTOR_AND_ASSOCIATED_UAA> # optional, see SSL certificates
authentication: # either basic or uaa, not both as shown
basic:
username: admin #or replace with your own
password: admin #or replace with your own
uaa:
url: <BOSH_UAA_URL> # often on the same host as the director, on a different port
client_id: <BOSH_CLIENT_ID
client_secret: <BOSH_CLIENT_SECRET>
cf:
url: https://api.<CF_DOMAIN>
root_ca_cert: <CA_CERT_FOR_CLOUD_CONTROLLER> # if disable_ssl_cert_verification: false, see SSL certificates
authentication:
url: https://uaa.<CF_DOMAIN>
user_credentials:
username: <CF_ADMIN_USERNAME>
password: <CF_ADMIN_PASSWORD>
service_deployment:
releases:
- name: *kafka-service-release
version: <KAFKA_SERVICE_VERSION>
jobs: [kafka_server, zookeeper_server]
- name: loggregator
version: <LOGGREGATOR_VERSION>
jobs: [metron_agent]
stemcell:
os: ubuntu-trusty
version: <STEMCELL_VERSION>
service_catalog:
id: D94A086D-203D-4966-A6F1-60A9E2300F72 #create this yourself, can be human readable
service_name: kafka-service-with-odb
service_description: Kafka Service
bindable: true
plan_updatable: true
tags: [kafka]
plans:
- name: small
plan_id: 11789210-D743-4C65-9D38-C80B29F4D9C8 # create this yourself, can be human readable
description: A Kafka deployment with a single instance of each job and persistent disk
instance_groups:
- name: kafka_server
vm_type: <FROM_CLOUD_CONFIG>
instances: 1
networks: [<FROM_CLOUD_CONFIG>] #from your cloud config
azs: [<FROM_CLOUD_CONFIG>] #from your cloud config
persistent_disk_type: ten #from your cloud config
- name: zookeeper_server
vm_type: <FROM_CLOUD_CONFIG>
instances: 1
persistent_disk_type: ten #from your cloud config
azs: [<FROM_CLOUD_CONFIG>] #from your cloud config
networks: [<FROM_CLOUD_CONFIG>] #from your cloud config
properties:
auto_create_topics: true
default_replication_factor: 1
logging:
syslog_address: <SYSLOG URL> #of your syslog destination
syslog_port: <SYSLOG_PORT> #of your syslog destination
loggregator_etcd_addresses: [<ETCD_IP>]
loggregator_shared_secret: <LOGGREGATOR_SECRET> #from your cf manifest
- name: kafka-service-adapter
release: *service-adapter-release
- name: admin_tools
release: *kafka-service-release
- name: service-metrics
release: service-metrics
properties:
service_metrics:
execution_interval_seconds: 10
origin: kafka-on-demand-broker #this tag will appear in the metrics under the 'origin' key
monit_dependencies: [broker]
- name: metron_agent
release: loggregator
properties:
metron_agent:
deployment: kafka-on-demand-broker
protocols:
- tcp
metron_endpoint:
shared_secret: <LOGGREGATOR_SECRET> #from your cf manifest
loggregator:
etcd:
machines: [<ETCD_IP>]
loggregator_endpoint:
shared_secret: <LOGGREGATOR_SECRET> #from your cf manifest
- name: service-metrics-adapter
release: *broker-release
- name: route_registrar
release: routing
properties:
nats:
machines: [<NATS_IP>]
port: <NATS_PORT>
user: <NATS_USER>
password: <NATS_PASSWORD>
route_registrar:
routes:
- name: kafka-service-broker
registration_interval: 20s
port: 8080
uris: [kafka-service-broker.<CF_DOMAIN>]
- name: syslog_forwarder
release: syslog
properties:
syslog:
address: <SYSLOG URL> #of your syslog destination
port: <SYSLOG_PORT> #of your syslog destination
transport: udp
vm_type: <FROM_CLOUD_CONFIG>
stemcell: trusty
azs: [<FROM_CLOUD_CONFIG>]
networks: [{name: <FROM_CLOUD_CONFIG>}] #from your cloud config
- name: register-broker
lifecycle: errand
instances: 1
jobs:
- name: register-broker
release: *broker-release
properties:
broker_name: &broker_name kafka-service-with-odb
disable_ssl_cert_verification: *disable_ssl_cert_verification
cf: &cf
api_url: https://api.<CF_DOMAIN>
admin_username: <CF_ADMIN_USER>
admin_password: <CF_ADMIN_PASSWORD>
vm_type: <FROM_CLOUD_CONFIG>
stemcell: trusty
networks: [{name: <FROM_CLOUD_CONFIG>}] #from your cloud config
azs: [<FROM_CLOUD_CONFIG>]
- name: deregister-broker
lifecycle: errand
instances: 1
jobs:
- name: deregister-broker
release: *broker-release
properties:
broker_name: *broker_name
disable_ssl_cert_verification: *disable_ssl_cert_verification
cf:
<<: *cf
vm_type: <FROM_CLOUD_CONFIG>
stemcell: trusty
networks: [{name: <FROM_CLOUD_CONFIG>}]
azs: [<FROM_CLOUD_CONFIG>]
- name: delete-all-service-instances
lifecycle: errand
instances: 1
jobs:
- name: delete-all-service-instances
release: *broker-release
vm_type: <FROM_CLOUD_CONFIG>
stemcell: trusty
networks: [{name: <FROM_CLOUD_CONFIG>}]
azs: [<FROM_CLOUD_CONFIG>]
- name: upgrade-all-service-instances
lifecycle: errand
instances: 1
jobs:
- name: upgrade-all-service-instances
release: *broker-release
vm_type: <FROM_CLOUD_CONFIG>
stemcell: trusty
networks: [{name: <FROM_CLOUD_CONFIG>}]
azs: [<FROM_CLOUD_CONFIG>]
- name: orphan-deployments
lifecycle: errand
instances: 1
jobs:
- name: orphan-deployments
release: *broker-release
vm_type: <FROM_CLOUD_CONFIG>
stemcell: trusty
networks: [{name: <FROM_CLOUD_CONFIG>}]
azs: [<FROM_CLOUD_CONFIG>]
update:
canaries: 1
canary_watch_time: 3000-180000
update_watch_time: 3000-180000
max_in_flight: 4