-
Notifications
You must be signed in to change notification settings - Fork 3
/
tile.yml
executable file
·2071 lines (2052 loc) · 95.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
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
---
# The high-level description of your tile.
# Replace these properties with real values.
name: ecs-service-broker
org: ecs-broker-service-org
space: ecs-broker-service-space
icon_file: resources/icon.png
label: DELL EMC ECS Broker
description: ECS Broker for VMware Tanzu
metadata_version: 1.8 # Optional, defaults to 1.8
rank: 50
allow_paid_service_plans: true
# If prior versions of your tile are installed and configured, their
# property values will not be overwritten by new defaults provided
# in this file. If that is your intent, you must do the overwriting
# explicitly using JavaScript migration functions, like so:
migration: |
properties['properties']['.properties.org']['value'] = 'ecs-broker-service-org';
properties['properties']['.properties.space']['value'] = 'ecs-broker-service-space';
# 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:
#
# http://docs.pivotal.io/tiledev/tile-generator.html
#
packages:
- name: ecs_broker
type: app-broker
label: ECS Broker Application # Package name for use in human-readable labels in OpsManager
enable_global_access_to_plans: (( .properties.enable_global_access_to_plans.value ))
pre_deploy: |
export PATH="/var/vcap/packages/cf_cli:$PATH"
export CF=`which cf`
export OLD_ORG="ecs-service-broker-org"
export NEW_ORG="ecs-broker-service-org"
export OLD_SPACE="ecs-service-broker-space"
export NEW_SPACE="ecs-broker-service-space"
$CF org $OLD_ORG
ret1=$?
if [ $ret1 -eq 0 ]
then
echo "Renaming installation placement $OLD_ORG / $OLD_SPACE to $NEW_ORG / $NEW_SPACE"
$CF target -o $OLD_ORG
$CF target -s $OLD_SPACE
$CF delete-org "$NEW_ORG" -f
$CF rename-org $OLD_ORG $NEW_ORG
$CF target -o $NEW_ORG
$CF rename-space $OLD_SPACE $NEW_SPACE
$CF target -s $NEW_SPACE
fi
manifest:
path: resources/ecs-cf-service-broker.jar
buildpack: java_buildpack_offline
memory: 1G
env:
JBP_CONFIG_OPEN_JDK_JRE: "{ jre: { version: '11.+' } }"
BROKER_IGNORE_SSL_VALIDATION: 'false'
catalog.services[0].id: (( .properties.catalog_services_0_guid.value ))
catalog.services[0].active: (( .properties.catalog_services_0_active.value ))
catalog.services[0].name: (( .properties.catalog_services_0_name.value ))
catalog.services[0].description: (( .properties.catalog_services_0_description.value ))
catalog.services[0].tags: (( .properties.catalog_services_0_tags.value ))
catalog.services[0].bindable: (( .properties.catalog_services_0_bindable.value ))
catalog.services[0].repositoryService: (( .properties.catalog_services_0_repository_service.value ))
catalog.services[0].metadata.displayName: (( .properties.catalog_services_0_display_name.value ))
catalog.services[0].metadata.imageUrl: (( .properties.catalog_services_0_image_url.value ))
catalog.services[0].metadata.longDescription: (( .properties.catalog_services_0_long_description.value ))
catalog.services[0].metadata.providerDisplayName: (( .properties.catalog_services_0_provider_display_name.value ))
catalog.services[0].metadata.documentationUrl: (( .properties.catalog_services_0_documentation_url.value ))
catalog.services[0].metadata.supportUrl: (( .properties.catalog_services_0_support_url.value ))
catalog.services[1].id: (( .properties.catalog_services_1_guid.value ))
catalog.services[1].active: (( .properties.catalog_services_1_active.value ))
catalog.services[1].name: (( .properties.catalog_services_1_name.value ))
catalog.services[1].description: (( .properties.catalog_services_1_description.value ))
catalog.services[1].tags: (( .properties.catalog_services_1_tags.value ))
catalog.services[1].bindable: (( .properties.catalog_services_1_bindable.value ))
catalog.services[1].repositoryService: (( .properties.catalog_services_1_repository_service.value ))
catalog.services[1].metadata.displayName: (( .properties.catalog_services_1_display_name.value ))
catalog.services[1].metadata.imageUrl: (( .properties.catalog_services_1_image_url.value ))
catalog.services[1].metadata.longDescription: (( .properties.catalog_services_1_long_description.value ))
catalog.services[1].metadata.providerDisplayName: (( .properties.catalog_services_1_provider_display_name.value ))
catalog.services[1].metadata.documentationUrl: (( .properties.catalog_services_1_documentation_url.value ))
catalog.services[1].metadata.supportUrl: (( .properties.catalog_services_1_support_url.value ))
catalog.services[2].id: (( .properties.catalog_services_2_guid.value ))
catalog.services[2].active: (( .properties.catalog_services_2_active.value ))
catalog.services[2].name: (( .properties.catalog_services_2_name.value ))
catalog.services[2].description: (( .properties.catalog_services_2_description.value ))
catalog.services[2].tags: (( .properties.catalog_services_2_tags.value ))
catalog.services[2].bindable: (( .properties.catalog_services_2_bindable.value ))
catalog.services[2].repositoryService: (( .properties.catalog_services_2_repository_service.value ))
catalog.services[2].metadata.displayName: (( .properties.catalog_services_2_display_name.value ))
catalog.services[2].metadata.imageUrl: (( .properties.catalog_services_2_image_url.value ))
catalog.services[2].metadata.longDescription: (( .properties.catalog_services_2_long_description.value ))
catalog.services[2].metadata.providerDisplayName: (( .properties.catalog_services_2_provider_display_name.value ))
catalog.services[2].metadata.documentationUrl: (( .properties.catalog_services_2_documentation_url.value ))
catalog.services[2].metadata.supportUrl: (( .properties.catalog_services_2_support_url.value ))
catalog.services[3].id: (( .properties.catalog_services_3_guid.value ))
catalog.services[3].active: (( .properties.catalog_services_3_active.value ))
catalog.services[3].name: (( .properties.catalog_services_3_name.value ))
catalog.services[3].description: (( .properties.catalog_services_3_description.value ))
catalog.services[3].tags: (( .properties.catalog_services_3_tags.value ))
catalog.services[3].bindable: (( .properties.catalog_services_3_bindable.value ))
catalog.services[3].repositoryService: (( .properties.catalog_services_3_repository_service.value ))
catalog.services[3].metadata.displayName: (( .properties.catalog_services_3_display_name.value ))
catalog.services[3].metadata.imageUrl: (( .properties.catalog_services_3_image_url.value ))
catalog.services[3].metadata.longDescription: (( .properties.catalog_services_3_long_description.value ))
catalog.services[3].metadata.providerDisplayName: (( .properties.catalog_services_3_provider_display_name.value ))
catalog.services[3].metadata.documentationUrl: (( .properties.catalog_services_3_documentation_url.value ))
catalog.services[3].metadata.supportUrl: (( .properties.catalog_services_3_support_url.value ))
catalog.services[4].id: (( .properties.catalog_services_4_guid.value ))
catalog.services[4].active: (( .properties.catalog_services_4_active.value ))
catalog.services[4].name: (( .properties.catalog_services_4_name.value ))
catalog.services[4].description: (( .properties.catalog_services_4_description.value ))
catalog.services[4].tags: (( .properties.catalog_services_4_tags.value ))
catalog.services[4].bindable: (( .properties.catalog_services_4_bindable.value ))
catalog.services[4].repositoryService: (( .properties.catalog_services_4_repository_service.value ))
catalog.services[4].metadata.displayName: (( .properties.catalog_services_4_display_name.value ))
catalog.services[4].metadata.imageUrl: (( .properties.catalog_services_4_image_url.value ))
catalog.services[4].metadata.longDescription: (( .properties.catalog_services_4_long_description.value ))
catalog.services[4].metadata.providerDisplayName: (( .properties.catalog_services_4_provider_display_name.value ))
catalog.services[4].metadata.documentationUrl: (( .properties.catalog_services_4_documentation_url.value ))
catalog.services[4].metadata.supportUrl: (( .properties.catalog_services_4_support_url.value ))
# Include stemcell criteria if you don't want to accept the default.
# Since this stemcell is only used to run pre and post errands, we
# strongly recommend you leave this alone so that your tile always
# runs with the latest stemcell.
#
# stemcell_criteria:
# os: ubuntu-trusty
# requires_cpi: false
# version: '3062'
# Add properties you want to pass to your applications.
# Properties specified here will not be configurable by the user.
#
properties:
- name: catalog_services_0_guid
type: uuid
- name: catalog_services_1_guid
type: uuid
- name: catalog_services_2_guid
type: uuid
- name: catalog_services_3_guid
type: uuid
- name: catalog_services_4_guid
type: uuid
# type: string
# default: specify a value
# label: Label for the field on the GUI
# description: Longer description of the field's purpose
# 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: ecs_connection
label: Dell EMC ECS Connectivity
description: Service Broker ECS Connection Details
properties:
- name: broker_management_endpoint
label: ECS Management Endpoint
description: Enter the URI/endpoint for the ECS HTTPS management API. This is typically accessed from port `4443`, but may be on a different port if accessed through a load balancer
type: string
configurable: true
- name: broker_replication_group
label: Replication Group
description: Enter the name of the ECS replication group to be used for created buckets. This can be found in the ECS management UI
type: string
configurable: true
- name: broker_namespace
label: Namespace
description: Enter the name of the ECS namespace to be used for created buckets and users. This can be found in the ECS management UI
type: string
configurable: true
- name: broker_username
label: ECS Admin Username
description: Enter the name of the ECS Management API admin user. This should be a namespace admin or system administrator management user on the ECS
type: string
configurable: true
- name: broker_password
label: ECS Admin Password
description: Enter the ECS Management API password
type: secret
configurable: true
- name: broker_base_url
label: ECS Base URL
description: (Optional) Enter the name of the ECS configured base URL, to discover the object endpoint. If not provided, the broker will attempt to discover a default base URL. Alternatively, the URI/endpoint can be specified using the 'Object Endpoint' parameter
type: string
configurable: true
optional: true
placeholder: DefaultBaseUrl
- name: broker_use_ssl
label: Use HTTPS with base url
description: When selected, and Base URL is specified, object endpoint connection and S3 bindings will use HTTPS protocol
type: boolean
default: false
configurable: true
- name: broker_certificate_selector
label: Is the ECS SSL certificate is signed by a trust authority?
description: If the ECS does not have a properly signed certificate from a trust authority (a self-signed certificate, for example), then customers will need to provide the SSL certificate.
default: "No"
configurable: true
type: selector
option_templates:
- name: untrusted_ssl
select_value: "No"
property_blueprints:
- name: certificate
label: ECS Management Certificate
description: SSL certificate to enable broker to communicate with ECS Management API. This is required for self-signed certificates, but may not be needed when the ECS is configured with a signed certificate from a trusted source
type: text
configurable: true
optional: true
- name: trusted_ssl
select_value: "Yes"
property_blueprints: []
- name: broker_object_endpoint
label: ECS Object Endpoint
description: (Optional) Manually specify the URI/endpoint of the ECS S3 API, rather than discover from the ECS configured 'base URL'. This is typically accessed form port 9020 (HTTP) or port 9021 (HTTPS), but may be on a different port if accessed through a load balancer
type: string
configurable: true
optional: true
- name: broker_aws_signature_v4
label: AWS Signature Version 4
description: Use AWS Signature Version 4 for authentication (using version 2 if not set)
type: boolean
default: false
configurable: true
- name: broker_service_details
label: Service Broker Settings
description: Service Broker Webservice Settings
properties:
- name: broker_prefix
label: Broker Prefix
type: string
configurable: true
optional: true
description: (Optional) Enter a string used to prefix all broker created buckets and users. Defaults to 'ecs-cf-broker-'
constraints:
- must_match_regex: '^[^A-Z\-\_][a-z0-9\.\-\_]*$'
error_message: 'Allowed characters are letters (only lowercase), numbers and character . and the following characters not from the beginning: - _'
- name: broker_repository_endpoint
label: Repository Endpoint
description: (Optional) Enter the URI/endpoint for the ECS S3 API that should be used for storing broker metadata. Defaults to the object endpoint or base URL
type: string
configurable: true
optional: true
- name: broker_repository_user
label: Repository User
description: (Optional) Enter the name of the user that should be created/used for managing broker metadata. Defaults to '{prefix}-user'
type: string
configurable: true
optional: true
- name: broker_repository_bucket
label: Repository Bucket
description: (Optional) Enter the name of the bucket that should be created/used for managing broker metadata. Defaults to {prefix}-repository
type: string
configurable: true
optional: true
- name: broker_path_style_access
label: S3 Path style access
description: Path style access for S3 URL, using host style access if false
type: boolean
default: true
configurable: true
- name: catalog_services_1
label: Catalog Service 1
description: Configure Catalog Service 1
properties:
- name: catalog_services_0_active
label: Enable Catalog Service 1
default: true
description: If enabled, this service will be included in the broker catalog, which supplies the Cloud Foundry marketplace.
configurable: true
type: boolean
- name: catalog_services_0_name
label: Name
type: string
configurable: true
description: Service named used in the Cloud Foundry marketplace. This should be kept fairly short
default: ecs-bucket
- name: catalog_services_0_description
label: Description
type: string
configurable: true
description: Full description of the service appearing in the marketplace
default: Dell EMC ECS private object storage bucket
- name: catalog_services_0_tags
label: Tags
type: string_list
configurable: true
description: Tags for service. These can be used by applications or cloud services (such as Spring Cloud) to identify service offerings & instances
default: "s3,bucket"
- name: catalog_services_0_bindable
label: Bindable
type: boolean
default: true
configurable: true
description: Determines if this service can be bound to user applications. This should typically be enabled, but could be disabled for internal-only services
- name: catalog_services_0_repository_service
label: Enable as Repository Service
type: boolean
description: Use this service for the internal metadata of the broker. This should only be enabled for one service, as the broker may pick from repository enabled services at random on startup.
configurable: true
default: true
- name: catalog_services_0_display_name
label: Display Name
default: ECS Bucket
type: string
description: The name that will show in the PCF Apps Manager Marketplace
- name: catalog_services_0_image_url
label: Image URL
type: http_url
default: https://avatars.githubusercontent.com/u/12926680
description: The image that will show in the PCF Apps Manager Marketplace
- name: catalog_services_0_long_description
label: Long Description
default: Dell EMC Elastic Cloud Storage (ECS) private object storage Bucket
type: text
description: A long description to use for the service, which will show in the PCF Apps Manager Marketplace
- name: catalog_services_0_provider_display_name
label: Provider Display Name
type: string
default: Dell EMC
description: Provider name that will show in the PCF Apps Manager Marketplace
- name: catalog_services_0_documentation_url
label: Documentation URL
type: http_url
default: https://community.emc.com/docs/DOC-45012
description: The documentation link that will show in the PCF Apps Manager Marketplace
- name: catalog_services_0_support_url
label: Support URL
type: http_url
default: http://www.emc.com/products-solutions/trial-software-download/ecs.htm
description: The support link that will show in the PCF Apps Manager Marketplace
- name: catalog_service_settings0
label: Type of Service
type: selector
configurable: true
default: Bucket
description: Set the type of service to be available in the marketplace. A bucket provides a single bucket per service. A namespace provides a tenant 'area' where multiple buckets can be provisioned
option_templates:
- name: bucket_option
select_value: Bucket
property_blueprints:
- name: head_type
label: Object Head Type
type: dropdown_select
default: s3
configurable: true
description: Object protocol to use for the provisioned bucket. Today the broker only supports S3, but will support Swift, Atmos & CAS in the future. This only applies to bucket services
options:
- name: s3
label: S3
- name: file_accessible
label: Enable File Access
type: boolean
default: false
configurable: true
description: Enable NFS and HDFS access for provisioned buckets. This also enables volume mount services for the service, so a bucket can be used as an application mount point. File access cannot be changed after creation, so this setting cannot be changed by plan upgrades. This only applies to bucket services
- name: default_retention
label: Default Retention (Seconds)
type: integer
optional: true
configurable: true
description: The default number of seconds an object should be retained. The object cannot be deleted until that time has elapsed. This can be set to -1 for infinite retention. This only applies to bucket services. Setting default retention in the service will _override_ default retention at within a plan.
- name: expiration
label: Expiration (Days)
type: integer
optional: true
configurable: true
description: The default number of days an object should be retained before removal. If the lifecycle expires before the retention period expires, the object will not be deleted until the retention period is over. This only applies to bucket services.
- name: encrypted
label: Enable Encryption
type: boolean
default: false
configurable: true
description: Enabled encryption on this service. Encryption cannot be changed after creation, so this setting cannot be changed by plan upgrades
- name: replication_group
label: Replication group
type: string
optional: true
configurable: true
description: (Optional) Replication group for buckets. If empty, buckets will be in a replication group specified in ECS Connection Details
- name: namespace
label: Namespace
type: string
optional: true
configurable: true
description: (Optional) Namespace for buckets. If empty, buckets will be created in namespace specified in ECS Connection Details
- name: bucket_tags
label: Bucket Tags
type: string
optional: true
configurable: true
description: (Optional) Tags for buckets. Represented as key-value pairs in format 'key1=value1,key2=value2'
constraints:
- must_match_regex: '^[\w\d\+\-\.\_\:\/\@\s\=\,\$]*$'
error_message: 'Allowed characters are letters, numbers, and spaces representable in UTF-8, and the following characters: + - . _ : / @'
- must_match_regex: '^(.{0,128}\s?=\s?.{0,256}\s?,\s?)*.{0,128}\s?=\s?.{0,256}$|^$'
error_message: 'A tag key can be up to 128 Unicode characters in length, and tag values can be up to 256 Unicode characters in length'
- must_match_regex: '^([\w\d\+\-\.\_\$\:\/\@\s]{0,128}\s?=\s?[\w\d\+\-\.\_\$\:\/\@\s]{0,256}\s?,\s?)*[\w\d\+\-\.\_\$\:\/\@\s]{0,128}\s?=\s?[\w\d\+\-\.\_\$\:\/\@\s]{0,256}$|^$'
error_message: Tag pairs should be presented in format 'key1=value1,key2=value2'
- name: namespace_option
select_value: Namespace
property_blueprints:
- name: compliance_enabled
label: Enable Compliance
type: boolean
default: false
configurable: true
description: Strongly enforce object retention for compliance. This only applies to namespace services
- name: encrypted
label: Enable Encryption
type: boolean
default: false
configurable: true
description: Enabled encryption on this service. Encryption cannot be changed after creation, so this setting cannot be changed by plan upgrades
- name: default_bucket_quota
label: Default Bucket Quota (GB)
type: integer
optional: true
configurable: true
description: Default quota applied to all buckets created within this namespace. This only applies to namespace services
- name: replication_group
label: Replication group
type: string
optional: true
configurable: true
description: (Optional) Replication group for namespace. If empty, namespace will use group specified in ECS Connection Details
- name: base_url
label: BaseURL
type: string
optional: true
configurable: true
description: (Optional) BaseURL name to use for namespace access url construction. If empty, value specified in ECS Connection Details will be used
- name: catalog_search_metadata_collection0
label: Customize Search Metadata for this Service
type: collection
configurable: true
optional: true
property_blueprints:
- name: name
label: Name
type: string
configurable: true
description: "Name of Search Metadata. Name of User provided metadata should start with prefix 'x-amz-meta-', while System metadata should be one of following: ObjectName, Owner, Size, CreateTime, LastModified"
constraints:
- must_match_regex: '^ObjectName$|^Owner$|^Size$|^CreateTime$|^LastModified$|^x-amz-meta-.*$'
error_message: "Name of User provided metadata should start with prefix 'x-amz-meta-', while System metadata should be one of following: ObjectName, Owner, Size, CreateTime, LastModified"
- name: type
label: Type
type: dropdown_select
default: system
configurable: true
description: Type of Search Metadata
options:
- name: System
label: System
- name: User
label: User
- name: datatype
label: Data Type
type: dropdown_select
default: string
configurable: true
description: "Data Type of Search Metadata. Provided System Metadata have stated data type: ObjectName - String, Owner - String, Size - Integer, CreateTime - DateTime, LastModified - DateTime"
options:
- name: String
label: String
- name: Integer
label: Integer
- name: Decimal
label: Decimal
- name: DateTime
label: DateTime
- name: catalog_plan_collection0
label: Customize Plans for this Service
type: collection
configurable: true
property_blueprints:
- name: name
label: Name
type: string
configurable: true
description: Name of this service plan to show in Cloud Foundry marketplace
- name: description
label: Description
type: string
configurable: true
description: Description of this service plan to show in Cloud Foundry marketplace
- name: repository_plan
label: Enable as Repository Plan
type: boolean
description: Use this plan for the internal metadata of the broker. This should only be enabled for one service, as the broker may pick from repository enabled plans at random on startup.
configurable: true
- name: cost_value
label: Cost
type: string
configurable: true
description: The cost for the plan based on the "Cost Unit". Should be in the form of a float -- 0.00
- name: cost_currency
label: Cost currency
type: string
configurable: true
description: The currency of a cost for the plan. Should be the three-letter ISO code (USD, EUR)
- name: cost_unit
label: Cost Unit
type: string
configurable: true
description: The unit for each to charge. By convention is should be in ALL CAPS. Examples include MONTHLY, PER_GB, PER_GB_PER_MONTH
- name: bullet_1
label: Bullet 1
type: string
configurable: true
description: Bullet point to show up about the plan in the PCF Marketplace.
optional: true
- name: bullet_2
label: Bullet 2
type: string
configurable: true
description: Bullet point to show up about the plan in the PCF Marketplace.
optional: true
- name: bullet_3
label: Bullet 3
type: string
configurable: true
description: Bullet point to show up about the plan in the PCF Marketplace.
optional: true
- name: bullet_4
label: Bullet 4
type: string
configurable: true
description: Bullet point to show up about the plan in the PCF Marketplace.
optional: true
- name: bullet_5
label: Bullet 5
type: string
configurable: true
description: Bullet point to show up about the plan in the PCF Marketplace.
optional: true
- name: quota_limit
label: Quota Limit (GB)
type: integer
optional: true
configurable: true
description: The capacity quota limit in gigabytes. A user will not be able to store more than this amount in a provisioned bucket or namespace
- name: quota_warn
label: Quota Warning (GB)
type: integer
optional: true
configurable: true
description: The capacity quota warning in gigabytes. A ECS warning notification will be generated when a user consumes this amount of storage
- name: free
label: Free of Charge
type: boolean
configurable: true
description: Whether this service is free or paid
- name: access_during_outage
label: Enable Access During Outage
type: boolean
default: true
configurable: true
description: This allows a bucket or namespace to remain online even if the primary site is offline. This is typically enabled, but can be disabled if strict data consistency is required, since actual replication is asynchronous
- name: ado_read_only
label: Enable ADO Read-Only
type: boolean
default: false
configurable: true
description: Normally, when "Access During Outage" is enabled, the bucket will continue to be writeable if the primary site is offline. This option will force the bucket to become read-only in that situation, to avoid "split-brain" conflicts (when writes happen to both sides of a network segmentation)
- name: default_retention
label: Default Retention (Seconds)
type: integer
optional: true
configurable: true
description: The default number of seconds an object should be retained. The object cannot be deleted until that time has elapsed. This can be set to -1 for infinite retention. This only applies to bucket services
- name: replication_group
label: Replication group
type: string
optional: true
configurable: true
description: (Optional) Replication group. If empty, instances are created in a replication group specified in ECS Connection Details or in service config.
- name: namespace
label: Namespace
type: string
optional: true
configurable: true
description: (Optional) Namespace for new buckets. If empty, buckets are created in namespace specified in ECS Connection Details or in service config.
- name: bucket_tags
label: Bucket Tags
type: string
optional: true
configurable: true
description: (Optional) Tags for buckets. Represented as key-value pairs in format 'key1=value1,key2=value2'
constraints:
- must_match_regex: '^[\w\d\+\-\.\_\:\/\@\s\=\,\$]*$'
error_message: 'Allowed characters are letters, numbers, and spaces representable in UTF-8, and the following characters: + - . _ : / @'
- must_match_regex: '^(.{0,128}\s?=\s?.{0,256}\s?,\s?)*.{0,128}\s?=\s?.{0,256}$|^$'
error_message: 'A tag key can be up to 128 Unicode characters in length, and tag values can be up to 256 Unicode characters in length'
- must_match_regex: '^([\w\d\+\-\.\_\$\:\/\@\s]{0,128}\s?=\s?[\w\d\+\-\.\_\$\:\/\@\s]{0,256}\s?,\s?)*[\w\d\+\-\.\_\$\:\/\@\s]{0,128}\s?=\s?[\w\d\+\-\.\_\$\:\/\@\s]{0,256}$|^$'
error_message: Tag pairs should be presented in format 'key1=value1,key2=value2'
default:
- name: 5gb
description: 5 GB free trial
cost_value: 0.00
cost_currency: USD
cost_unit: MONTHLY
quota_limit: 5
quota_warn: 4
free: true
bullet_1: Shared Object Storage
bullet_2: 5 GB Storage Limit
bullet_3: S3 Protocol Access
- name: unlimited
repository_plan: true
description: Usage based billing
cost_value: 0.03
cost_currency: USD
cost_unit: PER_GB_PER_MONTH
bullet_1: Shared Object Storage
bullet_2: Unlimited Storage
bullet_3: S3 Protocol Access
- name: catalog_services_2
label: Catalog Service 2
description: Configure Catalog Service 2
properties:
- name: catalog_services_1_active
label: Enable Catalog Service 2
default: false
description: If enabled, this service will be included in the broker catalog, which supplies the Cloud Foundry marketplace.
configurable: true
type: boolean
- name: catalog_services_1_name
label: Name
type: string
configurable: true
description: Service named used in the Cloud Foundry marketplace. This should be kept fairly short
default: ecs-namespace
- name: catalog_services_1_description
label: Description
type: string
configurable: true
description: Full description of the service appearing in the marketplace
default: Dell EMC ECS private object storage namespace
- name: catalog_services_1_tags
label: Tags
type: string_list
configurable: true
description: Tags for service. These can be used by applications or cloud services (such as Spring Cloud) to identify service offerings & instances
default: "s3,namespace"
- name: catalog_services_1_bindable
label: Bindable
type: boolean
default: true
configurable: true
description: Determines if this service can be bound to user applications. This should typically be enabled, but could be disabled for internal-only services
- name: catalog_services_1_repository_service
label: Enable as Repository Service
type: boolean
description: Use this service for the internal metadata of the broker. This should only be enabled for one service, as the broker may pick from repository enabled services at random on startup.
configurable: true
default: false
- name: catalog_services_1_display_name
label: Display Name
default: ECS Namespace
type: string
description: The name that will show in the PCF Apps Manager Marketplace
- name: catalog_services_1_image_url
label: Image URL
type: http_url
default: https://avatars.githubusercontent.com/u/12926680
description: The image that will show in the PCF Apps Manager Marketplace
- name: catalog_services_1_long_description
label: Long Description
default: Dell EMC Elastic Cloud Storage (ECS) private object storage Namespace
type: text
description: A long description to use for the service, which will show in the PCF Apps Manager Marketplace
- name: catalog_services_1_provider_display_name
label: Provider Display Name
type: string
default: Dell EMC
description: Provider name that will show in the PCF Apps Manager Marketplace
- name: catalog_services_1_documentation_url
label: Documentation URL
type: http_url
default: https://community.emc.com/docs/DOC-45012
description: The documentation link that will show in the PCF Apps Manager Marketplace
- name: catalog_services_1_support_url
label: Support URL
type: http_url
default: http://www.emc.com/products-solutions/trial-software-download/ecs.htm
description: The support link that will show in the PCF Apps Manager Marketplace
- name: catalog_service_settings1
label: Type of Service
type: selector
configurable: true
default: Namespace
description: Set the type of service to be available in the marketplace. A bucket provides a single bucket per service. A namespace provides a tentant 'area' where multiple buckets can be provisioned
option_templates:
- name: bucket_option
select_value: Bucket
property_blueprints:
- name: head_type
label: Object Head Type
type: dropdown_select
default: s3
configurable: true
description: Object protocol to use for the provisioned bucket. Today the broker only supports S3, but will support Swift, Atmos & CAS in the future. This only applies to bucket services
options:
- name: s3
label: S3
- name: file_accessible
label: Enable File Access
type: boolean
default: false
configurable: true
description: Enable NFS and HDFS access for provisioned buckets. This also enables volume mount services for the service, so a bucket can be used as an application mount point. File access cannot be changed after creation, so this setting cannot be changed by plan upgrades. This only applies to bucket services
- name: default_retention
label: Default Retention (Seconds)
type: integer
optional: true
configurable: true
description: The default number of seconds an object should be retained. The object cannot be deleted until that time has elapsed. This can be set to -1 for infinite retention. This only applies to bucket services. Setting default retention in the service will _override_ default retention at within a plan.
- name: expiration
label: Expiration (Days)
type: integer
optional: true
configurable: true
description: The default number of days an object should be retained before removal. If the lifecycle expires before the retention period expires, the object will not be deleted until the retention period is over. This only applies to bucket services.
- name: encrypted
label: Enable Encryption
type: boolean
default: false
configurable: true
description: Enabled encryption on this service. Encryption cannot be changed after creation, so this setting cannot be changed by plan upgrades
- name: replication_group
label: Replication group
type: string
optional: true
configurable: true
description: (Optional) Replication group for buckets. If empty, buckets will be in a replication group specified in ECS Connection Details
- name: namespace
label: Namespace
type: string
optional: true
configurable: true
description: (Optional) Namespace for buckets. If empty, buckets will be created in namespace specified in ECS Connection Details
- name: bucket_tags
label: Bucket Tags
type: string
optional: true
configurable: true
description: (Optional) Tags for buckets. Represented as key-value pairs in format 'key1=value1,key2=value2'
constraints:
- must_match_regex: '^[\w\d\+\-\.\_\:\/\@\s\=\,\$]*$'
error_message: 'Allowed characters are letters, numbers, and spaces representable in UTF-8, and the following characters: + - . _ : / @'
- must_match_regex: '^(.{0,128}\s?=\s?.{0,256}\s?,\s?)*.{0,128}\s?=\s?.{0,256}$|^$'
error_message: 'A tag key can be up to 128 Unicode characters in length, and tag values can be up to 256 Unicode characters in length'
- must_match_regex: '^([\w\d\+\-\.\_\$\:\/\@\s]{0,128}\s?=\s?[\w\d\+\-\.\_\$\:\/\@\s]{0,256}\s?,\s?)*[\w\d\+\-\.\_\$\:\/\@\s]{0,128}\s?=\s?[\w\d\+\-\.\_\$\:\/\@\s]{0,256}$|^$'
error_message: Tag pairs should be presented in format 'key1=value1,key2=value2'
- name: namespace_option
select_value: Namespace
property_blueprints:
- name: compliance_enabled
label: Enable Compliance
type: boolean
default: false
configurable: true
description: Strongly enforce object retention for compliance. This only applies to namespace services
- name: encrypted
label: Enable Encryption
type: boolean
default: false
configurable: true
description: Enabled encryption on this service. Encryption cannot be changed after creation, so this setting cannot be changed by plan upgrades
- name: default_bucket_quota
label: Default Bucket Quota (GB)
type: integer
optional: true
configurable: true
description: Default quota applied to all buckets created within this namespace. This only applies to namespace services
- name: replication_group
label: Replication group
type: string
optional: true
configurable: true
description: (Optional) Replication group for namespace. If empty, namespace will use group specified in ECS Connection Details
- name: base_url
label: BaseURL
type: string
optional: true
configurable: true
description: (Optional) BaseURL name to use for namespace access url construction. If empty, value specified in ECS Connection Details will be used
- name: catalog_search_metadata_collection1
label: Customize Search Metadata for this Service
type: collection
configurable: true
optional: true
property_blueprints:
- name: name
label: Name
type: string
configurable: true
description: "Name of Search Metadata. Name of User provided metadata should start with prefix 'x-amz-meta-', while System metadata should be one of following: ObjectName, Owner, Size, CreateTime, LastModified"
constraints:
- must_match_regex: '^ObjectName$|^Owner$|^Size$|^CreateTime$|^LastModified$|^x-amz-meta-.*$'
error_message: "Name of User provided metadata should start with prefix 'x-amz-meta-', while System metadata should be one of following: ObjectName, Owner, Size, CreateTime, LastModified"
- name: type
label: Type
type: dropdown_select
default: system
configurable: true
description: Type of Search Metadata
options:
- name: System
label: System
- name: User
label: User
- name: datatype
label: Data Type
type: dropdown_select
default: string
configurable: true
description: "Data Type of Search Metadata. Provided System Metadata have stated data type: ObjectName - String, Owner - String, Size - Integer, CreateTime - DateTime, LastModified - DateTime"
options:
- name: String
label: String
- name: Integer
label: Integer
- name: Decimal
label: Decimal
- name: DateTime
label: DateTime
- name: catalog_plan_collection1
label: Customize Plans for this Service
type: collection
configurable: true
property_blueprints:
- name: name
label: Name
type: string
configurable: true
description: Name of this service plan to show in Cloud Foundry marketplace
- name: description
label: Description
type: string
configurable: true
description: Description of this service plan to show in Cloud Foundry marketplace
- name: repository_plan
label: Enable as Repository Plan
type: boolean
description: Use this plan for the internal metadata of the broker. This should only be enabled for one service, as the broker may pick from repository enabled plans at random on startup.
configurable: true
- name: cost_value
label: Cost
type: string
configurable: true
description: The cost for the plan based on the "Cost Unit". Should be in the form of a float -- 0.00
- name: cost_currency
label: Cost currency
type: string
configurable: true
description: The currency of a cost for the plan. Should be the three-letter ISO code (USD, EUR)
- name: cost_unit
label: Cost Unit
type: string
configurable: true
description: The unit for each to charge. By convention is should be in ALL CAPS. Examples include MONTHLY, PER_GB, PER_GB_PER_MONTH
- name: bullet_1
label: Bullet 1
type: string
configurable: true
description: Bullet point to show up about the plan in the PCF Marketplace.
optional: true
- name: bullet_2
label: Bullet 2
type: string
configurable: true
description: Bullet point to show up about the plan in the PCF Marketplace.
optional: true
- name: bullet_3
label: Bullet 3
type: string
configurable: true
description: Bullet point to show up about the plan in the PCF Marketplace.
optional: true
- name: bullet_4
label: Bullet 4
type: string
configurable: true
description: Bullet point to show up about the plan in the PCF Marketplace.
optional: true
- name: bullet_5
label: Bullet 5
type: string
configurable: true
description: Bullet point to show up about the plan in the PCF Marketplace.
optional: true
- name: quota_limit
label: Quota Limit (GB)
type: integer
optional: true
configurable: true
description: The capacity quota limit in gigabytes. A user will not be able to store more than this amount in a provisioned bucket or namespace
- name: quota_warn
label: Quota Warning (GB)
type: integer
optional: true
configurable: true
description: The capacity quota warning in gigabytes. A ECS warning notification will be generated when a user consumes this amount of storage
- name: free
label: Free of Charge
type: boolean
configurable: true
description: Whether this service is free or paid
- name: access_during_outage
label: Enable Access During Outage
type: boolean
default: true
configurable: true
description: This allows a bucket or namespace to remain online even if the primary site is offline. This is typically enabled, but can be disabled if strict data consistency is required, since actual replication is asynchronous
- name: ado_read_only
label: Enable ADO Read-Only
type: boolean
default: false
configurable: true
description: Normally, when "Access During Outage" is enabled, the bucket will continue to be writeable if the primary site is offline. This option will force the bucket to become read-only in that situation, to avoid "split-brain" conflicts (when writes happen to both sides of a network segmentation)
- name: default_retention
label: Default Retention (Seconds)
type: integer
optional: true
configurable: true
description: The default number of seconds an object should be retained. The object cannot be deleted until that time has elapsed. This can be set to -1 for infinite retention. This only applies to bucket services
- name: replication_group
label: Replication group
type: string
optional: true
configurable: true
description: (Optional) Replication group. If empty, instances are created in a replication group specified in ECS Connection Details or in service config.
- name: namespace
label: Namespace
type: string
optional: true
configurable: true
description: (Optional) Namespace for new buckets. If empty, buckets are created in namespace specified in ECS Connection Details or in service config.
- name: bucket_tags
label: Bucket Tags
type: string
optional: true
configurable: true
description: (Optional) Tags for buckets. Represented as key-value pairs in format 'key1=value1,key2=value2'
constraints:
- must_match_regex: '^[\w\d\+\-\.\_\:\/\@\s\=\,\$]*$'
error_message: 'Allowed characters are letters, numbers, and spaces representable in UTF-8, and the following characters: + - . _ : / @'
- must_match_regex: '^(.{0,128}\s?=\s?.{0,256}\s?,\s?)*.{0,128}\s?=\s?.{0,256}$|^$'
error_message: 'A tag key can be up to 128 Unicode characters in length, and tag values can be up to 256 Unicode characters in length'
- must_match_regex: '^([\w\d\+\-\.\_\$\:\/\@\s]{0,128}\s?=\s?[\w\d\+\-\.\_\$\:\/\@\s]{0,256}\s?,\s?)*[\w\d\+\-\.\_\$\:\/\@\s]{0,128}\s?=\s?[\w\d\+\-\.\_\$\:\/\@\s]{0,256}$|^$'
error_message: Tag pairs should be presented in format 'key1=value1,key2=value2'
default:
- name: 5gb
description: 5 GB free trial
cost_value: 0.00
cost_currency: USD
cost_unit: MONTHLY
quota_limit: 5
quota_warn: 4
free: true
bullet_1: Shared Object Storage
bullet_2: 5 GB Storage Limit
bullet_3: S3 Protocol Access
- name: unlimited
repository_plan: true
description: Usage based billing
cost_value: 0.03
cost_currency: USD
cost_unit: PER_GB_PER_MONTH
bullet_1: Shared Object Storage
bullet_2: Unlimited Storage
bullet_3: S3 Protocol Access
- name: catalog_services_3
label: Catalog Service 3