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

com.pulumi.azure.containerservice.inputs.KubernetesClusterNodePoolUpgradeSettingsArgs 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 KubernetesClusterNodePoolUpgradeSettingsArgs extends com.pulumi.resources.ResourceArgs {

    public static final KubernetesClusterNodePoolUpgradeSettingsArgs Empty = new KubernetesClusterNodePoolUpgradeSettingsArgs();

    /**
     * The amount of time in minutes to wait on eviction of pods and graceful termination per node. This eviction wait time honors waiting on pod disruption budgets. 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 waiting on pod disruption budgets. 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.
     * 
     */
    @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.
     * 
     */
    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 KubernetesClusterNodePoolUpgradeSettingsArgs() {}

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

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

    public static final class Builder {
        private KubernetesClusterNodePoolUpgradeSettingsArgs $;

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

        public Builder(KubernetesClusterNodePoolUpgradeSettingsArgs defaults) {
            $ = new KubernetesClusterNodePoolUpgradeSettingsArgs(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 waiting on pod disruption budgets. 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 waiting on pod disruption budgets. 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.
         * 
         * @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.
         * 
         * @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 KubernetesClusterNodePoolUpgradeSettingsArgs build() {
            if ($.maxSurge == null) {
                throw new MissingRequiredPropertyException("KubernetesClusterNodePoolUpgradeSettingsArgs", "maxSurge");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy