-
Notifications
You must be signed in to change notification settings - Fork 188
/
managed_clusters_agent_pool_spec_arm_types_gen.go
386 lines (289 loc) · 19.3 KB
/
managed_clusters_agent_pool_spec_arm_types_gen.go
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
// Code generated by azure-service-operator-codegen. DO NOT EDIT.
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
package v1api20230202preview
import "github.com/Azure/azure-service-operator/v2/pkg/genruntime"
type ManagedClusters_AgentPool_Spec_ARM struct {
Name string `json:"name,omitempty"`
// Properties: Properties of an agent pool.
Properties *ManagedClusterAgentPoolProfileProperties_ARM `json:"properties,omitempty"`
}
var _ genruntime.ARMResourceSpec = &ManagedClusters_AgentPool_Spec_ARM{}
// GetAPIVersion returns the ARM API version of the resource. This is always "2023-02-02-preview"
func (pool ManagedClusters_AgentPool_Spec_ARM) GetAPIVersion() string {
return string(APIVersion_Value)
}
// GetName returns the Name of the resource
func (pool *ManagedClusters_AgentPool_Spec_ARM) GetName() string {
return pool.Name
}
// GetType returns the ARM Type of the resource. This is always "Microsoft.ContainerService/managedClusters/agentPools"
func (pool *ManagedClusters_AgentPool_Spec_ARM) GetType() string {
return "Microsoft.ContainerService/managedClusters/agentPools"
}
// Properties for the container service agent pool profile.
type ManagedClusterAgentPoolProfileProperties_ARM struct {
// AvailabilityZones: The list of Availability zones to use for nodes. This can only be specified if the AgentPoolType
// property is 'VirtualMachineScaleSets'.
AvailabilityZones []string `json:"availabilityZones"`
// CapacityReservationGroupID: AKS will associate the specified agent pool with the Capacity Reservation Group.
CapacityReservationGroupID *string `json:"capacityReservationGroupID,omitempty"`
// Count: Number of agents (VMs) to host docker containers. Allowed values must be in the range of 0 to 1000 (inclusive)
// for user pools and in the range of 1 to 1000 (inclusive) for system pools. The default value is 1.
Count *int `json:"count,omitempty"`
// CreationData: CreationData to be used to specify the source Snapshot ID if the node pool will be created/upgraded using
// a snapshot.
CreationData *CreationData_ARM `json:"creationData,omitempty"`
// EnableAutoScaling: Whether to enable auto-scaler
EnableAutoScaling *bool `json:"enableAutoScaling,omitempty"`
// EnableCustomCATrust: When set to true, AKS adds a label to the node indicating that the feature is enabled and deploys a
// daemonset along with host services to sync custom certificate authorities from user-provided list of base64 encoded
// certificates into node trust stores. Defaults to false.
EnableCustomCATrust *bool `json:"enableCustomCATrust,omitempty"`
// EnableEncryptionAtHost: This is only supported on certain VM sizes and in certain Azure regions. For more information,
// see: https://docs.microsoft.com/azure/aks/enable-host-encryption
EnableEncryptionAtHost *bool `json:"enableEncryptionAtHost,omitempty"`
// EnableFIPS: See [Add a FIPS-enabled node
// pool](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#add-a-fips-enabled-node-pool-preview) for more
// details.
EnableFIPS *bool `json:"enableFIPS,omitempty"`
// EnableNodePublicIP: Some scenarios may require nodes in a node pool to receive their own dedicated public IP addresses.
// A common scenario is for gaming workloads, where a console needs to make a direct connection to a cloud virtual machine
// to minimize hops. For more information see [assigning a public IP per
// node](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#assign-a-public-ip-per-node-for-your-node-pools). The
// default is false.
EnableNodePublicIP *bool `json:"enableNodePublicIP,omitempty"`
// EnableUltraSSD: Whether to enable UltraSSD
EnableUltraSSD *bool `json:"enableUltraSSD,omitempty"`
// GpuInstanceProfile: GPUInstanceProfile to be used to specify GPU MIG instance profile for supported GPU VM SKU.
GpuInstanceProfile *GPUInstanceProfile `json:"gpuInstanceProfile,omitempty"`
HostGroupID *string `json:"hostGroupID,omitempty"`
// KubeletConfig: The Kubelet configuration on the agent pool nodes.
KubeletConfig *KubeletConfig_ARM `json:"kubeletConfig,omitempty"`
// KubeletDiskType: Determines the placement of emptyDir volumes, container runtime data root, and Kubelet ephemeral
// storage.
KubeletDiskType *KubeletDiskType `json:"kubeletDiskType,omitempty"`
// LinuxOSConfig: The OS configuration of Linux agent nodes.
LinuxOSConfig *LinuxOSConfig_ARM `json:"linuxOSConfig,omitempty"`
// MaxCount: The maximum number of nodes for auto-scaling
MaxCount *int `json:"maxCount,omitempty"`
// MaxPods: The maximum number of pods that can run on a node.
MaxPods *int `json:"maxPods,omitempty"`
// MessageOfTheDay: A base64-encoded string which will be written to /etc/motd after decoding. This allows customization of
// the message of the day for Linux nodes. It must not be specified for Windows nodes. It must be a static string (i.e.,
// will be printed raw and not be executed as a script).
MessageOfTheDay *string `json:"messageOfTheDay,omitempty"`
// MinCount: The minimum number of nodes for auto-scaling
MinCount *int `json:"minCount,omitempty"`
// Mode: A cluster must have at least one 'System' Agent Pool at all times. For additional information on agent pool
// restrictions and best practices, see: https://docs.microsoft.com/azure/aks/use-system-pools
Mode *AgentPoolMode `json:"mode,omitempty"`
// NetworkProfile: Network-related settings of an agent pool.
NetworkProfile *AgentPoolNetworkProfile_ARM `json:"networkProfile,omitempty"`
// NodeLabels: The node labels to be persisted across all nodes in agent pool.
NodeLabels map[string]string `json:"nodeLabels"`
NodePublicIPPrefixID *string `json:"nodePublicIPPrefixID,omitempty"`
// NodeTaints: The taints added to new nodes during node pool create and scale. For example, key=value:NoSchedule.
NodeTaints []string `json:"nodeTaints"`
// OrchestratorVersion: Both patch version <major.minor.patch> and <major.minor> are supported. When <major.minor> is
// specified, the latest supported patch version is chosen automatically. Updating the agent pool with the same
// <major.minor> once it has been created will not trigger an upgrade, even if a newer patch version is available. As a
// best practice, you should upgrade all node pools in an AKS cluster to the same Kubernetes version. The node pool version
// must have the same major version as the control plane. The node pool minor version must be within two minor versions of
// the control plane version. The node pool version cannot be greater than the control plane version. For more information
// see [upgrading a node pool](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#upgrade-a-node-pool).
OrchestratorVersion *string `json:"orchestratorVersion,omitempty"`
OsDiskSizeGB *ContainerServiceOSDisk `json:"osDiskSizeGB,omitempty"`
// OsDiskType: The default is 'Ephemeral' if the VM supports it and has a cache disk larger than the requested
// OSDiskSizeGB. Otherwise, defaults to 'Managed'. May not be changed after creation. For more information see [Ephemeral
// OS](https://docs.microsoft.com/azure/aks/cluster-configuration#ephemeral-os).
OsDiskType *OSDiskType `json:"osDiskType,omitempty"`
// OsSKU: Specifies the OS SKU used by the agent pool. If not specified, the default is Ubuntu if OSType=Linux or
// Windows2019 if OSType=Windows. And the default Windows OSSKU will be changed to Windows2022 after Windows2019 is
// deprecated.
OsSKU *OSSKU `json:"osSKU,omitempty"`
// OsType: The operating system type. The default is Linux.
OsType *OSType `json:"osType,omitempty"`
PodSubnetID *string `json:"podSubnetID,omitempty"`
// PowerState: When an Agent Pool is first created it is initially Running. The Agent Pool can be stopped by setting this
// field to Stopped. A stopped Agent Pool stops all of its VMs and does not accrue billing charges. An Agent Pool can only
// be stopped if it is Running and provisioning state is Succeeded
PowerState *PowerState_ARM `json:"powerState,omitempty"`
ProximityPlacementGroupID *string `json:"proximityPlacementGroupID,omitempty"`
// ScaleDownMode: This also effects the cluster autoscaler behavior. If not specified, it defaults to Delete.
ScaleDownMode *ScaleDownMode `json:"scaleDownMode,omitempty"`
// ScaleSetEvictionPolicy: This cannot be specified unless the scaleSetPriority is 'Spot'. If not specified, the default is
// 'Delete'.
ScaleSetEvictionPolicy *ScaleSetEvictionPolicy `json:"scaleSetEvictionPolicy,omitempty"`
// ScaleSetPriority: The Virtual Machine Scale Set priority. If not specified, the default is 'Regular'.
ScaleSetPriority *ScaleSetPriority `json:"scaleSetPriority,omitempty"`
// SpotMaxPrice: Possible values are any decimal value greater than zero or -1 which indicates the willingness to pay any
// on-demand price. For more details on spot pricing, see [spot VMs
// pricing](https://docs.microsoft.com/azure/virtual-machines/spot-vms#pricing)
SpotMaxPrice *float64 `json:"spotMaxPrice,omitempty"`
// Tags: The tags to be persisted on the agent pool virtual machine scale set.
Tags map[string]string `json:"tags"`
// Type: The type of Agent Pool.
Type *AgentPoolType `json:"type,omitempty"`
// UpgradeSettings: Settings for upgrading the agentpool
UpgradeSettings *AgentPoolUpgradeSettings_ARM `json:"upgradeSettings,omitempty"`
// VmSize: VM size availability varies by region. If a node contains insufficient compute resources (memory, cpu, etc) pods
// might fail to run correctly. For more details on restricted VM sizes, see:
// https://docs.microsoft.com/azure/aks/quotas-skus-regions
VmSize *string `json:"vmSize,omitempty"`
VnetSubnetID *string `json:"vnetSubnetID,omitempty"`
// WindowsProfile: The Windows agent pool's specific profile.
WindowsProfile *AgentPoolWindowsProfile_ARM `json:"windowsProfile,omitempty"`
// WorkloadRuntime: Determines the type of workload a node can run.
WorkloadRuntime *WorkloadRuntime `json:"workloadRuntime,omitempty"`
}
// Network settings of an agent pool.
type AgentPoolNetworkProfile_ARM struct {
// AllowedHostPorts: The port ranges that are allowed to access. The specified ranges are allowed to overlap.
AllowedHostPorts []PortRange_ARM `json:"allowedHostPorts"`
ApplicationSecurityGroups []string `json:"applicationSecurityGroups,omitempty"`
// NodePublicIPTags: IPTags of instance-level public IPs.
NodePublicIPTags []IPTag_ARM `json:"nodePublicIPTags"`
}
// Settings for upgrading an agentpool
type AgentPoolUpgradeSettings_ARM struct {
// MaxSurge: This can either be set to an integer (e.g. '5') or a percentage (e.g. '50%'). If a percentage is specified, it
// is the percentage of the total agent pool size at the time of the upgrade. For percentages, fractional nodes are rounded
// up. If not specified, the default is 1. For more information, including best practices, see:
// https://docs.microsoft.com/azure/aks/upgrade-cluster#customize-node-surge-upgrade
MaxSurge *string `json:"maxSurge,omitempty"`
}
// The Windows agent pool's specific profile.
type AgentPoolWindowsProfile_ARM struct {
// DisableOutboundNat: The default value is false. Outbound NAT can only be disabled if the cluster outboundType is NAT
// Gateway and the Windows agent pool does not have node public IP enabled.
DisableOutboundNat *bool `json:"disableOutboundNat,omitempty"`
}
// See [AKS custom node configuration](https://docs.microsoft.com/azure/aks/custom-node-configuration) for more details.
type KubeletConfig_ARM struct {
// AllowedUnsafeSysctls: Allowed list of unsafe sysctls or unsafe sysctl patterns (ending in `*`).
AllowedUnsafeSysctls []string `json:"allowedUnsafeSysctls"`
// ContainerLogMaxFiles: The maximum number of container log files that can be present for a container. The number must be
// ≥ 2.
ContainerLogMaxFiles *int `json:"containerLogMaxFiles,omitempty"`
// ContainerLogMaxSizeMB: The maximum size (e.g. 10Mi) of container log file before it is rotated.
ContainerLogMaxSizeMB *int `json:"containerLogMaxSizeMB,omitempty"`
// CpuCfsQuota: The default is true.
CpuCfsQuota *bool `json:"cpuCfsQuota,omitempty"`
// CpuCfsQuotaPeriod: The default is '100ms.' Valid values are a sequence of decimal numbers with an optional fraction and
// a unit suffix. For example: '300ms', '2h45m'. Supported units are 'ns', 'us', 'ms', 's', 'm', and 'h'.
CpuCfsQuotaPeriod *string `json:"cpuCfsQuotaPeriod,omitempty"`
// CpuManagerPolicy: The default is 'none'. See [Kubernetes CPU management
// policies](https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/#cpu-management-policies) for more
// information. Allowed values are 'none' and 'static'.
CpuManagerPolicy *string `json:"cpuManagerPolicy,omitempty"`
// FailSwapOn: If set to true it will make the Kubelet fail to start if swap is enabled on the node.
FailSwapOn *bool `json:"failSwapOn,omitempty"`
// ImageGcHighThreshold: To disable image garbage collection, set to 100. The default is 85%
ImageGcHighThreshold *int `json:"imageGcHighThreshold,omitempty"`
// ImageGcLowThreshold: This cannot be set higher than imageGcHighThreshold. The default is 80%
ImageGcLowThreshold *int `json:"imageGcLowThreshold,omitempty"`
// PodMaxPids: The maximum number of processes per pod.
PodMaxPids *int `json:"podMaxPids,omitempty"`
// TopologyManagerPolicy: For more information see [Kubernetes Topology
// Manager](https://kubernetes.io/docs/tasks/administer-cluster/topology-manager). The default is 'none'. Allowed values
// are 'none', 'best-effort', 'restricted', and 'single-numa-node'.
TopologyManagerPolicy *string `json:"topologyManagerPolicy,omitempty"`
}
// See [AKS custom node configuration](https://docs.microsoft.com/azure/aks/custom-node-configuration) for more details.
type LinuxOSConfig_ARM struct {
// SwapFileSizeMB: The size in MB of a swap file that will be created on each node.
SwapFileSizeMB *int `json:"swapFileSizeMB,omitempty"`
// Sysctls: Sysctl settings for Linux agent nodes.
Sysctls *SysctlConfig_ARM `json:"sysctls,omitempty"`
// TransparentHugePageDefrag: Valid values are 'always', 'defer', 'defer+madvise', 'madvise' and 'never'. The default is
// 'madvise'. For more information see [Transparent
// Hugepages](https://www.kernel.org/doc/html/latest/admin-guide/mm/transhuge.html#admin-guide-transhuge).
TransparentHugePageDefrag *string `json:"transparentHugePageDefrag,omitempty"`
// TransparentHugePageEnabled: Valid values are 'always', 'madvise', and 'never'. The default is 'always'. For more
// information see [Transparent
// Hugepages](https://www.kernel.org/doc/html/latest/admin-guide/mm/transhuge.html#admin-guide-transhuge).
TransparentHugePageEnabled *string `json:"transparentHugePageEnabled,omitempty"`
}
// Describes the Power State of the cluster
type PowerState_ARM struct {
// Code: Tells whether the cluster is Running or Stopped
Code *PowerState_Code `json:"code,omitempty"`
}
// Contains the IPTag associated with the object.
type IPTag_ARM struct {
// IpTagType: The IP tag type. Example: RoutingPreference.
IpTagType *string `json:"ipTagType,omitempty"`
// Tag: The value of the IP tag associated with the public IP. Example: Internet.
Tag *string `json:"tag,omitempty"`
}
// The port range.
type PortRange_ARM struct {
// PortEnd: The maximum port that is included in the range. It should be ranged from 1 to 65535, and be greater than or
// equal to portStart.
PortEnd *int `json:"portEnd,omitempty"`
// PortStart: The minimum port that is included in the range. It should be ranged from 1 to 65535, and be less than or
// equal to portEnd.
PortStart *int `json:"portStart,omitempty"`
// Protocol: The network protocol of the port.
Protocol *PortRange_Protocol `json:"protocol,omitempty"`
}
// Sysctl settings for Linux agent nodes.
type SysctlConfig_ARM struct {
// FsAioMaxNr: Sysctl setting fs.aio-max-nr.
FsAioMaxNr *int `json:"fsAioMaxNr,omitempty"`
// FsFileMax: Sysctl setting fs.file-max.
FsFileMax *int `json:"fsFileMax,omitempty"`
// FsInotifyMaxUserWatches: Sysctl setting fs.inotify.max_user_watches.
FsInotifyMaxUserWatches *int `json:"fsInotifyMaxUserWatches,omitempty"`
// FsNrOpen: Sysctl setting fs.nr_open.
FsNrOpen *int `json:"fsNrOpen,omitempty"`
// KernelThreadsMax: Sysctl setting kernel.threads-max.
KernelThreadsMax *int `json:"kernelThreadsMax,omitempty"`
// NetCoreNetdevMaxBacklog: Sysctl setting net.core.netdev_max_backlog.
NetCoreNetdevMaxBacklog *int `json:"netCoreNetdevMaxBacklog,omitempty"`
// NetCoreOptmemMax: Sysctl setting net.core.optmem_max.
NetCoreOptmemMax *int `json:"netCoreOptmemMax,omitempty"`
// NetCoreRmemDefault: Sysctl setting net.core.rmem_default.
NetCoreRmemDefault *int `json:"netCoreRmemDefault,omitempty"`
// NetCoreRmemMax: Sysctl setting net.core.rmem_max.
NetCoreRmemMax *int `json:"netCoreRmemMax,omitempty"`
// NetCoreSomaxconn: Sysctl setting net.core.somaxconn.
NetCoreSomaxconn *int `json:"netCoreSomaxconn,omitempty"`
// NetCoreWmemDefault: Sysctl setting net.core.wmem_default.
NetCoreWmemDefault *int `json:"netCoreWmemDefault,omitempty"`
// NetCoreWmemMax: Sysctl setting net.core.wmem_max.
NetCoreWmemMax *int `json:"netCoreWmemMax,omitempty"`
// NetIpv4IpLocalPortRange: Sysctl setting net.ipv4.ip_local_port_range.
NetIpv4IpLocalPortRange *string `json:"netIpv4IpLocalPortRange,omitempty"`
// NetIpv4NeighDefaultGcThresh1: Sysctl setting net.ipv4.neigh.default.gc_thresh1.
NetIpv4NeighDefaultGcThresh1 *int `json:"netIpv4NeighDefaultGcThresh1,omitempty"`
// NetIpv4NeighDefaultGcThresh2: Sysctl setting net.ipv4.neigh.default.gc_thresh2.
NetIpv4NeighDefaultGcThresh2 *int `json:"netIpv4NeighDefaultGcThresh2,omitempty"`
// NetIpv4NeighDefaultGcThresh3: Sysctl setting net.ipv4.neigh.default.gc_thresh3.
NetIpv4NeighDefaultGcThresh3 *int `json:"netIpv4NeighDefaultGcThresh3,omitempty"`
// NetIpv4TcpFinTimeout: Sysctl setting net.ipv4.tcp_fin_timeout.
NetIpv4TcpFinTimeout *int `json:"netIpv4TcpFinTimeout,omitempty"`
// NetIpv4TcpKeepaliveProbes: Sysctl setting net.ipv4.tcp_keepalive_probes.
NetIpv4TcpKeepaliveProbes *int `json:"netIpv4TcpKeepaliveProbes,omitempty"`
// NetIpv4TcpKeepaliveTime: Sysctl setting net.ipv4.tcp_keepalive_time.
NetIpv4TcpKeepaliveTime *int `json:"netIpv4TcpKeepaliveTime,omitempty"`
// NetIpv4TcpMaxSynBacklog: Sysctl setting net.ipv4.tcp_max_syn_backlog.
NetIpv4TcpMaxSynBacklog *int `json:"netIpv4TcpMaxSynBacklog,omitempty"`
// NetIpv4TcpMaxTwBuckets: Sysctl setting net.ipv4.tcp_max_tw_buckets.
NetIpv4TcpMaxTwBuckets *int `json:"netIpv4TcpMaxTwBuckets,omitempty"`
// NetIpv4TcpTwReuse: Sysctl setting net.ipv4.tcp_tw_reuse.
NetIpv4TcpTwReuse *bool `json:"netIpv4TcpTwReuse,omitempty"`
// NetIpv4TcpkeepaliveIntvl: Sysctl setting net.ipv4.tcp_keepalive_intvl.
NetIpv4TcpkeepaliveIntvl *int `json:"netIpv4TcpkeepaliveIntvl,omitempty"`
// NetNetfilterNfConntrackBuckets: Sysctl setting net.netfilter.nf_conntrack_buckets.
NetNetfilterNfConntrackBuckets *int `json:"netNetfilterNfConntrackBuckets,omitempty"`
// NetNetfilterNfConntrackMax: Sysctl setting net.netfilter.nf_conntrack_max.
NetNetfilterNfConntrackMax *int `json:"netNetfilterNfConntrackMax,omitempty"`
// VmMaxMapCount: Sysctl setting vm.max_map_count.
VmMaxMapCount *int `json:"vmMaxMapCount,omitempty"`
// VmSwappiness: Sysctl setting vm.swappiness.
VmSwappiness *int `json:"vmSwappiness,omitempty"`
// VmVfsCachePressure: Sysctl setting vm.vfs_cache_pressure.
VmVfsCachePressure *int `json:"vmVfsCachePressure,omitempty"`
}