-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdeployment.py
51 lines (40 loc) · 1.25 KB
/
deployment.py
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
import sys
import yaml
import json
def main():
filename=sys.argv[1]
print('Using parameter file: ' + filename)
with open(filename, 'r') as stream:
parameters = yaml.load(stream)
print('Parameters: ' + str(parameters))
template={
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"variables": {},
"resources": [],
"outputs": {}
}
username = parameters['username']
password = parameters['password']
for cluster in parameters['clusters']:
template['resources']+=generateCluster(cluster)
file = open('generatedTemplate.json', 'w')
file.write(json.dumps(template, sort_keys=True, indent=4, separators=(',', ': ')) + '\n')
file.close()
def generateCluster(cluster):
resources = []
clusterName = cluster['cluster']
region = cluster['region']
for group in cluster['groups']:
resources+=generateGroup(group)
return resources
def generateGroup(group):
groupName = group['group']
nodeCount = group['nodeCount']
nodeType = group['nodeType']
diskSize = group['diskSize']
services = group['services']
resources={}
return resources
main()