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

com.pulumi.azure.containerservice.inputs.KubernetesClusterDefaultNodePoolUpgradeSettingsArgs 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.inputs;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Integer;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class KubernetesClusterDefaultNodePoolUpgradeSettingsArgs extends com.pulumi.resources.ResourceArgs {

    public static final KubernetesClusterDefaultNodePoolUpgradeSettingsArgs Empty = new KubernetesClusterDefaultNodePoolUpgradeSettingsArgs();

    /**
     * The amount of time in minutes to wait on eviction of pods and graceful termination per node. This eviction wait time honors pod disruption budgets for upgrades. If this time is exceeded, the upgrade fails. Unsetting this after configuring it will force a new resource to be created.
     * 
     */
    @Import(name="drainTimeoutInMinutes")
    private @Nullable Output drainTimeoutInMinutes;

    /**
     * @return The amount of time in minutes to wait on eviction of pods and graceful termination per node. This eviction wait time honors pod disruption budgets for upgrades. If this time is exceeded, the upgrade fails. Unsetting this after configuring it will force a new resource to be created.
     * 
     */
    public Optional> drainTimeoutInMinutes() {
        return Optional.ofNullable(this.drainTimeoutInMinutes);
    }

    /**
     * The maximum number or percentage of nodes which will be added to the Node Pool size during an upgrade.
     * 
     * > **Note:** If a percentage is provided, the number of surge nodes is calculated from the `node_count` value on the current cluster. Node surge can allow a cluster to have more nodes than `max_count` during an upgrade. Ensure that your cluster has enough [IP space](https://docs.microsoft.com/azure/aks/upgrade-cluster#customize-node-surge-upgrade) during an upgrade.
     * 
     */
    @Import(name="maxSurge", required=true)
    private Output maxSurge;

    /**
     * @return The maximum number or percentage of nodes which will be added to the Node Pool size during an upgrade.
     * 
     * > **Note:** If a percentage is provided, the number of surge nodes is calculated from the `node_count` value on the current cluster. Node surge can allow a cluster to have more nodes than `max_count` during an upgrade. Ensure that your cluster has enough [IP space](https://docs.microsoft.com/azure/aks/upgrade-cluster#customize-node-surge-upgrade) during an upgrade.
     * 
     */
    public Output maxSurge() {
        return this.maxSurge;
    }

    /**
     * The amount of time in minutes to wait after draining a node and before reimaging and moving on to next node. Defaults to `0`.
     * 
     */
    @Import(name="nodeSoakDurationInMinutes")
    private @Nullable Output nodeSoakDurationInMinutes;

    /**
     * @return The amount of time in minutes to wait after draining a node and before reimaging and moving on to next node. Defaults to `0`.
     * 
     */
    public Optional> nodeSoakDurationInMinutes() {
        return Optional.ofNullable(this.nodeSoakDurationInMinutes);
    }

    private KubernetesClusterDefaultNodePoolUpgradeSettingsArgs() {}

    private KubernetesClusterDefaultNodePoolUpgradeSettingsArgs(KubernetesClusterDefaultNodePoolUpgradeSettingsArgs $) {
        this.drainTimeoutInMinutes = $.drainTimeoutInMinutes;
        this.maxSurge = $.maxSurge;
        this.nodeSoakDurationInMinutes = $.nodeSoakDurationInMinutes;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(KubernetesClusterDefaultNodePoolUpgradeSettingsArgs defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private KubernetesClusterDefaultNodePoolUpgradeSettingsArgs $;

        public Builder() {
            $ = new KubernetesClusterDefaultNodePoolUpgradeSettingsArgs();
        }

        public Builder(KubernetesClusterDefaultNodePoolUpgradeSettingsArgs defaults) {
            $ = new KubernetesClusterDefaultNodePoolUpgradeSettingsArgs(Objects.requireNonNull(defaults));
        }

        /**
         * @param drainTimeoutInMinutes The amount of time in minutes to wait on eviction of pods and graceful termination per node. This eviction wait time honors pod disruption budgets for upgrades. If this time is exceeded, the upgrade fails. Unsetting this after configuring it will force a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder drainTimeoutInMinutes(@Nullable Output drainTimeoutInMinutes) {
            $.drainTimeoutInMinutes = drainTimeoutInMinutes;
            return this;
        }

        /**
         * @param drainTimeoutInMinutes The amount of time in minutes to wait on eviction of pods and graceful termination per node. This eviction wait time honors pod disruption budgets for upgrades. If this time is exceeded, the upgrade fails. Unsetting this after configuring it will force a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder drainTimeoutInMinutes(Integer drainTimeoutInMinutes) {
            return drainTimeoutInMinutes(Output.of(drainTimeoutInMinutes));
        }

        /**
         * @param maxSurge The maximum number or percentage of nodes which will be added to the Node Pool size during an upgrade.
         * 
         * > **Note:** If a percentage is provided, the number of surge nodes is calculated from the `node_count` value on the current cluster. Node surge can allow a cluster to have more nodes than `max_count` during an upgrade. Ensure that your cluster has enough [IP space](https://docs.microsoft.com/azure/aks/upgrade-cluster#customize-node-surge-upgrade) during an upgrade.
         * 
         * @return builder
         * 
         */
        public Builder maxSurge(Output maxSurge) {
            $.maxSurge = maxSurge;
            return this;
        }

        /**
         * @param maxSurge The maximum number or percentage of nodes which will be added to the Node Pool size during an upgrade.
         * 
         * > **Note:** If a percentage is provided, the number of surge nodes is calculated from the `node_count` value on the current cluster. Node surge can allow a cluster to have more nodes than `max_count` during an upgrade. Ensure that your cluster has enough [IP space](https://docs.microsoft.com/azure/aks/upgrade-cluster#customize-node-surge-upgrade) during an upgrade.
         * 
         * @return builder
         * 
         */
        public Builder maxSurge(String maxSurge) {
            return maxSurge(Output.of(maxSurge));
        }

        /**
         * @param nodeSoakDurationInMinutes The amount of time in minutes to wait after draining a node and before reimaging and moving on to next node. Defaults to `0`.
         * 
         * @return builder
         * 
         */
        public Builder nodeSoakDurationInMinutes(@Nullable Output nodeSoakDurationInMinutes) {
            $.nodeSoakDurationInMinutes = nodeSoakDurationInMinutes;
            return this;
        }

        /**
         * @param nodeSoakDurationInMinutes The amount of time in minutes to wait after draining a node and before reimaging and moving on to next node. Defaults to `0`.
         * 
         * @return builder
         * 
         */
        public Builder nodeSoakDurationInMinutes(Integer nodeSoakDurationInMinutes) {
            return nodeSoakDurationInMinutes(Output.of(nodeSoakDurationInMinutes));
        }

        public KubernetesClusterDefaultNodePoolUpgradeSettingsArgs build() {
            if ($.maxSurge == null) {
                throw new MissingRequiredPropertyException("KubernetesClusterDefaultNodePoolUpgradeSettingsArgs", "maxSurge");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy