All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.azure.containerservice.outputs.KubernetesClusterAutoScalerProfile 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.

There is a newer version: 6.10.0-alpha.1731737215
Show newest version
// *** 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;
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy