-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathazure-mongodb.yml
248 lines (248 loc) · 9.15 KB
/
azure-mongodb.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
# Copyright 2020 Pivotal Software, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http:#www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
---
version: 1
name: csb-azure-mongodb
id: e5d2898e-534a-11ea-a4e8-00155da9789e
description: The Cosmos DB service implements wire protocols for MongoDB. Azure Cosmos DB is Microsoft's globally distributed, multi-model database service for mission-critical application
display_name: Azure Cosmos DB's API for MongoDB
image_url: file://service-images/csb.png
documentation_url: https://docs.microsoft.com/en-us/azure/cosmos-db/mongodb-introduction
support_url: https://docs.microsoft.com/en-us/azure/cosmos-db/faq
tags: [azure, mongodb, preview, cosmosdb-mongo, cosmosdb-mongodb]
plan_updateable: true
plans:
- name: small
id: 4ba45322-534c-11ea-b346-00155da9789e
description: 'Mongo Cosmos DB Account, no redundancy, 400 request units'
display_name: "Small"
- name: medium
id: 6a28ad34-534c-11ea-9bac-00155da9789e
description: 'Mongo Cosmos DB Account, single read failover location, 1,000 request units'
display_name: "Medium"
properties:
request_units: 1000
failover_locations: ["westus", "eastus"]
enable_automatic_failover: true
- name: large
id: 72227eac-534c-11ea-b7ca-00155da9789e
description: 'Mongo Cosmos DB Account, single read/write failover location, 10,000 request units'
display_name: "Large"
properties:
request_units: 10000
failover_locations: ["westus", "eastus"]
enable_multiple_write_locations: true
enable_automatic_failover: true
provision:
plan_inputs:
- field_name: private_endpoint_subnet_id
type: string
details: The ID of the Subnet within which Private Endpoint for the CosmosDB account will be created.
- field_name: private_dns_zone_ids
type: array
details: Array of Private DNS Zone IDs to create private DNS zone groups for when using Private Endpoints
user_inputs:
- field_name: request_units
required: true
type: integer
details: The throughput of the MongoDB collection (RU/s). Must be set in increments of 100. The minimum value is 400.
default: 400
constraints:
maximum: 100000
minimum: 400
multipleOf: 100
- field_name: failover_locations
required: false
type: array
details: A list of location for the Cosmos DB account. The first location is the default write location
default: ["westus"]
- field_name: instance_name
type: string
details: Name used to construct resource group name when `resource_group` not passed
default: csb-mongo-${request.instance_id}
constraints:
maxLength: 98
minLength: 6
pattern: ^[a-z][a-z0-9-]+$
prohibit_update: true
- field_name: account_name
type: string
details: Account name for your Cosmos DB with API for MongoDB instance
default: csb${request.instance_id}
constraints:
maxLength: 44
minLength: 6
pattern: ^[a-z][a-z0-9-]+$
prohibit_update: true
- field_name: resource_group
type: string
details: Name for the resource group for this instance
default: ''
constraints:
maxLength: 64
minLength: 0
pattern: ^[a-z][a-z0-9-]+$|^$
prohibit_update: true
- field_name: db_name
type: string
details: Name for your Cosmos DB database with API for Mongo DB
default: csb-db${request.instance_id}
constraints:
maxLength: 255
pattern: ^[a-z][a-z0-9-_]*$
- field_name: collection_name
type: string
details: Name for your collection
default: default_collection
constraints:
maxLength: 255
- field_name: shard_key
type: string
details: Name for your shard key
default: uniqueKey
- field_name: indexes
required: false
type: string
details: A comma-separated list of non-unique indexes.
default: ""
- field_name: unique_indexes
required: false
type: string
details: A comma-separated list of unique indexes.
- field_name: location
type: string
details: The location of the MongoDB instance.
default: westus
constraints:
examples:
- westus2
- uksouth
pattern: ^[a-z][a-z0-9]+$
prohibit_update: true
- field_name: ip_range_filter
type: string
details: CosmosDB Firewall Support. This value specifies the set of IP addresses or IP address ranges in CIDR form to be included as the allowed list of client IP's for a given database account. IP addresses/ranges must be comma separated and must not contain any spaces. 0.0.0.0 allows access from Azure networks. An empty string "" allows access from all public networks.
default: "0.0.0.0"
- field_name: consistency_level
type: string
default: Session
details: The Consistency Level to use for this CosmosDB Account - can be either BoundedStaleness, Eventual, Session, Strong or ConsistentPrefix
enum:
Strong: Strong
BoundedStaleness: BoundedStaleness
Session: Session
ConsistentPrefix: ConsistentPrefix
Eventual: Eventual
- field_name: max_interval_in_seconds
type: integer
details: (Optional) When used with the Bounded Staleness consistency level, this value represents the time amount of staleness (in seconds) tolerated. Accepted range for this value is 5 - 86400 (1 day). Defaults to 5. Required when consistency_level is set to BoundedStaleness.
default: 5
constraints:
minimum: 5
maximum: 86400
- field_name: max_staleness_prefix
type: integer
details: (Optional) When used with the Bounded Staleness consistency level, this value represents the number of stale requests tolerated. Accepted range for this value is 10 – 2147483647. Defaults to 100. Required when consistency_level is set to BoundedStaleness.
default: 100
constraints:
minimum: 10
maximum: 2147483647
- field_name: enable_multiple_write_locations
type: boolean
default: false
details: Enable multi-master support for this Cosmos DB account.
- field_name: enable_automatic_failover
type: boolean
default: false
details: Enable automatic fail over for this Cosmos DB account.
- field_name: azure_tenant_id
type: string
details: Azure Tenant to create resource in
default: ${config("azure.tenant_id")}
- field_name: azure_subscription_id
type: string
details: Azure Subscription to create resource in
default: ${config("azure.subscription_id")}
- field_name: azure_client_id
type: string
details: Client ID of Azure principal
default: ${config("azure.client_id")}
- field_name: azure_client_secret
type: string
details: Client secret for Azure principal
default: ${config("azure.client_secret")}
- field_name: skip_provider_registration
type: boolean
details: Skip automatic Azure provider registration, set to true if service principal being used does not have rights to register providers
default: false
- field_name: authorized_network
type: string
default: ""
details: The subnet ID of the Azure VNET to which the instance is locked down to. If left unspecified, it will be public.
- field_name: public_network_access_enabled
type: boolean
default: true
details: Whether or not public network access is allowed for this CosmosDB account.
computed_inputs:
- name: labels
default: ${json.marshal(request.default_labels)}
overwrite: true
type: object
- name: unique_indexes
default: "_id,${shard_key}"
overwrite: false
type: string
template_refs:
main: terraform/azure-mongodb/provision/main.tf
data: terraform/azure-mongodb/provision/data.tf
outputs: terraform/azure-mongodb/provision/outputs.tf
provider: terraform/azure-mongodb/provision/provider.tf
variables: terraform/azure-mongodb/provision/variables.tf
versions: terraform/azure-mongodb/provision/versions.tf
moved: terraform/azure-mongodb/provision/moved-azure-mongodb.tf
outputs:
- field_name: uri
type: string
details: The primary master mongodb uri of the Cosmos DB Mongo Collection.
bind:
plan_inputs: []
user_inputs: []
computed_inputs: []
template_refs:
noop: terraform/azure-mongodb/bind/noop.tf
outputs: []
examples:
- name: spring-music-mongo-db
description: Create a small cosmos db with Mongo API for the spring music sample app
plan_id: 4ba45322-534c-11ea-b346-00155da9789e
provision_params: {
db_name: 'musicdb',
collection_name: 'album',
shard_key: '_id',
unique_indexes: '',
indexes: '_id'
}
bind_params: {}
- name: spring-music-mongo-db-alternate-rg
description: Create a small cosmos db with Mongo API for the spring music sample app
plan_id: 4ba45322-534c-11ea-b346-00155da9789e
provision_params: {
db_name: 'musicdb',
collection_name: 'album',
shard_key: '_id',
location: 'westus2',
unique_indexes: '',
indexes: '_id'
}
bind_params: {}