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.
Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.gcp.container.kotlin.inputs
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.gcp.container.inputs.ClusterNodePoolArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName
/**
*
* @property autoscaling Configuration required by cluster autoscaler to adjust the size of the node pool to the current cluster usage.
* @property initialNodeCount The number of nodes to create in this
* cluster's default node pool. In regional or multi-zonal clusters, this is the
* number of nodes per zone. Must be set if `node_pool` is not set. If you're using
* `gcp.container.NodePool` objects with no default node pool, you'll need to
* set this to a value of at least `1`, alongside setting
* `remove_default_node_pool` to `true`.
* @property instanceGroupUrls The resource URLs of the managed instance groups associated with this node pool.
* @property managedInstanceGroupUrls List of instance group URLs which have been assigned to this node pool.
* @property management Node management configuration, wherein auto-repair and auto-upgrade is configured.
* @property maxPodsPerNode The maximum number of pods per node in this node pool. Note that this does not work on node pools which are "route-based" - that is, node pools belonging to clusters that do not have IP Aliasing enabled.
* @property name The name of the cluster, unique within the project and
* location.
* - - -
* @property namePrefix Creates a unique name for the node pool beginning with the specified prefix. Conflicts with name.
* @property networkConfig Configuration for
* [Adding Pod IP address ranges](https://cloud.google.com/kubernetes-engine/docs/how-to/multi-pod-cidr)) to the node pool. Structure is documented below
* @property nodeConfig Parameters used in creating the default node pool.
* Generally, this field should not be used at the same time as a
* `gcp.container.NodePool` or a `node_pool` block; this configuration
* manages the default node pool, which isn't recommended to be used.
* Structure is documented below.
* @property nodeCount The number of nodes per instance group. This field can be used to update the number of nodes per instance group but should not be used alongside autoscaling.
* @property nodeLocations The list of zones in which the cluster's nodes
* are located. Nodes must be in the region of their regional cluster or in the
* same region as their cluster's zone for zonal clusters. If this is specified for
* a zonal cluster, omit the cluster's zone.
* > A "multi-zonal" cluster is a zonal cluster with at least one additional zone
* defined; in a multi-zonal cluster, the cluster master is only present in a
* single zone while nodes are present in each of the primary zone and the node
* locations. In contrast, in a regional cluster, cluster master nodes are present
* in multiple zones in the region. For that reason, regional clusters should be
* preferred.
* @property placementPolicy Specifies the node placement policy
* @property queuedProvisioning Specifies the configuration of queued provisioning
* @property upgradeSettings Specify node upgrade settings to change how many nodes GKE attempts to upgrade at once. The number of nodes upgraded simultaneously is the sum of max_surge and max_unavailable. The maximum number of nodes upgraded simultaneously is limited to 20.
* @property version
*/
public data class ClusterNodePoolArgs(
public val autoscaling: Output? = null,
public val initialNodeCount: Output? = null,
public val instanceGroupUrls: Output>? = null,
public val managedInstanceGroupUrls: Output>? = null,
public val management: Output? = null,
public val maxPodsPerNode: Output? = null,
public val name: Output? = null,
public val namePrefix: Output? = null,
public val networkConfig: Output? = null,
public val nodeConfig: Output? = null,
public val nodeCount: Output? = null,
public val nodeLocations: Output>? = null,
public val placementPolicy: Output? = null,
public val queuedProvisioning: Output? = null,
public val upgradeSettings: Output? = null,
public val version: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.gcp.container.inputs.ClusterNodePoolArgs =
com.pulumi.gcp.container.inputs.ClusterNodePoolArgs.builder()
.autoscaling(autoscaling?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.initialNodeCount(initialNodeCount?.applyValue({ args0 -> args0 }))
.instanceGroupUrls(instanceGroupUrls?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
.managedInstanceGroupUrls(
managedInstanceGroupUrls?.applyValue({ args0 ->
args0.map({ args0 ->
args0
})
}),
)
.management(management?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.maxPodsPerNode(maxPodsPerNode?.applyValue({ args0 -> args0 }))
.name(name?.applyValue({ args0 -> args0 }))
.namePrefix(namePrefix?.applyValue({ args0 -> args0 }))
.networkConfig(networkConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.nodeConfig(nodeConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.nodeCount(nodeCount?.applyValue({ args0 -> args0 }))
.nodeLocations(nodeLocations?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
.placementPolicy(placementPolicy?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.queuedProvisioning(
queuedProvisioning?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.upgradeSettings(upgradeSettings?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.version(version?.applyValue({ args0 -> args0 })).build()
}
/**
* Builder for [ClusterNodePoolArgs].
*/
@PulumiTagMarker
public class ClusterNodePoolArgsBuilder internal constructor() {
private var autoscaling: Output? = null
private var initialNodeCount: Output? = null
private var instanceGroupUrls: Output>? = null
private var managedInstanceGroupUrls: Output>? = null
private var management: Output? = null
private var maxPodsPerNode: Output? = null
private var name: Output? = null
private var namePrefix: Output? = null
private var networkConfig: Output? = null
private var nodeConfig: Output? = null
private var nodeCount: Output? = null
private var nodeLocations: Output>? = null
private var placementPolicy: Output? = null
private var queuedProvisioning: Output? = null
private var upgradeSettings: Output? = null
private var version: Output? = null
/**
* @param value Configuration required by cluster autoscaler to adjust the size of the node pool to the current cluster usage.
*/
@JvmName("qblhywmlclwvvavn")
public suspend fun autoscaling(`value`: Output) {
this.autoscaling = value
}
/**
* @param value The number of nodes to create in this
* cluster's default node pool. In regional or multi-zonal clusters, this is the
* number of nodes per zone. Must be set if `node_pool` is not set. If you're using
* `gcp.container.NodePool` objects with no default node pool, you'll need to
* set this to a value of at least `1`, alongside setting
* `remove_default_node_pool` to `true`.
*/
@JvmName("ymtvhtyrqaiqdfwc")
public suspend fun initialNodeCount(`value`: Output) {
this.initialNodeCount = value
}
/**
* @param value The resource URLs of the managed instance groups associated with this node pool.
*/
@JvmName("kqnwhnlewxjdlicc")
public suspend fun instanceGroupUrls(`value`: Output>) {
this.instanceGroupUrls = value
}
@JvmName("rekaiqvluglrfspk")
public suspend fun instanceGroupUrls(vararg values: Output) {
this.instanceGroupUrls = Output.all(values.asList())
}
/**
* @param values The resource URLs of the managed instance groups associated with this node pool.
*/
@JvmName("oawdktbjhtndwblx")
public suspend fun instanceGroupUrls(values: List