1
+ {
2
+ "$schema" : " https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#" ,
3
+ "contentVersion" : " 1.0.0.0" ,
4
+ "parameters" : {
5
+ "kubernetesClusterName" : {
6
+ "type" : " string" ,
7
+ "metadata" : {
8
+ "description" : " The name of Nexus Kubernetes cluster"
9
+ }
10
+ },
11
+ "location" : {
12
+ "type" : " string" ,
13
+ "defaultValue" : " [resourceGroup().location]" ,
14
+ "metadata" : {
15
+ "description" : " The Azure region where the cluster is to be deployed"
16
+ }
17
+ },
18
+ "extendedLocation" : {
19
+ "type" : " string" ,
20
+ "metadata" : {
21
+ "description" : " The custom location of the Nexus instance"
22
+ }
23
+ },
24
+ "tags" : {
25
+ "type" : " object" ,
26
+ "defaultValue" : {},
27
+ "metadata" : {
28
+ "description" : " Tags to be associated with the resource"
29
+ }
30
+ },
31
+ "adminUsername" : {
32
+ "type" : " string" ,
33
+ "defaultValue" : " azureuser" ,
34
+ "metadata" : {
35
+ "description" : " The username for the administrative account on the cluster"
36
+ }
37
+ },
38
+ "sshPublicKey" : {
39
+ "type" : " string" ,
40
+ "defaultValue" : " " ,
41
+ "metadata" : {
42
+ "description" : " The SSH public key that will be associated with the 'azureuser' user for secure remote login"
43
+ }
44
+ },
45
+ "agentPoolNodeCount" : {
46
+ "type" : " int" ,
47
+ "defaultValue" : 1 ,
48
+ "metadata" : {
49
+ "description" : " Number of nodes in the agent pool"
50
+ }
51
+ },
52
+ "agentPoolName" : {
53
+ "type" : " string" ,
54
+ "defaultValue" : " nodepool-2" ,
55
+ "metadata" : {
56
+ "description" : " Agent pool name"
57
+ }
58
+ },
59
+ "agentVmSku" : {
60
+ "type" : " string" ,
61
+ "defaultValue" : " NC_M4_v1" ,
62
+ "allowedValues" : [
63
+ " NC_M4_v1" ,
64
+ " NC_M8_v1" ,
65
+ " NC_M12_v1" ,
66
+ " NC_M16_v1" ,
67
+ " NC_M32_v1" ,
68
+ " NC_M36_v1" ,
69
+ " NC_M44_v1"
70
+ ],
71
+ "metadata" : {
72
+ "description" : " VM size of the agent nodes. Allowed values: NC_M4_v1, NC_M8_v1, NC_M12_v1, NC_M16_v1, NC_M32_v1, NC_M36_v1, NC_M44_v1"
73
+ }
74
+ },
75
+ "agentPoolZones" : {
76
+ "type" : " array" ,
77
+ "defaultValue" : [],
78
+ "metadata" : {
79
+ "description" : " The zones/racks used for placement of the agent pool nodes"
80
+ }
81
+ /* array of strings Example: ["1", "2", "3"] */
82
+ },
83
+ "agentPoolMode" : {
84
+ "type" : " string" ,
85
+ "defaultValue" : " User" ,
86
+ "metadata" : {
87
+ "description" : " Agent pool mode"
88
+ }
89
+ },
90
+ "agentOptions" : {
91
+ "type" : " object" ,
92
+ "defaultValue" : {},
93
+ "metadata" : {
94
+ "description" : " The configurations for the initial agent pool"
95
+ }
96
+ /*
97
+ "hugepagesCount" : int,
98
+ "hugepagesSize" : " 2M/1G"
99
+ */
100
+ },
101
+ "labels" : {
102
+ "type" : " array" ,
103
+ "defaultValue" : [],
104
+ "metadata" : {
105
+ "description" : " The labels to assign to the nodes in the cluster for identification and organization"
106
+ }
107
+ /*
108
+ {
109
+ "key" : " string" ,
110
+ "value" : " string"
111
+ }
112
+ */
113
+ },
114
+ "taints" : {
115
+ "type" : " array" ,
116
+ "defaultValue" : [],
117
+ "metadata" : {
118
+ "description" : " The taints to apply to the nodes in the cluster to restrict which pods can be scheduled on them"
119
+ }
120
+ /*
121
+ {
122
+ "key" : " string" ,
123
+ "value" : " string:NoSchedule|PreferNoSchedule|NoExecute"
124
+ }
125
+ */
126
+ },
127
+ "l2Networks" : {
128
+ "type" : " array" ,
129
+ "defaultValue" : [],
130
+ "metadata" : {
131
+ "description" : " The Layer 2 networks to connect to the agent pool"
132
+ }
133
+ /*
134
+ {
135
+ "networkId" : " string" ,
136
+ "pluginType" : " SRIOV|DPDK|OSDevice|MACVLAN|IPVLAN"
137
+ }
138
+ */
139
+ },
140
+ "l3Networks" : {
141
+ "type" : " array" ,
142
+ "defaultValue" : [],
143
+ "metadata" : {
144
+ "description" : " The Layer 3 networks to connect to the agent pool"
145
+ }
146
+ /*
147
+ {
148
+ "ipamEnabled" : " True/False" ,
149
+ "networkId" : " string" ,
150
+ "pluginType" : " SRIOV|DPDK|OSDevice|MACVLAN|IPVLAN"
151
+ }
152
+ */
153
+ },
154
+ "trunkedNetworks" : {
155
+ "type" : " array" ,
156
+ "defaultValue" : [],
157
+ "metadata" : {
158
+ "description" : " The trunked networks to connect to the agent pool"
159
+ }
160
+ /*
161
+ {
162
+ "networkId" : " string" ,
163
+ "pluginType" : " SRIOV|DPDK|OSDevice|MACVLAN|IPVLAN"
164
+ }
165
+ */
166
+ }
167
+ },
168
+ "resources" : [
169
+ {
170
+ "type" : " Microsoft.NetworkCloud/kubernetesClusters/agentpools" ,
171
+ "apiVersion" : " 2023-05-01-preview" ,
172
+ "name" : " [concat(parameters('kubernetesClusterName'), '/', parameters('kubernetesClusterName'), '-', parameters('agentPoolName'))]" ,
173
+ "location" : " [parameters('location')]" ,
174
+ "extendedLocation" : {
175
+ "name" : " [parameters('extendedLocation')]" ,
176
+ "type" : " CustomLocation"
177
+ },
178
+ "properties" : {
179
+ "count" : " [parameters('agentPoolNodeCount')]" ,
180
+ "mode" : " [parameters('agentPoolMode')]" ,
181
+ "vmSkuName" : " [parameters('agentVmSku')]" ,
182
+ "labels" : " [if(empty(parameters('labels')), json('null'), parameters('labels'))]" ,
183
+ "taints" : " [if(empty(parameters('taints')), json('null'), parameters('taints'))]" ,
184
+ "agentOptions" : " [if(empty(parameters('agentOptions')), json('null'), parameters('agentOptions'))]" ,
185
+ "attachedNetworkConfiguration" : {
186
+ "l2Networks" : " [if(empty(parameters('l2Networks')), json('null'), parameters('l2Networks'))]" ,
187
+ "l3Networks" : " [if(empty(parameters('l3Networks')), json('null'), parameters('l3Networks'))]" ,
188
+ "trunkedNetworks" : " [if(empty(parameters('trunkedNetworks')), json('null'), parameters('trunkedNetworks'))]"
189
+ },
190
+ "availabilityZones" : " [if(empty(parameters('agentPoolZones')), json('null'), parameters('agentPoolZones'))]" ,
191
+ "upgradeSettings" : {
192
+ "maxSurge" : " 1"
193
+ }
194
+ },
195
+ "dependsOn" : []
196
+ }
197
+ ]
198
+ }
0 commit comments