Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.pulumi.azure.containerservice.inputs.KubernetesClusterDefaultNodePoolArgs Maven / Gradle / Ivy
Go to download
A Pulumi package for creating and managing Microsoft Azure cloud resources, based on the Terraform azurerm provider. We recommend using the [Azure Native provider](https://github.com/pulumi/pulumi-azure-native) to provision Azure infrastructure. Azure Native provides complete coverage of Azure resources and same-day access to new resources and resource updates.
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
package com.pulumi.azure.containerservice.inputs;
import com.pulumi.azure.containerservice.inputs.KubernetesClusterDefaultNodePoolKubeletConfigArgs;
import com.pulumi.azure.containerservice.inputs.KubernetesClusterDefaultNodePoolLinuxOsConfigArgs;
import com.pulumi.azure.containerservice.inputs.KubernetesClusterDefaultNodePoolNodeNetworkProfileArgs;
import com.pulumi.azure.containerservice.inputs.KubernetesClusterDefaultNodePoolUpgradeSettingsArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;
public final class KubernetesClusterDefaultNodePoolArgs extends com.pulumi.resources.ResourceArgs {
public static final KubernetesClusterDefaultNodePoolArgs Empty = new KubernetesClusterDefaultNodePoolArgs();
/**
* Should [the Kubernetes Auto Scaler](https://docs.microsoft.com/azure/aks/cluster-autoscaler) be enabled for this Node Pool?
*
* > **Note:** This requires that the `type` is set to `VirtualMachineScaleSets`.
*
* > **Note:** If you're using AutoScaling, you may wish to use [`ignoreChanges` functionality](https://www.pulumi.com/docs/intro/concepts/programming-model/#ignorechanges) to ignore changes to the `node_count` field.
*
*/
@Import(name="autoScalingEnabled")
private @Nullable Output autoScalingEnabled;
/**
* @return Should [the Kubernetes Auto Scaler](https://docs.microsoft.com/azure/aks/cluster-autoscaler) be enabled for this Node Pool?
*
* > **Note:** This requires that the `type` is set to `VirtualMachineScaleSets`.
*
* > **Note:** If you're using AutoScaling, you may wish to use [`ignoreChanges` functionality](https://www.pulumi.com/docs/intro/concepts/programming-model/#ignorechanges) to ignore changes to the `node_count` field.
*
*/
public Optional> autoScalingEnabled() {
return Optional.ofNullable(this.autoScalingEnabled);
}
/**
* Specifies the ID of the Capacity Reservation Group within which this AKS Cluster should be created. Changing this forces a new resource to be created.
*
*/
@Import(name="capacityReservationGroupId")
private @Nullable Output capacityReservationGroupId;
/**
* @return Specifies the ID of the Capacity Reservation Group within which this AKS Cluster should be created. Changing this forces a new resource to be created.
*
*/
public Optional> capacityReservationGroupId() {
return Optional.ofNullable(this.capacityReservationGroupId);
}
/**
* Should the nodes in this Node Pool have Federal Information Processing Standard enabled? `temporary_name_for_rotation` must be specified when changing this block. Changing this forces a new resource to be created.
*
*/
@Import(name="fipsEnabled")
private @Nullable Output fipsEnabled;
/**
* @return Should the nodes in this Node Pool have Federal Information Processing Standard enabled? `temporary_name_for_rotation` must be specified when changing this block. Changing this forces a new resource to be created.
*
*/
public Optional> fipsEnabled() {
return Optional.ofNullable(this.fipsEnabled);
}
/**
* Specifies the GPU MIG instance profile for supported GPU VM SKU. The allowed values are `MIG1g`, `MIG2g`, `MIG3g`, `MIG4g` and `MIG7g`. Changing this forces a new resource to be created.
*
*/
@Import(name="gpuInstance")
private @Nullable Output gpuInstance;
/**
* @return Specifies the GPU MIG instance profile for supported GPU VM SKU. The allowed values are `MIG1g`, `MIG2g`, `MIG3g`, `MIG4g` and `MIG7g`. Changing this forces a new resource to be created.
*
*/
public Optional> gpuInstance() {
return Optional.ofNullable(this.gpuInstance);
}
/**
* Should the nodes in the Default Node Pool have host encryption enabled? `temporary_name_for_rotation` must be specified when changing this property.
*
* > **Note:** This requires that the Feature `Microsoft.ContainerService/EnableEncryptionAtHost` is enabled and the Resource Provider is registered.
*
*/
@Import(name="hostEncryptionEnabled")
private @Nullable Output hostEncryptionEnabled;
/**
* @return Should the nodes in the Default Node Pool have host encryption enabled? `temporary_name_for_rotation` must be specified when changing this property.
*
* > **Note:** This requires that the Feature `Microsoft.ContainerService/EnableEncryptionAtHost` is enabled and the Resource Provider is registered.
*
*/
public Optional> hostEncryptionEnabled() {
return Optional.ofNullable(this.hostEncryptionEnabled);
}
/**
* Specifies the ID of the Host Group within which this AKS Cluster should be created. Changing this forces a new resource to be created.
*
*/
@Import(name="hostGroupId")
private @Nullable Output hostGroupId;
/**
* @return Specifies the ID of the Host Group within which this AKS Cluster should be created. Changing this forces a new resource to be created.
*
*/
public Optional> hostGroupId() {
return Optional.ofNullable(this.hostGroupId);
}
/**
* A `kubelet_config` block as defined below. `temporary_name_for_rotation` must be specified when changing this block.
*
*/
@Import(name="kubeletConfig")
private @Nullable Output kubeletConfig;
/**
* @return A `kubelet_config` block as defined below. `temporary_name_for_rotation` must be specified when changing this block.
*
*/
public Optional> kubeletConfig() {
return Optional.ofNullable(this.kubeletConfig);
}
/**
* The type of disk used by kubelet. Possible values are `OS` and `Temporary`.
*
*/
@Import(name="kubeletDiskType")
private @Nullable Output kubeletDiskType;
/**
* @return The type of disk used by kubelet. Possible values are `OS` and `Temporary`.
*
*/
public Optional> kubeletDiskType() {
return Optional.ofNullable(this.kubeletDiskType);
}
/**
* A `linux_os_config` block as defined below. `temporary_name_for_rotation` must be specified when changing this block.
*
*/
@Import(name="linuxOsConfig")
private @Nullable Output linuxOsConfig;
/**
* @return A `linux_os_config` block as defined below. `temporary_name_for_rotation` must be specified when changing this block.
*
*/
public Optional> linuxOsConfig() {
return Optional.ofNullable(this.linuxOsConfig);
}
@Import(name="maxCount")
private @Nullable Output maxCount;
public Optional> maxCount() {
return Optional.ofNullable(this.maxCount);
}
/**
* The maximum number of pods that can run on each agent. `temporary_name_for_rotation` must be specified when changing this property.
*
*/
@Import(name="maxPods")
private @Nullable Output maxPods;
/**
* @return The maximum number of pods that can run on each agent. `temporary_name_for_rotation` must be specified when changing this property.
*
*/
public Optional> maxPods() {
return Optional.ofNullable(this.maxPods);
}
@Import(name="minCount")
private @Nullable Output minCount;
public Optional> minCount() {
return Optional.ofNullable(this.minCount);
}
/**
* The name which should be used for the default Kubernetes Node Pool.
*
*/
@Import(name="name", required=true)
private Output name;
/**
* @return The name which should be used for the default Kubernetes Node Pool.
*
*/
public Output name() {
return this.name;
}
@Import(name="nodeCount")
private @Nullable Output nodeCount;
public Optional> nodeCount() {
return Optional.ofNullable(this.nodeCount);
}
/**
* A map of Kubernetes labels which should be applied to nodes in the Default Node Pool.
*
*/
@Import(name="nodeLabels")
private @Nullable Output> nodeLabels;
/**
* @return A map of Kubernetes labels which should be applied to nodes in the Default Node Pool.
*
*/
public Optional>> nodeLabels() {
return Optional.ofNullable(this.nodeLabels);
}
/**
* A `node_network_profile` block as documented below.
*
*/
@Import(name="nodeNetworkProfile")
private @Nullable Output nodeNetworkProfile;
/**
* @return A `node_network_profile` block as documented below.
*
*/
public Optional> nodeNetworkProfile() {
return Optional.ofNullable(this.nodeNetworkProfile);
}
/**
* Should nodes in this Node Pool have a Public IP Address? `temporary_name_for_rotation` must be specified when changing this property.
*
*/
@Import(name="nodePublicIpEnabled")
private @Nullable Output nodePublicIpEnabled;
/**
* @return Should nodes in this Node Pool have a Public IP Address? `temporary_name_for_rotation` must be specified when changing this property.
*
*/
public Optional> nodePublicIpEnabled() {
return Optional.ofNullable(this.nodePublicIpEnabled);
}
/**
* Resource ID for the Public IP Addresses Prefix for the nodes in this Node Pool. `node_public_ip_enabled` should be `true`. Changing this forces a new resource to be created.
*
*/
@Import(name="nodePublicIpPrefixId")
private @Nullable Output nodePublicIpPrefixId;
/**
* @return Resource ID for the Public IP Addresses Prefix for the nodes in this Node Pool. `node_public_ip_enabled` should be `true`. Changing this forces a new resource to be created.
*
*/
public Optional> nodePublicIpPrefixId() {
return Optional.ofNullable(this.nodePublicIpPrefixId);
}
/**
* Enabling this option will taint default node pool with `CriticalAddonsOnly=true:NoSchedule` taint. `temporary_name_for_rotation` must be specified when changing this property.
*
*/
@Import(name="onlyCriticalAddonsEnabled")
private @Nullable Output onlyCriticalAddonsEnabled;
/**
* @return Enabling this option will taint default node pool with `CriticalAddonsOnly=true:NoSchedule` taint. `temporary_name_for_rotation` must be specified when changing this property.
*
*/
public Optional> onlyCriticalAddonsEnabled() {
return Optional.ofNullable(this.onlyCriticalAddonsEnabled);
}
/**
* Version of Kubernetes used for the Agents. If not specified, the default node pool will be created with the version specified by `kubernetes_version`. If both are unspecified, the latest recommended version will be used at provisioning time (but won't auto-upgrade). AKS does not require an exact patch version to be specified, minor version aliases such as `1.22` are also supported. - The minor version's latest GA patch is automatically chosen in that case. More details can be found in [the documentation](https://docs.microsoft.com/en-us/azure/aks/supported-kubernetes-versions?tabs=azure-cli#alias-minor-version).
*
* > **Note:** This version must be supported by the Kubernetes Cluster - as such the version of Kubernetes used on the Cluster/Control Plane may need to be upgraded first.
*
*/
@Import(name="orchestratorVersion")
private @Nullable Output orchestratorVersion;
/**
* @return Version of Kubernetes used for the Agents. If not specified, the default node pool will be created with the version specified by `kubernetes_version`. If both are unspecified, the latest recommended version will be used at provisioning time (but won't auto-upgrade). AKS does not require an exact patch version to be specified, minor version aliases such as `1.22` are also supported. - The minor version's latest GA patch is automatically chosen in that case. More details can be found in [the documentation](https://docs.microsoft.com/en-us/azure/aks/supported-kubernetes-versions?tabs=azure-cli#alias-minor-version).
*
* > **Note:** This version must be supported by the Kubernetes Cluster - as such the version of Kubernetes used on the Cluster/Control Plane may need to be upgraded first.
*
*/
public Optional> orchestratorVersion() {
return Optional.ofNullable(this.orchestratorVersion);
}
/**
* The size of the OS Disk which should be used for each agent in the Node Pool. `temporary_name_for_rotation` must be specified when attempting a change.
*
*/
@Import(name="osDiskSizeGb")
private @Nullable Output osDiskSizeGb;
/**
* @return The size of the OS Disk which should be used for each agent in the Node Pool. `temporary_name_for_rotation` must be specified when attempting a change.
*
*/
public Optional> osDiskSizeGb() {
return Optional.ofNullable(this.osDiskSizeGb);
}
/**
* The type of disk which should be used for the Operating System. Possible values are `Ephemeral` and `Managed`. Defaults to `Managed`. `temporary_name_for_rotation` must be specified when attempting a change.
*
*/
@Import(name="osDiskType")
private @Nullable Output osDiskType;
/**
* @return The type of disk which should be used for the Operating System. Possible values are `Ephemeral` and `Managed`. Defaults to `Managed`. `temporary_name_for_rotation` must be specified when attempting a change.
*
*/
public Optional> osDiskType() {
return Optional.ofNullable(this.osDiskType);
}
/**
* Specifies the OS SKU used by the agent pool. Possible values are `AzureLinux`, `Ubuntu`, `Windows2019` and `Windows2022`. 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. Changing this from `AzureLinux` or `Ubuntu` to `AzureLinux` or `Ubuntu` will not replace the resource, otherwise `temporary_name_for_rotation` must be specified when attempting a change.
*
*/
@Import(name="osSku")
private @Nullable Output osSku;
/**
* @return Specifies the OS SKU used by the agent pool. Possible values are `AzureLinux`, `Ubuntu`, `Windows2019` and `Windows2022`. 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. Changing this from `AzureLinux` or `Ubuntu` to `AzureLinux` or `Ubuntu` will not replace the resource, otherwise `temporary_name_for_rotation` must be specified when attempting a change.
*
*/
public Optional> osSku() {
return Optional.ofNullable(this.osSku);
}
/**
* The ID of the Subnet where the pods in the default Node Pool should exist.
*
*/
@Import(name="podSubnetId")
private @Nullable Output podSubnetId;
/**
* @return The ID of the Subnet where the pods in the default Node Pool should exist.
*
*/
public Optional> podSubnetId() {
return Optional.ofNullable(this.podSubnetId);
}
/**
* The ID of the Proximity Placement Group. Changing this forces a new resource to be created.
*
*/
@Import(name="proximityPlacementGroupId")
private @Nullable Output proximityPlacementGroupId;
/**
* @return The ID of the Proximity Placement Group. Changing this forces a new resource to be created.
*
*/
public Optional> proximityPlacementGroupId() {
return Optional.ofNullable(this.proximityPlacementGroupId);
}
/**
* Specifies the autoscaling behaviour of the Kubernetes Cluster. Allowed values are `Delete` and `Deallocate`. Defaults to `Delete`.
*
*/
@Import(name="scaleDownMode")
private @Nullable Output scaleDownMode;
/**
* @return Specifies the autoscaling behaviour of the Kubernetes Cluster. Allowed values are `Delete` and `Deallocate`. Defaults to `Delete`.
*
*/
public Optional> scaleDownMode() {
return Optional.ofNullable(this.scaleDownMode);
}
/**
* The ID of the Snapshot which should be used to create this default Node Pool. `temporary_name_for_rotation` must be specified when changing this property.
*
*/
@Import(name="snapshotId")
private @Nullable Output snapshotId;
/**
* @return The ID of the Snapshot which should be used to create this default Node Pool. `temporary_name_for_rotation` must be specified when changing this property.
*
*/
public Optional> snapshotId() {
return Optional.ofNullable(this.snapshotId);
}
/**
* A mapping of tags to assign to the Node Pool.
*
* > At this time there's a bug in the AKS API where Tags for a Node Pool are not stored in the correct case - you may wish to use `ignore_changes` functionality to ignore changes to the casing until this is fixed in the AKS API.
*
*/
@Import(name="tags")
private @Nullable Output> tags;
/**
* @return A mapping of tags to assign to the Node Pool.
*
* > At this time there's a bug in the AKS API where Tags for a Node Pool are not stored in the correct case - you may wish to use `ignore_changes` functionality to ignore changes to the casing until this is fixed in the AKS API.
*
*/
public Optional>> tags() {
return Optional.ofNullable(this.tags);
}
/**
* Specifies the name of the temporary node pool used to cycle the default node pool for VM resizing.
*
*/
@Import(name="temporaryNameForRotation")
private @Nullable Output temporaryNameForRotation;
/**
* @return Specifies the name of the temporary node pool used to cycle the default node pool for VM resizing.
*
*/
public Optional> temporaryNameForRotation() {
return Optional.ofNullable(this.temporaryNameForRotation);
}
/**
* The type of Node Pool which should be created. Possible values are `VirtualMachineScaleSets`. Defaults to `VirtualMachineScaleSets`. Changing this forces a new resource to be created.
*
* > **Note:** When creating a cluster that supports multiple node pools, the cluster must use `VirtualMachineScaleSets`. For more information on the limitations of clusters using multiple node pools see [the documentation](https://learn.microsoft.com/en-us/azure/aks/use-multiple-node-pools#limitations).
*
*/
@Import(name="type")
private @Nullable Output type;
/**
* @return The type of Node Pool which should be created. Possible values are `VirtualMachineScaleSets`. Defaults to `VirtualMachineScaleSets`. Changing this forces a new resource to be created.
*
* > **Note:** When creating a cluster that supports multiple node pools, the cluster must use `VirtualMachineScaleSets`. For more information on the limitations of clusters using multiple node pools see [the documentation](https://learn.microsoft.com/en-us/azure/aks/use-multiple-node-pools#limitations).
*
*/
public Optional> type() {
return Optional.ofNullable(this.type);
}
/**
* Used to specify whether the UltraSSD is enabled in the Default Node Pool. Defaults to `false`. See [the documentation](https://docs.microsoft.com/azure/aks/use-ultra-disks) for more information. `temporary_name_for_rotation` must be specified when attempting a change.
*
*/
@Import(name="ultraSsdEnabled")
private @Nullable Output ultraSsdEnabled;
/**
* @return Used to specify whether the UltraSSD is enabled in the Default Node Pool. Defaults to `false`. See [the documentation](https://docs.microsoft.com/azure/aks/use-ultra-disks) for more information. `temporary_name_for_rotation` must be specified when attempting a change.
*
*/
public Optional> ultraSsdEnabled() {
return Optional.ofNullable(this.ultraSsdEnabled);
}
/**
* A `upgrade_settings` block as documented below.
*
*/
@Import(name="upgradeSettings")
private @Nullable Output upgradeSettings;
/**
* @return A `upgrade_settings` block as documented below.
*
*/
public Optional> upgradeSettings() {
return Optional.ofNullable(this.upgradeSettings);
}
/**
* The size of the Virtual Machine, such as `Standard_DS2_v2`. `temporary_name_for_rotation` must be specified when attempting a resize.
*
*/
@Import(name="vmSize", required=true)
private Output vmSize;
/**
* @return The size of the Virtual Machine, such as `Standard_DS2_v2`. `temporary_name_for_rotation` must be specified when attempting a resize.
*
*/
public Output vmSize() {
return this.vmSize;
}
/**
* The ID of a Subnet where the Kubernetes Node Pool should exist.
*
* > **Note:** A Route Table must be configured on this Subnet.
*
*/
@Import(name="vnetSubnetId")
private @Nullable Output vnetSubnetId;
/**
* @return The ID of a Subnet where the Kubernetes Node Pool should exist.
*
* > **Note:** A Route Table must be configured on this Subnet.
*
*/
public Optional> vnetSubnetId() {
return Optional.ofNullable(this.vnetSubnetId);
}
/**
* Specifies the workload runtime used by the node pool. Possible value is `OCIContainer`.
*
*/
@Import(name="workloadRuntime")
private @Nullable Output workloadRuntime;
/**
* @return Specifies the workload runtime used by the node pool. Possible value is `OCIContainer`.
*
*/
public Optional> workloadRuntime() {
return Optional.ofNullable(this.workloadRuntime);
}
/**
* Specifies a list of Availability Zones in which this Kubernetes Cluster should be located. `temporary_name_for_rotation` must be specified when changing this property.
*
* > **Note:** This requires that the `type` is set to `VirtualMachineScaleSets` and that `load_balancer_sku` is set to `standard`.
*
*/
@Import(name="zones")
private @Nullable Output> zones;
/**
* @return Specifies a list of Availability Zones in which this Kubernetes Cluster should be located. `temporary_name_for_rotation` must be specified when changing this property.
*
* > **Note:** This requires that the `type` is set to `VirtualMachineScaleSets` and that `load_balancer_sku` is set to `standard`.
*
*/
public Optional>> zones() {
return Optional.ofNullable(this.zones);
}
private KubernetesClusterDefaultNodePoolArgs() {}
private KubernetesClusterDefaultNodePoolArgs(KubernetesClusterDefaultNodePoolArgs $) {
this.autoScalingEnabled = $.autoScalingEnabled;
this.capacityReservationGroupId = $.capacityReservationGroupId;
this.fipsEnabled = $.fipsEnabled;
this.gpuInstance = $.gpuInstance;
this.hostEncryptionEnabled = $.hostEncryptionEnabled;
this.hostGroupId = $.hostGroupId;
this.kubeletConfig = $.kubeletConfig;
this.kubeletDiskType = $.kubeletDiskType;
this.linuxOsConfig = $.linuxOsConfig;
this.maxCount = $.maxCount;
this.maxPods = $.maxPods;
this.minCount = $.minCount;
this.name = $.name;
this.nodeCount = $.nodeCount;
this.nodeLabels = $.nodeLabels;
this.nodeNetworkProfile = $.nodeNetworkProfile;
this.nodePublicIpEnabled = $.nodePublicIpEnabled;
this.nodePublicIpPrefixId = $.nodePublicIpPrefixId;
this.onlyCriticalAddonsEnabled = $.onlyCriticalAddonsEnabled;
this.orchestratorVersion = $.orchestratorVersion;
this.osDiskSizeGb = $.osDiskSizeGb;
this.osDiskType = $.osDiskType;
this.osSku = $.osSku;
this.podSubnetId = $.podSubnetId;
this.proximityPlacementGroupId = $.proximityPlacementGroupId;
this.scaleDownMode = $.scaleDownMode;
this.snapshotId = $.snapshotId;
this.tags = $.tags;
this.temporaryNameForRotation = $.temporaryNameForRotation;
this.type = $.type;
this.ultraSsdEnabled = $.ultraSsdEnabled;
this.upgradeSettings = $.upgradeSettings;
this.vmSize = $.vmSize;
this.vnetSubnetId = $.vnetSubnetId;
this.workloadRuntime = $.workloadRuntime;
this.zones = $.zones;
}
public static Builder builder() {
return new Builder();
}
public static Builder builder(KubernetesClusterDefaultNodePoolArgs defaults) {
return new Builder(defaults);
}
public static final class Builder {
private KubernetesClusterDefaultNodePoolArgs $;
public Builder() {
$ = new KubernetesClusterDefaultNodePoolArgs();
}
public Builder(KubernetesClusterDefaultNodePoolArgs defaults) {
$ = new KubernetesClusterDefaultNodePoolArgs(Objects.requireNonNull(defaults));
}
/**
* @param autoScalingEnabled Should [the Kubernetes Auto Scaler](https://docs.microsoft.com/azure/aks/cluster-autoscaler) be enabled for this Node Pool?
*
* > **Note:** This requires that the `type` is set to `VirtualMachineScaleSets`.
*
* > **Note:** If you're using AutoScaling, you may wish to use [`ignoreChanges` functionality](https://www.pulumi.com/docs/intro/concepts/programming-model/#ignorechanges) to ignore changes to the `node_count` field.
*
* @return builder
*
*/
public Builder autoScalingEnabled(@Nullable Output autoScalingEnabled) {
$.autoScalingEnabled = autoScalingEnabled;
return this;
}
/**
* @param autoScalingEnabled Should [the Kubernetes Auto Scaler](https://docs.microsoft.com/azure/aks/cluster-autoscaler) be enabled for this Node Pool?
*
* > **Note:** This requires that the `type` is set to `VirtualMachineScaleSets`.
*
* > **Note:** If you're using AutoScaling, you may wish to use [`ignoreChanges` functionality](https://www.pulumi.com/docs/intro/concepts/programming-model/#ignorechanges) to ignore changes to the `node_count` field.
*
* @return builder
*
*/
public Builder autoScalingEnabled(Boolean autoScalingEnabled) {
return autoScalingEnabled(Output.of(autoScalingEnabled));
}
/**
* @param capacityReservationGroupId Specifies the ID of the Capacity Reservation Group within which this AKS Cluster should be created. Changing this forces a new resource to be created.
*
* @return builder
*
*/
public Builder capacityReservationGroupId(@Nullable Output capacityReservationGroupId) {
$.capacityReservationGroupId = capacityReservationGroupId;
return this;
}
/**
* @param capacityReservationGroupId Specifies the ID of the Capacity Reservation Group within which this AKS Cluster should be created. Changing this forces a new resource to be created.
*
* @return builder
*
*/
public Builder capacityReservationGroupId(String capacityReservationGroupId) {
return capacityReservationGroupId(Output.of(capacityReservationGroupId));
}
/**
* @param fipsEnabled Should the nodes in this Node Pool have Federal Information Processing Standard enabled? `temporary_name_for_rotation` must be specified when changing this block. Changing this forces a new resource to be created.
*
* @return builder
*
*/
public Builder fipsEnabled(@Nullable Output fipsEnabled) {
$.fipsEnabled = fipsEnabled;
return this;
}
/**
* @param fipsEnabled Should the nodes in this Node Pool have Federal Information Processing Standard enabled? `temporary_name_for_rotation` must be specified when changing this block. Changing this forces a new resource to be created.
*
* @return builder
*
*/
public Builder fipsEnabled(Boolean fipsEnabled) {
return fipsEnabled(Output.of(fipsEnabled));
}
/**
* @param gpuInstance Specifies the GPU MIG instance profile for supported GPU VM SKU. The allowed values are `MIG1g`, `MIG2g`, `MIG3g`, `MIG4g` and `MIG7g`. Changing this forces a new resource to be created.
*
* @return builder
*
*/
public Builder gpuInstance(@Nullable Output gpuInstance) {
$.gpuInstance = gpuInstance;
return this;
}
/**
* @param gpuInstance Specifies the GPU MIG instance profile for supported GPU VM SKU. The allowed values are `MIG1g`, `MIG2g`, `MIG3g`, `MIG4g` and `MIG7g`. Changing this forces a new resource to be created.
*
* @return builder
*
*/
public Builder gpuInstance(String gpuInstance) {
return gpuInstance(Output.of(gpuInstance));
}
/**
* @param hostEncryptionEnabled Should the nodes in the Default Node Pool have host encryption enabled? `temporary_name_for_rotation` must be specified when changing this property.
*
* > **Note:** This requires that the Feature `Microsoft.ContainerService/EnableEncryptionAtHost` is enabled and the Resource Provider is registered.
*
* @return builder
*
*/
public Builder hostEncryptionEnabled(@Nullable Output hostEncryptionEnabled) {
$.hostEncryptionEnabled = hostEncryptionEnabled;
return this;
}
/**
* @param hostEncryptionEnabled Should the nodes in the Default Node Pool have host encryption enabled? `temporary_name_for_rotation` must be specified when changing this property.
*
* > **Note:** This requires that the Feature `Microsoft.ContainerService/EnableEncryptionAtHost` is enabled and the Resource Provider is registered.
*
* @return builder
*
*/
public Builder hostEncryptionEnabled(Boolean hostEncryptionEnabled) {
return hostEncryptionEnabled(Output.of(hostEncryptionEnabled));
}
/**
* @param hostGroupId Specifies the ID of the Host Group within which this AKS Cluster should be created. Changing this forces a new resource to be created.
*
* @return builder
*
*/
public Builder hostGroupId(@Nullable Output hostGroupId) {
$.hostGroupId = hostGroupId;
return this;
}
/**
* @param hostGroupId Specifies the ID of the Host Group within which this AKS Cluster should be created. Changing this forces a new resource to be created.
*
* @return builder
*
*/
public Builder hostGroupId(String hostGroupId) {
return hostGroupId(Output.of(hostGroupId));
}
/**
* @param kubeletConfig A `kubelet_config` block as defined below. `temporary_name_for_rotation` must be specified when changing this block.
*
* @return builder
*
*/
public Builder kubeletConfig(@Nullable Output kubeletConfig) {
$.kubeletConfig = kubeletConfig;
return this;
}
/**
* @param kubeletConfig A `kubelet_config` block as defined below. `temporary_name_for_rotation` must be specified when changing this block.
*
* @return builder
*
*/
public Builder kubeletConfig(KubernetesClusterDefaultNodePoolKubeletConfigArgs kubeletConfig) {
return kubeletConfig(Output.of(kubeletConfig));
}
/**
* @param kubeletDiskType The type of disk used by kubelet. Possible values are `OS` and `Temporary`.
*
* @return builder
*
*/
public Builder kubeletDiskType(@Nullable Output kubeletDiskType) {
$.kubeletDiskType = kubeletDiskType;
return this;
}
/**
* @param kubeletDiskType The type of disk used by kubelet. Possible values are `OS` and `Temporary`.
*
* @return builder
*
*/
public Builder kubeletDiskType(String kubeletDiskType) {
return kubeletDiskType(Output.of(kubeletDiskType));
}
/**
* @param linuxOsConfig A `linux_os_config` block as defined below. `temporary_name_for_rotation` must be specified when changing this block.
*
* @return builder
*
*/
public Builder linuxOsConfig(@Nullable Output linuxOsConfig) {
$.linuxOsConfig = linuxOsConfig;
return this;
}
/**
* @param linuxOsConfig A `linux_os_config` block as defined below. `temporary_name_for_rotation` must be specified when changing this block.
*
* @return builder
*
*/
public Builder linuxOsConfig(KubernetesClusterDefaultNodePoolLinuxOsConfigArgs linuxOsConfig) {
return linuxOsConfig(Output.of(linuxOsConfig));
}
public Builder maxCount(@Nullable Output maxCount) {
$.maxCount = maxCount;
return this;
}
public Builder maxCount(Integer maxCount) {
return maxCount(Output.of(maxCount));
}
/**
* @param maxPods The maximum number of pods that can run on each agent. `temporary_name_for_rotation` must be specified when changing this property.
*
* @return builder
*
*/
public Builder maxPods(@Nullable Output maxPods) {
$.maxPods = maxPods;
return this;
}
/**
* @param maxPods The maximum number of pods that can run on each agent. `temporary_name_for_rotation` must be specified when changing this property.
*
* @return builder
*
*/
public Builder maxPods(Integer maxPods) {
return maxPods(Output.of(maxPods));
}
public Builder minCount(@Nullable Output minCount) {
$.minCount = minCount;
return this;
}
public Builder minCount(Integer minCount) {
return minCount(Output.of(minCount));
}
/**
* @param name The name which should be used for the default Kubernetes Node Pool.
*
* @return builder
*
*/
public Builder name(Output name) {
$.name = name;
return this;
}
/**
* @param name The name which should be used for the default Kubernetes Node Pool.
*
* @return builder
*
*/
public Builder name(String name) {
return name(Output.of(name));
}
public Builder nodeCount(@Nullable Output nodeCount) {
$.nodeCount = nodeCount;
return this;
}
public Builder nodeCount(Integer nodeCount) {
return nodeCount(Output.of(nodeCount));
}
/**
* @param nodeLabels A map of Kubernetes labels which should be applied to nodes in the Default Node Pool.
*
* @return builder
*
*/
public Builder nodeLabels(@Nullable Output> nodeLabels) {
$.nodeLabels = nodeLabels;
return this;
}
/**
* @param nodeLabels A map of Kubernetes labels which should be applied to nodes in the Default Node Pool.
*
* @return builder
*
*/
public Builder nodeLabels(Map nodeLabels) {
return nodeLabels(Output.of(nodeLabels));
}
/**
* @param nodeNetworkProfile A `node_network_profile` block as documented below.
*
* @return builder
*
*/
public Builder nodeNetworkProfile(@Nullable Output nodeNetworkProfile) {
$.nodeNetworkProfile = nodeNetworkProfile;
return this;
}
/**
* @param nodeNetworkProfile A `node_network_profile` block as documented below.
*
* @return builder
*
*/
public Builder nodeNetworkProfile(KubernetesClusterDefaultNodePoolNodeNetworkProfileArgs nodeNetworkProfile) {
return nodeNetworkProfile(Output.of(nodeNetworkProfile));
}
/**
* @param nodePublicIpEnabled Should nodes in this Node Pool have a Public IP Address? `temporary_name_for_rotation` must be specified when changing this property.
*
* @return builder
*
*/
public Builder nodePublicIpEnabled(@Nullable Output nodePublicIpEnabled) {
$.nodePublicIpEnabled = nodePublicIpEnabled;
return this;
}
/**
* @param nodePublicIpEnabled Should nodes in this Node Pool have a Public IP Address? `temporary_name_for_rotation` must be specified when changing this property.
*
* @return builder
*
*/
public Builder nodePublicIpEnabled(Boolean nodePublicIpEnabled) {
return nodePublicIpEnabled(Output.of(nodePublicIpEnabled));
}
/**
* @param nodePublicIpPrefixId Resource ID for the Public IP Addresses Prefix for the nodes in this Node Pool. `node_public_ip_enabled` should be `true`. Changing this forces a new resource to be created.
*
* @return builder
*
*/
public Builder nodePublicIpPrefixId(@Nullable Output nodePublicIpPrefixId) {
$.nodePublicIpPrefixId = nodePublicIpPrefixId;
return this;
}
/**
* @param nodePublicIpPrefixId Resource ID for the Public IP Addresses Prefix for the nodes in this Node Pool. `node_public_ip_enabled` should be `true`. Changing this forces a new resource to be created.
*
* @return builder
*
*/
public Builder nodePublicIpPrefixId(String nodePublicIpPrefixId) {
return nodePublicIpPrefixId(Output.of(nodePublicIpPrefixId));
}
/**
* @param onlyCriticalAddonsEnabled Enabling this option will taint default node pool with `CriticalAddonsOnly=true:NoSchedule` taint. `temporary_name_for_rotation` must be specified when changing this property.
*
* @return builder
*
*/
public Builder onlyCriticalAddonsEnabled(@Nullable Output onlyCriticalAddonsEnabled) {
$.onlyCriticalAddonsEnabled = onlyCriticalAddonsEnabled;
return this;
}
/**
* @param onlyCriticalAddonsEnabled Enabling this option will taint default node pool with `CriticalAddonsOnly=true:NoSchedule` taint. `temporary_name_for_rotation` must be specified when changing this property.
*
* @return builder
*
*/
public Builder onlyCriticalAddonsEnabled(Boolean onlyCriticalAddonsEnabled) {
return onlyCriticalAddonsEnabled(Output.of(onlyCriticalAddonsEnabled));
}
/**
* @param orchestratorVersion Version of Kubernetes used for the Agents. If not specified, the default node pool will be created with the version specified by `kubernetes_version`. If both are unspecified, the latest recommended version will be used at provisioning time (but won't auto-upgrade). AKS does not require an exact patch version to be specified, minor version aliases such as `1.22` are also supported. - The minor version's latest GA patch is automatically chosen in that case. More details can be found in [the documentation](https://docs.microsoft.com/en-us/azure/aks/supported-kubernetes-versions?tabs=azure-cli#alias-minor-version).
*
* > **Note:** This version must be supported by the Kubernetes Cluster - as such the version of Kubernetes used on the Cluster/Control Plane may need to be upgraded first.
*
* @return builder
*
*/
public Builder orchestratorVersion(@Nullable Output orchestratorVersion) {
$.orchestratorVersion = orchestratorVersion;
return this;
}
/**
* @param orchestratorVersion Version of Kubernetes used for the Agents. If not specified, the default node pool will be created with the version specified by `kubernetes_version`. If both are unspecified, the latest recommended version will be used at provisioning time (but won't auto-upgrade). AKS does not require an exact patch version to be specified, minor version aliases such as `1.22` are also supported. - The minor version's latest GA patch is automatically chosen in that case. More details can be found in [the documentation](https://docs.microsoft.com/en-us/azure/aks/supported-kubernetes-versions?tabs=azure-cli#alias-minor-version).
*
* > **Note:** This version must be supported by the Kubernetes Cluster - as such the version of Kubernetes used on the Cluster/Control Plane may need to be upgraded first.
*
* @return builder
*
*/
public Builder orchestratorVersion(String orchestratorVersion) {
return orchestratorVersion(Output.of(orchestratorVersion));
}
/**
* @param osDiskSizeGb The size of the OS Disk which should be used for each agent in the Node Pool. `temporary_name_for_rotation` must be specified when attempting a change.
*
* @return builder
*
*/
public Builder osDiskSizeGb(@Nullable Output osDiskSizeGb) {
$.osDiskSizeGb = osDiskSizeGb;
return this;
}
/**
* @param osDiskSizeGb The size of the OS Disk which should be used for each agent in the Node Pool. `temporary_name_for_rotation` must be specified when attempting a change.
*
* @return builder
*
*/
public Builder osDiskSizeGb(Integer osDiskSizeGb) {
return osDiskSizeGb(Output.of(osDiskSizeGb));
}
/**
* @param osDiskType The type of disk which should be used for the Operating System. Possible values are `Ephemeral` and `Managed`. Defaults to `Managed`. `temporary_name_for_rotation` must be specified when attempting a change.
*
* @return builder
*
*/
public Builder osDiskType(@Nullable Output osDiskType) {
$.osDiskType = osDiskType;
return this;
}
/**
* @param osDiskType The type of disk which should be used for the Operating System. Possible values are `Ephemeral` and `Managed`. Defaults to `Managed`. `temporary_name_for_rotation` must be specified when attempting a change.
*
* @return builder
*
*/
public Builder osDiskType(String osDiskType) {
return osDiskType(Output.of(osDiskType));
}
/**
* @param osSku Specifies the OS SKU used by the agent pool. Possible values are `AzureLinux`, `Ubuntu`, `Windows2019` and `Windows2022`. 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. Changing this from `AzureLinux` or `Ubuntu` to `AzureLinux` or `Ubuntu` will not replace the resource, otherwise `temporary_name_for_rotation` must be specified when attempting a change.
*
* @return builder
*
*/
public Builder osSku(@Nullable Output osSku) {
$.osSku = osSku;
return this;
}
/**
* @param osSku Specifies the OS SKU used by the agent pool. Possible values are `AzureLinux`, `Ubuntu`, `Windows2019` and `Windows2022`. 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. Changing this from `AzureLinux` or `Ubuntu` to `AzureLinux` or `Ubuntu` will not replace the resource, otherwise `temporary_name_for_rotation` must be specified when attempting a change.
*
* @return builder
*
*/
public Builder osSku(String osSku) {
return osSku(Output.of(osSku));
}
/**
* @param podSubnetId The ID of the Subnet where the pods in the default Node Pool should exist.
*
* @return builder
*
*/
public Builder podSubnetId(@Nullable Output podSubnetId) {
$.podSubnetId = podSubnetId;
return this;
}
/**
* @param podSubnetId The ID of the Subnet where the pods in the default Node Pool should exist.
*
* @return builder
*
*/
public Builder podSubnetId(String podSubnetId) {
return podSubnetId(Output.of(podSubnetId));
}
/**
* @param proximityPlacementGroupId The ID of the Proximity Placement Group. Changing this forces a new resource to be created.
*
* @return builder
*
*/
public Builder proximityPlacementGroupId(@Nullable Output proximityPlacementGroupId) {
$.proximityPlacementGroupId = proximityPlacementGroupId;
return this;
}
/**
* @param proximityPlacementGroupId The ID of the Proximity Placement Group. Changing this forces a new resource to be created.
*
* @return builder
*
*/
public Builder proximityPlacementGroupId(String proximityPlacementGroupId) {
return proximityPlacementGroupId(Output.of(proximityPlacementGroupId));
}
/**
* @param scaleDownMode Specifies the autoscaling behaviour of the Kubernetes Cluster. Allowed values are `Delete` and `Deallocate`. Defaults to `Delete`.
*
* @return builder
*
*/
public Builder scaleDownMode(@Nullable Output scaleDownMode) {
$.scaleDownMode = scaleDownMode;
return this;
}
/**
* @param scaleDownMode Specifies the autoscaling behaviour of the Kubernetes Cluster. Allowed values are `Delete` and `Deallocate`. Defaults to `Delete`.
*
* @return builder
*
*/
public Builder scaleDownMode(String scaleDownMode) {
return scaleDownMode(Output.of(scaleDownMode));
}
/**
* @param snapshotId The ID of the Snapshot which should be used to create this default Node Pool. `temporary_name_for_rotation` must be specified when changing this property.
*
* @return builder
*
*/
public Builder snapshotId(@Nullable Output snapshotId) {
$.snapshotId = snapshotId;
return this;
}
/**
* @param snapshotId The ID of the Snapshot which should be used to create this default Node Pool. `temporary_name_for_rotation` must be specified when changing this property.
*
* @return builder
*
*/
public Builder snapshotId(String snapshotId) {
return snapshotId(Output.of(snapshotId));
}
/**
* @param tags A mapping of tags to assign to the Node Pool.
*
* > At this time there's a bug in the AKS API where Tags for a Node Pool are not stored in the correct case - you may wish to use `ignore_changes` functionality to ignore changes to the casing until this is fixed in the AKS API.
*
* @return builder
*
*/
public Builder tags(@Nullable Output> tags) {
$.tags = tags;
return this;
}
/**
* @param tags A mapping of tags to assign to the Node Pool.
*
* > At this time there's a bug in the AKS API where Tags for a Node Pool are not stored in the correct case - you may wish to use `ignore_changes` functionality to ignore changes to the casing until this is fixed in the AKS API.
*
* @return builder
*
*/
public Builder tags(Map tags) {
return tags(Output.of(tags));
}
/**
* @param temporaryNameForRotation Specifies the name of the temporary node pool used to cycle the default node pool for VM resizing.
*
* @return builder
*
*/
public Builder temporaryNameForRotation(@Nullable Output temporaryNameForRotation) {
$.temporaryNameForRotation = temporaryNameForRotation;
return this;
}
/**
* @param temporaryNameForRotation Specifies the name of the temporary node pool used to cycle the default node pool for VM resizing.
*
* @return builder
*
*/
public Builder temporaryNameForRotation(String temporaryNameForRotation) {
return temporaryNameForRotation(Output.of(temporaryNameForRotation));
}
/**
* @param type The type of Node Pool which should be created. Possible values are `VirtualMachineScaleSets`. Defaults to `VirtualMachineScaleSets`. Changing this forces a new resource to be created.
*
* > **Note:** When creating a cluster that supports multiple node pools, the cluster must use `VirtualMachineScaleSets`. For more information on the limitations of clusters using multiple node pools see [the documentation](https://learn.microsoft.com/en-us/azure/aks/use-multiple-node-pools#limitations).
*
* @return builder
*
*/
public Builder type(@Nullable Output type) {
$.type = type;
return this;
}
/**
* @param type The type of Node Pool which should be created. Possible values are `VirtualMachineScaleSets`. Defaults to `VirtualMachineScaleSets`. Changing this forces a new resource to be created.
*
* > **Note:** When creating a cluster that supports multiple node pools, the cluster must use `VirtualMachineScaleSets`. For more information on the limitations of clusters using multiple node pools see [the documentation](https://learn.microsoft.com/en-us/azure/aks/use-multiple-node-pools#limitations).
*
* @return builder
*
*/
public Builder type(String type) {
return type(Output.of(type));
}
/**
* @param ultraSsdEnabled Used to specify whether the UltraSSD is enabled in the Default Node Pool. Defaults to `false`. See [the documentation](https://docs.microsoft.com/azure/aks/use-ultra-disks) for more information. `temporary_name_for_rotation` must be specified when attempting a change.
*
* @return builder
*
*/
public Builder ultraSsdEnabled(@Nullable Output ultraSsdEnabled) {
$.ultraSsdEnabled = ultraSsdEnabled;
return this;
}
/**
* @param ultraSsdEnabled Used to specify whether the UltraSSD is enabled in the Default Node Pool. Defaults to `false`. See [the documentation](https://docs.microsoft.com/azure/aks/use-ultra-disks) for more information. `temporary_name_for_rotation` must be specified when attempting a change.
*
* @return builder
*
*/
public Builder ultraSsdEnabled(Boolean ultraSsdEnabled) {
return ultraSsdEnabled(Output.of(ultraSsdEnabled));
}
/**
* @param upgradeSettings A `upgrade_settings` block as documented below.
*
* @return builder
*
*/
public Builder upgradeSettings(@Nullable Output upgradeSettings) {
$.upgradeSettings = upgradeSettings;
return this;
}
/**
* @param upgradeSettings A `upgrade_settings` block as documented below.
*
* @return builder
*
*/
public Builder upgradeSettings(KubernetesClusterDefaultNodePoolUpgradeSettingsArgs upgradeSettings) {
return upgradeSettings(Output.of(upgradeSettings));
}
/**
* @param vmSize The size of the Virtual Machine, such as `Standard_DS2_v2`. `temporary_name_for_rotation` must be specified when attempting a resize.
*
* @return builder
*
*/
public Builder vmSize(Output vmSize) {
$.vmSize = vmSize;
return this;
}
/**
* @param vmSize The size of the Virtual Machine, such as `Standard_DS2_v2`. `temporary_name_for_rotation` must be specified when attempting a resize.
*
* @return builder
*
*/
public Builder vmSize(String vmSize) {
return vmSize(Output.of(vmSize));
}
/**
* @param vnetSubnetId The ID of a Subnet where the Kubernetes Node Pool should exist.
*
* > **Note:** A Route Table must be configured on this Subnet.
*
* @return builder
*
*/
public Builder vnetSubnetId(@Nullable Output vnetSubnetId) {
$.vnetSubnetId = vnetSubnetId;
return this;
}
/**
* @param vnetSubnetId The ID of a Subnet where the Kubernetes Node Pool should exist.
*
* > **Note:** A Route Table must be configured on this Subnet.
*
* @return builder
*
*/
public Builder vnetSubnetId(String vnetSubnetId) {
return vnetSubnetId(Output.of(vnetSubnetId));
}
/**
* @param workloadRuntime Specifies the workload runtime used by the node pool. Possible value is `OCIContainer`.
*
* @return builder
*
*/
public Builder workloadRuntime(@Nullable Output workloadRuntime) {
$.workloadRuntime = workloadRuntime;
return this;
}
/**
* @param workloadRuntime Specifies the workload runtime used by the node pool. Possible value is `OCIContainer`.
*
* @return builder
*
*/
public Builder workloadRuntime(String workloadRuntime) {
return workloadRuntime(Output.of(workloadRuntime));
}
/**
* @param zones Specifies a list of Availability Zones in which this Kubernetes Cluster should be located. `temporary_name_for_rotation` must be specified when changing this property.
*
* > **Note:** This requires that the `type` is set to `VirtualMachineScaleSets` and that `load_balancer_sku` is set to `standard`.
*
* @return builder
*
*/
public Builder zones(@Nullable Output> zones) {
$.zones = zones;
return this;
}
/**
* @param zones Specifies a list of Availability Zones in which this Kubernetes Cluster should be located. `temporary_name_for_rotation` must be specified when changing this property.
*
* > **Note:** This requires that the `type` is set to `VirtualMachineScaleSets` and that `load_balancer_sku` is set to `standard`.
*
* @return builder
*
*/
public Builder zones(List zones) {
return zones(Output.of(zones));
}
/**
* @param zones Specifies a list of Availability Zones in which this Kubernetes Cluster should be located. `temporary_name_for_rotation` must be specified when changing this property.
*
* > **Note:** This requires that the `type` is set to `VirtualMachineScaleSets` and that `load_balancer_sku` is set to `standard`.
*
* @return builder
*
*/
public Builder zones(String... zones) {
return zones(List.of(zones));
}
public KubernetesClusterDefaultNodePoolArgs build() {
if ($.name == null) {
throw new MissingRequiredPropertyException("KubernetesClusterDefaultNodePoolArgs", "name");
}
if ($.vmSize == null) {
throw new MissingRequiredPropertyException("KubernetesClusterDefaultNodePoolArgs", "vmSize");
}
return $;
}
}
}