-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtile.yml
executable file
·303 lines (295 loc) · 11.1 KB
/
tile.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
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
---
# The high-level description of your tile.
# Replace these properties with real values.
#
name: azurefilebroker-tile
icon_file: resources/icon.png
label: Microsoft Azure File Broker
description: A service broker for Microsoft Azure File service or existing SMB shares
# metadata_version: 1.8 # Optional, defaults to 1.5
# Global defaults (all optional)
#
org: system # Name of org to create for your apps
space: azure-file-service-broker-space # Name of space to create for your apps
apply_open_security_group: true # Apply open security group, default: false
allow_paid_service_plans: true
# Specify the packages to be included in your tile.
# The format of the section to include depends on the type
# of package you are describing. For fragments of each type
# that you can copy & paste, see:
#
# https://github.com/cf-platform-eng/tile-generator/blob/master/README.md
#
packages:
- name: azurefilebroker
type: app-broker
# label: My fabulous appplication # Package name for use in human-readable labels in OpsManager
enable_global_access_to_plans: true
pre_deploy: |
cf delete-org -f azure-file-broker-org
cf delete-quota -f azure-file-broker-org-quota
manifest:
path: resources/azurefilebroker.zip
buildpack: binary_buildpack
instances: 1
# Uncomment this section if you want to display forms with configurable
# properties in Ops Manager. These properties will be passed to your
# applications as environment variables. You can also refer to them
# elsewhere in this template by using:
# (( .properties.<property-name> ))
#
forms:
- name: azurefilebroker_app
label: Service Broker Application
description: Service Broker CF App Configuration Details
properties:
- name: app_name
type: string
label: Service Broker Application Name
description: Enter the name for the Service Broker App
configurable: false
default: azurefilebroker
- name: app_version
label: Service Broker Application version
description: Enter the version of the Service Broker App (Final app name would include app version like ${appName}-${appversion}
type: string
configurable: false
default: 1.0.0
- name: enable_global_access_to_plans
label: Enable Global access to all Services and Plans
description: Open up access to all service plans across all orgs and spaces. If set to false, administrators must use the "enable-service-access" command to allow access
type: boolean
configurable: true
default: true
- name: servicename
label: Service Name
description: Enter the version of the Service Broker App (Final app name would include app version like ${appName}-${appversion}
type: string
configurable: false
default: smbvolume
- name: loglevel
label: LogLevel
description: The log level of the broker
type: dropdown_select
configurable: true
default: info
options:
- name: error
label: error
- name: warn
label: warn
- name: info
label: info
- name: debug
label: debug
- name: environment
label: Environment
description: Select the environment you would like to use
type: dropdown_select
configurable: true
default: Preexisting
freeze_on_deploy: true
options:
- name: Preexisting
label: Preexisting SMB Shares
- name: Azure
label: Azure Global Cloud
- name: AzureChinaCloud
label: Azure China Cloud
- name: AzureUSGovernment
label: Azure US Goverment Cloud
- name: AzureGermanCloud
label: Azure German Cloud
- name: tenantid
label: Tenant ID
description: The tenant id for your service principal. Required when 'Environment' is not 'Preexisting SMB Shares'
type: string
configurable: true
optional: true
- name: clientid
label: Client ID
description: The client id for your service principal. Required when 'Environment' is not 'Preexisting SMB Shares'
type: string
configurable: true
optional: true
- name: clientsecret
label: Client Secret
description: The client secret for your service principal. Required when 'Environment' is not 'Preexisting SMB Shares'
type: secret
configurable: true
optional: true
- name: defaultsubscriptionid
label: Default Subscription ID
description: The default Azure Subscription id to use for storage accounts. Required when 'Environment' is not 'Preexisting SMB Shares'
type: string
configurable: true
optional: true
- name: defaultresourcegroupname
label: Default Resource Group Name
description: The default resource group name to use for storage accounts. Available when 'Environment' is not 'Preexisting SMB Shares'
type: string
configurable: true
optional: true
- name: defaultlocation
label: Default Location
description: The default location to use for creating storage accounts. Available when 'Environment' is not 'Preexisting SMB Shares'
type: string
configurable: true
optional: true
- name: allowcreatestorageaccount
label: Allow Create Storage Account
description: Allow Broker to create storage accounts. Available when 'Environment' is not 'Preexisting SMB Shares'
type: boolean
configurable: true
default: true
- name: allowcreatefileshare
label: Allow Create File Share
description: Allow Broker to create file shares. Available when 'Environment' is not 'Preexisting SMB Shares'
type: boolean
configurable: true
default: true
- name: allowdeletestorageaccount
label: Allow Delete Storage Account
description: Allow Broker to delete storage accounts which are created by Broker. Available when 'Environment' is not 'Preexisting SMB Shares'
type: boolean
configurable: true
default: true
- name: allowdeletefileshare
label: Allow Delete File Share
description: Allow Broker to delete file shares which are created by Broker. Available when 'Environment' is not 'Preexisting SMB Shares'
type: boolean
configurable: true
default: true
- name: db-config-form
label: Database Config
properties:
- name: dbdrivername
label: Database Driver
description: Database driver name to use SQL to store broker state
type: dropdown_select
configurable: true
options:
- name: mssql
label: MsSQL
default: true
- name: mysql
label: MySQL
- name: dbcacert
label: Database CACert
description: Content of CA Cert to verify SSL connection
type: string
configurable: true
optional: true
- name: hostnameincertificate
label: Host Name in Certificate
description: For Azure SQL service or Azure MySQL service, you need to specify one of below values to enable TLS encryption. For your certificate, you need to specify the Common Name (CN) in the server certificate.AzureCloud:"*.database.windows.net", AzureUSGovernment:"*.database.usgovcloudapi.net", AzureChinaCloud:"*.database.chinacloudapi.cn", AzureGermanCloud:"*.database.cloudapi.de"
type: string
configurable: true
- name: dbservicename
label: Cloud Foundry Service Name
description: For CF pushed apps, the service name in VCAP_SERVICES where we should find database credentials
type: string
configurable: true
optional: true
- name: dbhost
label: Database Hostname
description: Database hostname when using SQL to store broker state. Required when 'Cloud Foundry Service Name' is empty
type: string
configurable: true
optional: true
- name: dbport
label: Database Port
description: Database port when using SQL to store broker state. Required when 'Cloud Foundry Service Name' is empty
type: string
configurable: true
optional: true
- name: dbname
label: Database Name
description: Database name when using SQL to store broker state. Required when 'Cloud Foundry Service Name' is empty
type: string
configurable: true
optional: true
- name: dbusername
label: Database Username
description: Database username when using SQL to store broker state. Required when 'Cloud Foundry Service Name' is empty
type: string
configurable: true
optional: true
- name: dbpassword
label: Database Password
description: Database password when using SQL to store broker state. Required when 'Cloud Foundry Service Name' is empty
type: secret
configurable: true
optional: true
- name: bind-config-form
label: Bind Config
properties:
- name: allowedoptions
label: Allowed Options
description: A comma separated list of parameters allowed to be set in during bind operations
type: string
configurable: true
default: share,uid,gid,file_mode,dir_mode,readonly,vers,mount,domain,username,password,sec
- name: defaultoptions
label: Default Options
description: A comma separated list of defaults specified as param:value. If a parameter has a default value and is not in the allowed list, this default value becomes a fixed value that cannot be overridden
type: string
configurable: true
default: vers:3.0
- name: smb-driver-config-form
label: SMB Driver Config
properties:
- name: mountflagallowed
label: Mount Flag Allowed
description: A comma separted list of parameters allowed to be send in extra config. Each of this parameters can be specify by brokers
type: string
configurable: true
default: username,password,uid,gid,file_mode,dir_mode,readonly,domain,vers,sec
- name: mountflagdefault
label: Mount Flag Default
description: A comma separted list of like params:value. This list specifies default value of parameters.
type: string
configurable: true
default: uid:2000,gid:2000
# Add any dependencies your tile has on other installed products.
# This is often appropriate when using automatic service provisioning
# for any of your packages above, with services provided by other
# products.
#
# requires_product_versions:
# - name: p-mysql
# version: '~> 1.7'
provides_product_versions:
- name: azurefilebroker
version: '1.0.0'
# Customize upgrade parameters if the defaults don't meet your needs.
#
# update:
# canaries: 1
# canary_watch_time: 10000-100000
# max_in_flight: 1
# update_watch_time: 10000-100000
releases:
- name: smb-volume
file: os-conf
version: '15'
runtime_configs:
- name: smb-driver-runtime-config
runtime_config: |
releases:
- name: smb-volume
version: '15'
addons:
- name: voldrivers
include:
deployments:
- ((cf.deployment))
jobs:
- name: rep
release: diego
jobs:
- name: smbdriver
release: smb-volume
properties:
allowed-in-mount: ((.properties.mountflagallowed))
default-in-mount: ((.properties.mountflagdefault))