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.azure.containerservice.kotlin.inputs
import com.pulumi.azure.containerservice.inputs.KubernetesClusterNetworkProfileArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Deprecated
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName
/**
*
* @property dnsServiceIp IP address within the Kubernetes service address range that will be used by cluster service discovery (kube-dns). Changing this forces a new resource to be created.
* @property dockerBridgeCidr IP address (in CIDR notation) used as the Docker bridge IP address on nodes. Changing this forces a new resource to be created.
* > **Note:** `docker_bridge_cidr` has been deprecated as the API no longer supports it and will be removed in version 4.0 of the provider.
* @property ebpfDataPlane
* @property ipVersions Specifies a list of IP versions the Kubernetes Cluster will use to assign IP addresses to its nodes and pods. Possible values are `IPv4` and/or `IPv6`. `IPv4` must always be specified. Changing this forces a new resource to be created.
* ->**Note:** To configure dual-stack networking `ip_versions` should be set to `["IPv4", "IPv6"]`.
* ->**Note:** Dual-stack networking requires that the Preview Feature `Microsoft.ContainerService/AKS-EnableDualStack` is enabled and the Resource Provider is re-registered, see [the documentation](https://docs.microsoft.com/azure/aks/configure-kubenet-dual-stack?tabs=azure-cli%2Ckubectl#register-the-aks-enabledualstack-preview-feature) for more information.
* @property loadBalancerProfile A `load_balancer_profile` block as defined below. This can only be specified when `load_balancer_sku` is set to `standard`. Changing this forces a new resource to be created.
* @property loadBalancerSku Specifies the SKU of the Load Balancer used for this Kubernetes Cluster. Possible values are `basic` and `standard`. Defaults to `standard`. Changing this forces a new resource to be created.
* @property natGatewayProfile A `nat_gateway_profile` block as defined below. This can only be specified when `load_balancer_sku` is set to `standard` and `outbound_type` is set to `managedNATGateway` or `userAssignedNATGateway`. Changing this forces a new resource to be created.
* @property networkDataPlane Specifies the data plane used for building the Kubernetes network. Possible values are `azure` and `cilium`. Defaults to `azure`. Disabling this forces a new resource to be created.
* > **Note:** When `network_data_plane` is set to `cilium`, the `network_plugin` field can only be set to `azure`.
* > **Note:** When `network_data_plane` is set to `cilium`, one of either `network_plugin_mode = "overlay"` or `pod_subnet_id` must be specified.
* > **Note:** This requires that the Preview Feature `Microsoft.ContainerService/CiliumDataplanePreview` is enabled and the Resource Provider is re-registered, see [the documentation](https://learn.microsoft.com/en-us/azure/aks/azure-cni-powered-by-cilium) for more information.
* @property networkMode Network mode to be used with Azure CNI. Possible values are `bridge` and `transparent`. Changing this forces a new resource to be created.
* > **Note:** `network_mode` can only be set to `bridge` for existing Kubernetes Clusters and cannot be used to provision new Clusters - this will be removed by Azure in the future.
* > **Note:** This property can only be set when `network_plugin` is set to `azure`.
* @property networkPlugin Network plugin to use for networking. Currently supported values are `azure`, `kubenet` and `none`. Changing this forces a new resource to be created.
* > **Note:** When `network_plugin` is set to `azure` - the `pod_cidr` field must not be set, unless specifying `network_plugin_mode` to `overlay`.
* @property networkPluginMode Specifies the network plugin mode used for building the Kubernetes network. Possible value is `overlay`.
* > **Note:** When `network_plugin_mode` is set to `overlay`, the `network_plugin` field can only be set to `azure`. When upgrading from Azure CNI without overlay, `pod_subnet_id` must be specified.
* @property networkPolicy Sets up network policy to be used with Azure CNI. [Network policy allows us to control the traffic flow between pods](https://docs.microsoft.com/azure/aks/use-network-policies). Currently supported values are `calico`, `azure` and `cilium`.
* > **Note:** When `network_policy` is set to `azure`, the `network_plugin` field can only be set to `azure`.
* > **Note:** When `network_policy` is set to `cilium`, the `network_data_plane` field must be set to `cilium`.
* @property outboundIpAddressIds The ID of the Public IP Addresses which should be used for outbound communication for the cluster load balancer.
* > **Note:** Set `outbound_ip_address_ids` to an empty slice `[]` in order to unlink it from the cluster. Unlinking a `outbound_ip_address_ids` will revert the load balancing for the cluster back to a managed one.
* @property outboundIpPrefixIds The ID of the outbound Public IP Address Prefixes which should be used for the cluster load balancer.
* > **Note:** Set `outbound_ip_prefix_ids` to an empty slice `[]` in order to unlink it from the cluster. Unlinking a `outbound_ip_prefix_ids` will revert the load balancing for the cluster back to a managed one.
* @property outboundType The outbound (egress) routing method which should be used for this Kubernetes Cluster. Possible values are `loadBalancer`, `userDefinedRouting`, `managedNATGateway` and `userAssignedNATGateway`. Defaults to `loadBalancer`. More information on supported migration paths for `outbound_type` can be found in [this documentation](https://learn.microsoft.com/azure/aks/egress-outboundtype#updating-outboundtype-after-cluster-creation).
* @property podCidr The CIDR to use for pod IP addresses. This field can only be set when `network_plugin` is set to `kubenet` or `network_plugin_mode` is set to `overlay`. Changing this forces a new resource to be created.
* @property podCidrs A list of CIDRs to use for pod IP addresses. For single-stack networking a single IPv4 CIDR is expected. For dual-stack networking an IPv4 and IPv6 CIDR are expected. Changing this forces a new resource to be created.
* @property serviceCidr The Network Range used by the Kubernetes service. Changing this forces a new resource to be created.
* @property serviceCidrs A list of CIDRs to use for Kubernetes services. For single-stack networking a single IPv4 CIDR is expected. For dual-stack networking an IPv4 and IPv6 CIDR are expected. Changing this forces a new resource to be created.
* > **Note:** This range should not be used by any network element on or connected to this VNet. Service address CIDR must be smaller than /12. `docker_bridge_cidr`, `dns_service_ip` and `service_cidr` should all be empty or all should be set.
*/
public data class KubernetesClusterNetworkProfileArgs(
public val dnsServiceIp: Output? = null,
@Deprecated(
message = """
`docker_bridge_cidr` has been deprecated as the API no longer supports it and will be removed in
version 4.0 of the provider.
""",
)
public val dockerBridgeCidr: Output? = null,
@Deprecated(
message = """
This property has been superseded by the property `network_data_plane` and will be removed in v4.0
of the AzureRM provider.
""",
)
public val ebpfDataPlane: Output? = null,
public val ipVersions: Output>? = null,
public val loadBalancerProfile: Output? =
null,
public val loadBalancerSku: Output? = null,
public val natGatewayProfile: Output? =
null,
public val networkDataPlane: Output? = null,
public val networkMode: Output? = null,
public val networkPlugin: Output,
public val networkPluginMode: Output? = null,
public val networkPolicy: Output? = null,
public val outboundIpAddressIds: Output>? = null,
public val outboundIpPrefixIds: Output>? = null,
public val outboundType: Output? = null,
public val podCidr: Output? = null,
public val podCidrs: Output>? = null,
public val serviceCidr: Output? = null,
public val serviceCidrs: Output>? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.azure.containerservice.inputs.KubernetesClusterNetworkProfileArgs =
com.pulumi.azure.containerservice.inputs.KubernetesClusterNetworkProfileArgs.builder()
.dnsServiceIp(dnsServiceIp?.applyValue({ args0 -> args0 }))
.dockerBridgeCidr(dockerBridgeCidr?.applyValue({ args0 -> args0 }))
.ebpfDataPlane(ebpfDataPlane?.applyValue({ args0 -> args0 }))
.ipVersions(ipVersions?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
.loadBalancerProfile(
loadBalancerProfile?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.loadBalancerSku(loadBalancerSku?.applyValue({ args0 -> args0 }))
.natGatewayProfile(natGatewayProfile?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.networkDataPlane(networkDataPlane?.applyValue({ args0 -> args0 }))
.networkMode(networkMode?.applyValue({ args0 -> args0 }))
.networkPlugin(networkPlugin.applyValue({ args0 -> args0 }))
.networkPluginMode(networkPluginMode?.applyValue({ args0 -> args0 }))
.networkPolicy(networkPolicy?.applyValue({ args0 -> args0 }))
.outboundIpAddressIds(outboundIpAddressIds?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
.outboundIpPrefixIds(outboundIpPrefixIds?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
.outboundType(outboundType?.applyValue({ args0 -> args0 }))
.podCidr(podCidr?.applyValue({ args0 -> args0 }))
.podCidrs(podCidrs?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
.serviceCidr(serviceCidr?.applyValue({ args0 -> args0 }))
.serviceCidrs(serviceCidrs?.applyValue({ args0 -> args0.map({ args0 -> args0 }) })).build()
}
/**
* Builder for [KubernetesClusterNetworkProfileArgs].
*/
@PulumiTagMarker
public class KubernetesClusterNetworkProfileArgsBuilder internal constructor() {
private var dnsServiceIp: Output? = null
private var dockerBridgeCidr: Output? = null
private var ebpfDataPlane: Output? = null
private var ipVersions: Output>? = null
private var loadBalancerProfile: Output? =
null
private var loadBalancerSku: Output? = null
private var natGatewayProfile: Output? =
null
private var networkDataPlane: Output? = null
private var networkMode: Output? = null
private var networkPlugin: Output? = null
private var networkPluginMode: Output? = null
private var networkPolicy: Output? = null
private var outboundIpAddressIds: Output>? = null
private var outboundIpPrefixIds: Output>? = null
private var outboundType: Output? = null
private var podCidr: Output? = null
private var podCidrs: Output>? = null
private var serviceCidr: Output? = null
private var serviceCidrs: Output>? = null
/**
* @param value IP address within the Kubernetes service address range that will be used by cluster service discovery (kube-dns). Changing this forces a new resource to be created.
*/
@JvmName("qnxuyvovcaqednhq")
public suspend fun dnsServiceIp(`value`: Output) {
this.dnsServiceIp = value
}
/**
* @param value IP address (in CIDR notation) used as the Docker bridge IP address on nodes. Changing this forces a new resource to be created.
* > **Note:** `docker_bridge_cidr` has been deprecated as the API no longer supports it and will be removed in version 4.0 of the provider.
*/
@Deprecated(
message = """
`docker_bridge_cidr` has been deprecated as the API no longer supports it and will be removed in
version 4.0 of the provider.
""",
)
@JvmName("ynysyjwpvtjmvmbr")
public suspend fun dockerBridgeCidr(`value`: Output) {
this.dockerBridgeCidr = value
}
/**
* @param value
*/
@Deprecated(
message = """
This property has been superseded by the property `network_data_plane` and will be removed in v4.0
of the AzureRM provider.
""",
)
@JvmName("xfdywfsjkaxsfgod")
public suspend fun ebpfDataPlane(`value`: Output) {
this.ebpfDataPlane = value
}
/**
* @param value Specifies a list of IP versions the Kubernetes Cluster will use to assign IP addresses to its nodes and pods. Possible values are `IPv4` and/or `IPv6`. `IPv4` must always be specified. Changing this forces a new resource to be created.
* ->**Note:** To configure dual-stack networking `ip_versions` should be set to `["IPv4", "IPv6"]`.
* ->**Note:** Dual-stack networking requires that the Preview Feature `Microsoft.ContainerService/AKS-EnableDualStack` is enabled and the Resource Provider is re-registered, see [the documentation](https://docs.microsoft.com/azure/aks/configure-kubenet-dual-stack?tabs=azure-cli%2Ckubectl#register-the-aks-enabledualstack-preview-feature) for more information.
*/
@JvmName("smadeqgvkqkxpnvc")
public suspend fun ipVersions(`value`: Output>) {
this.ipVersions = value
}
@JvmName("eajobvshacthnyvf")
public suspend fun ipVersions(vararg values: Output) {
this.ipVersions = Output.all(values.asList())
}
/**
* @param values Specifies a list of IP versions the Kubernetes Cluster will use to assign IP addresses to its nodes and pods. Possible values are `IPv4` and/or `IPv6`. `IPv4` must always be specified. Changing this forces a new resource to be created.
* ->**Note:** To configure dual-stack networking `ip_versions` should be set to `["IPv4", "IPv6"]`.
* ->**Note:** Dual-stack networking requires that the Preview Feature `Microsoft.ContainerService/AKS-EnableDualStack` is enabled and the Resource Provider is re-registered, see [the documentation](https://docs.microsoft.com/azure/aks/configure-kubenet-dual-stack?tabs=azure-cli%2Ckubectl#register-the-aks-enabledualstack-preview-feature) for more information.
*/
@JvmName("rnijbowcfgpftlop")
public suspend fun ipVersions(values: List