com.pulumi.azure.containerservice.outputs.KubernetesClusterAutoScalerProfile Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of azure Show documentation
Show all versions of azure Show documentation
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.outputs;
import com.pulumi.core.annotations.CustomType;
import java.lang.Boolean;
import java.lang.Double;
import java.lang.Integer;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;
@CustomType
public final class KubernetesClusterAutoScalerProfile {
/**
* @return Detect similar node groups and balance the number of nodes between them. Defaults to `false`.
*
*/
private @Nullable Boolean balanceSimilarNodeGroups;
/**
* @return Maximum number of empty nodes that can be deleted at the same time. Defaults to `10`.
*
*/
private @Nullable String emptyBulkDeleteMax;
/**
* @return Expander to use. Possible values are `least-waste`, `priority`, `most-pods` and `random`. Defaults to `random`.
*
*/
private @Nullable String expander;
/**
* @return Maximum number of seconds the cluster autoscaler waits for pod termination when trying to scale down a node. Defaults to `600`.
*
*/
private @Nullable String maxGracefulTerminationSec;
/**
* @return Maximum time the autoscaler waits for a node to be provisioned. Defaults to `15m`.
*
*/
private @Nullable String maxNodeProvisioningTime;
/**
* @return Maximum Number of allowed unready nodes. Defaults to `3`.
*
*/
private @Nullable Integer maxUnreadyNodes;
/**
* @return Maximum percentage of unready nodes the cluster autoscaler will stop if the percentage is exceeded. Defaults to `45`.
*
*/
private @Nullable Double maxUnreadyPercentage;
/**
* @return For scenarios like burst/batch scale where you don't want CA to act before the kubernetes scheduler could schedule all the pods, you can tell CA to ignore unscheduled pods before they're a certain age. Defaults to `10s`.
*
*/
private @Nullable String newPodScaleUpDelay;
/**
* @return How long after the scale up of AKS nodes the scale down evaluation resumes. Defaults to `10m`.
*
*/
private @Nullable String scaleDownDelayAfterAdd;
/**
* @return How long after node deletion that scale down evaluation resumes. Defaults to the value used for `scan_interval`.
*
*/
private @Nullable String scaleDownDelayAfterDelete;
/**
* @return How long after scale down failure that scale down evaluation resumes. Defaults to `3m`.
*
*/
private @Nullable String scaleDownDelayAfterFailure;
/**
* @return How long a node should be unneeded before it is eligible for scale down. Defaults to `10m`.
*
*/
private @Nullable String scaleDownUnneeded;
/**
* @return How long an unready node should be unneeded before it is eligible for scale down. Defaults to `20m`.
*
*/
private @Nullable String scaleDownUnready;
/**
* @return Node utilization level, defined as sum of requested resources divided by capacity, below which a node can be considered for scale down. Defaults to `0.5`.
*
*/
private @Nullable String scaleDownUtilizationThreshold;
/**
* @return How often the AKS Cluster should be re-evaluated for scale up/down. Defaults to `10s`.
*
*/
private @Nullable String scanInterval;
/**
* @return If `true` cluster autoscaler will never delete nodes with pods with local storage, for example, EmptyDir or HostPath. Defaults to `true`.
*
*/
private @Nullable Boolean skipNodesWithLocalStorage;
/**
* @return If `true` cluster autoscaler will never delete nodes with pods from kube-system (except for DaemonSet or mirror pods). Defaults to `true`.
*
*/
private @Nullable Boolean skipNodesWithSystemPods;
private KubernetesClusterAutoScalerProfile() {}
/**
* @return Detect similar node groups and balance the number of nodes between them. Defaults to `false`.
*
*/
public Optional balanceSimilarNodeGroups() {
return Optional.ofNullable(this.balanceSimilarNodeGroups);
}
/**
* @return Maximum number of empty nodes that can be deleted at the same time. Defaults to `10`.
*
*/
public Optional emptyBulkDeleteMax() {
return Optional.ofNullable(this.emptyBulkDeleteMax);
}
/**
* @return Expander to use. Possible values are `least-waste`, `priority`, `most-pods` and `random`. Defaults to `random`.
*
*/
public Optional expander() {
return Optional.ofNullable(this.expander);
}
/**
* @return Maximum number of seconds the cluster autoscaler waits for pod termination when trying to scale down a node. Defaults to `600`.
*
*/
public Optional maxGracefulTerminationSec() {
return Optional.ofNullable(this.maxGracefulTerminationSec);
}
/**
* @return Maximum time the autoscaler waits for a node to be provisioned. Defaults to `15m`.
*
*/
public Optional maxNodeProvisioningTime() {
return Optional.ofNullable(this.maxNodeProvisioningTime);
}
/**
* @return Maximum Number of allowed unready nodes. Defaults to `3`.
*
*/
public Optional maxUnreadyNodes() {
return Optional.ofNullable(this.maxUnreadyNodes);
}
/**
* @return Maximum percentage of unready nodes the cluster autoscaler will stop if the percentage is exceeded. Defaults to `45`.
*
*/
public Optional maxUnreadyPercentage() {
return Optional.ofNullable(this.maxUnreadyPercentage);
}
/**
* @return For scenarios like burst/batch scale where you don't want CA to act before the kubernetes scheduler could schedule all the pods, you can tell CA to ignore unscheduled pods before they're a certain age. Defaults to `10s`.
*
*/
public Optional newPodScaleUpDelay() {
return Optional.ofNullable(this.newPodScaleUpDelay);
}
/**
* @return How long after the scale up of AKS nodes the scale down evaluation resumes. Defaults to `10m`.
*
*/
public Optional scaleDownDelayAfterAdd() {
return Optional.ofNullable(this.scaleDownDelayAfterAdd);
}
/**
* @return How long after node deletion that scale down evaluation resumes. Defaults to the value used for `scan_interval`.
*
*/
public Optional scaleDownDelayAfterDelete() {
return Optional.ofNullable(this.scaleDownDelayAfterDelete);
}
/**
* @return How long after scale down failure that scale down evaluation resumes. Defaults to `3m`.
*
*/
public Optional scaleDownDelayAfterFailure() {
return Optional.ofNullable(this.scaleDownDelayAfterFailure);
}
/**
* @return How long a node should be unneeded before it is eligible for scale down. Defaults to `10m`.
*
*/
public Optional scaleDownUnneeded() {
return Optional.ofNullable(this.scaleDownUnneeded);
}
/**
* @return How long an unready node should be unneeded before it is eligible for scale down. Defaults to `20m`.
*
*/
public Optional scaleDownUnready() {
return Optional.ofNullable(this.scaleDownUnready);
}
/**
* @return Node utilization level, defined as sum of requested resources divided by capacity, below which a node can be considered for scale down. Defaults to `0.5`.
*
*/
public Optional scaleDownUtilizationThreshold() {
return Optional.ofNullable(this.scaleDownUtilizationThreshold);
}
/**
* @return How often the AKS Cluster should be re-evaluated for scale up/down. Defaults to `10s`.
*
*/
public Optional scanInterval() {
return Optional.ofNullable(this.scanInterval);
}
/**
* @return If `true` cluster autoscaler will never delete nodes with pods with local storage, for example, EmptyDir or HostPath. Defaults to `true`.
*
*/
public Optional skipNodesWithLocalStorage() {
return Optional.ofNullable(this.skipNodesWithLocalStorage);
}
/**
* @return If `true` cluster autoscaler will never delete nodes with pods from kube-system (except for DaemonSet or mirror pods). Defaults to `true`.
*
*/
public Optional skipNodesWithSystemPods() {
return Optional.ofNullable(this.skipNodesWithSystemPods);
}
public static Builder builder() {
return new Builder();
}
public static Builder builder(KubernetesClusterAutoScalerProfile defaults) {
return new Builder(defaults);
}
@CustomType.Builder
public static final class Builder {
private @Nullable Boolean balanceSimilarNodeGroups;
private @Nullable String emptyBulkDeleteMax;
private @Nullable String expander;
private @Nullable String maxGracefulTerminationSec;
private @Nullable String maxNodeProvisioningTime;
private @Nullable Integer maxUnreadyNodes;
private @Nullable Double maxUnreadyPercentage;
private @Nullable String newPodScaleUpDelay;
private @Nullable String scaleDownDelayAfterAdd;
private @Nullable String scaleDownDelayAfterDelete;
private @Nullable String scaleDownDelayAfterFailure;
private @Nullable String scaleDownUnneeded;
private @Nullable String scaleDownUnready;
private @Nullable String scaleDownUtilizationThreshold;
private @Nullable String scanInterval;
private @Nullable Boolean skipNodesWithLocalStorage;
private @Nullable Boolean skipNodesWithSystemPods;
public Builder() {}
public Builder(KubernetesClusterAutoScalerProfile defaults) {
Objects.requireNonNull(defaults);
this.balanceSimilarNodeGroups = defaults.balanceSimilarNodeGroups;
this.emptyBulkDeleteMax = defaults.emptyBulkDeleteMax;
this.expander = defaults.expander;
this.maxGracefulTerminationSec = defaults.maxGracefulTerminationSec;
this.maxNodeProvisioningTime = defaults.maxNodeProvisioningTime;
this.maxUnreadyNodes = defaults.maxUnreadyNodes;
this.maxUnreadyPercentage = defaults.maxUnreadyPercentage;
this.newPodScaleUpDelay = defaults.newPodScaleUpDelay;
this.scaleDownDelayAfterAdd = defaults.scaleDownDelayAfterAdd;
this.scaleDownDelayAfterDelete = defaults.scaleDownDelayAfterDelete;
this.scaleDownDelayAfterFailure = defaults.scaleDownDelayAfterFailure;
this.scaleDownUnneeded = defaults.scaleDownUnneeded;
this.scaleDownUnready = defaults.scaleDownUnready;
this.scaleDownUtilizationThreshold = defaults.scaleDownUtilizationThreshold;
this.scanInterval = defaults.scanInterval;
this.skipNodesWithLocalStorage = defaults.skipNodesWithLocalStorage;
this.skipNodesWithSystemPods = defaults.skipNodesWithSystemPods;
}
@CustomType.Setter
public Builder balanceSimilarNodeGroups(@Nullable Boolean balanceSimilarNodeGroups) {
this.balanceSimilarNodeGroups = balanceSimilarNodeGroups;
return this;
}
@CustomType.Setter
public Builder emptyBulkDeleteMax(@Nullable String emptyBulkDeleteMax) {
this.emptyBulkDeleteMax = emptyBulkDeleteMax;
return this;
}
@CustomType.Setter
public Builder expander(@Nullable String expander) {
this.expander = expander;
return this;
}
@CustomType.Setter
public Builder maxGracefulTerminationSec(@Nullable String maxGracefulTerminationSec) {
this.maxGracefulTerminationSec = maxGracefulTerminationSec;
return this;
}
@CustomType.Setter
public Builder maxNodeProvisioningTime(@Nullable String maxNodeProvisioningTime) {
this.maxNodeProvisioningTime = maxNodeProvisioningTime;
return this;
}
@CustomType.Setter
public Builder maxUnreadyNodes(@Nullable Integer maxUnreadyNodes) {
this.maxUnreadyNodes = maxUnreadyNodes;
return this;
}
@CustomType.Setter
public Builder maxUnreadyPercentage(@Nullable Double maxUnreadyPercentage) {
this.maxUnreadyPercentage = maxUnreadyPercentage;
return this;
}
@CustomType.Setter
public Builder newPodScaleUpDelay(@Nullable String newPodScaleUpDelay) {
this.newPodScaleUpDelay = newPodScaleUpDelay;
return this;
}
@CustomType.Setter
public Builder scaleDownDelayAfterAdd(@Nullable String scaleDownDelayAfterAdd) {
this.scaleDownDelayAfterAdd = scaleDownDelayAfterAdd;
return this;
}
@CustomType.Setter
public Builder scaleDownDelayAfterDelete(@Nullable String scaleDownDelayAfterDelete) {
this.scaleDownDelayAfterDelete = scaleDownDelayAfterDelete;
return this;
}
@CustomType.Setter
public Builder scaleDownDelayAfterFailure(@Nullable String scaleDownDelayAfterFailure) {
this.scaleDownDelayAfterFailure = scaleDownDelayAfterFailure;
return this;
}
@CustomType.Setter
public Builder scaleDownUnneeded(@Nullable String scaleDownUnneeded) {
this.scaleDownUnneeded = scaleDownUnneeded;
return this;
}
@CustomType.Setter
public Builder scaleDownUnready(@Nullable String scaleDownUnready) {
this.scaleDownUnready = scaleDownUnready;
return this;
}
@CustomType.Setter
public Builder scaleDownUtilizationThreshold(@Nullable String scaleDownUtilizationThreshold) {
this.scaleDownUtilizationThreshold = scaleDownUtilizationThreshold;
return this;
}
@CustomType.Setter
public Builder scanInterval(@Nullable String scanInterval) {
this.scanInterval = scanInterval;
return this;
}
@CustomType.Setter
public Builder skipNodesWithLocalStorage(@Nullable Boolean skipNodesWithLocalStorage) {
this.skipNodesWithLocalStorage = skipNodesWithLocalStorage;
return this;
}
@CustomType.Setter
public Builder skipNodesWithSystemPods(@Nullable Boolean skipNodesWithSystemPods) {
this.skipNodesWithSystemPods = skipNodesWithSystemPods;
return this;
}
public KubernetesClusterAutoScalerProfile build() {
final var _resultValue = new KubernetesClusterAutoScalerProfile();
_resultValue.balanceSimilarNodeGroups = balanceSimilarNodeGroups;
_resultValue.emptyBulkDeleteMax = emptyBulkDeleteMax;
_resultValue.expander = expander;
_resultValue.maxGracefulTerminationSec = maxGracefulTerminationSec;
_resultValue.maxNodeProvisioningTime = maxNodeProvisioningTime;
_resultValue.maxUnreadyNodes = maxUnreadyNodes;
_resultValue.maxUnreadyPercentage = maxUnreadyPercentage;
_resultValue.newPodScaleUpDelay = newPodScaleUpDelay;
_resultValue.scaleDownDelayAfterAdd = scaleDownDelayAfterAdd;
_resultValue.scaleDownDelayAfterDelete = scaleDownDelayAfterDelete;
_resultValue.scaleDownDelayAfterFailure = scaleDownDelayAfterFailure;
_resultValue.scaleDownUnneeded = scaleDownUnneeded;
_resultValue.scaleDownUnready = scaleDownUnready;
_resultValue.scaleDownUtilizationThreshold = scaleDownUtilizationThreshold;
_resultValue.scanInterval = scanInterval;
_resultValue.skipNodesWithLocalStorage = skipNodesWithLocalStorage;
_resultValue.skipNodesWithSystemPods = skipNodesWithSystemPods;
return _resultValue;
}
}
}