Please wait. This can take some minutes ...
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.
com.pulumi.azure.containerservice.inputs.KubernetesClusterNetworkProfileArgs 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.
// *** 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.azure.containerservice.inputs.KubernetesClusterNetworkProfileLoadBalancerProfileArgs;
import com.pulumi.azure.containerservice.inputs.KubernetesClusterNetworkProfileNatGatewayProfileArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;
public final class KubernetesClusterNetworkProfileArgs extends com.pulumi.resources.ResourceArgs {
public static final KubernetesClusterNetworkProfileArgs Empty = new KubernetesClusterNetworkProfileArgs();
/**
* 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.
*
*/
@Import(name="dnsServiceIp")
private @Nullable Output dnsServiceIp;
/**
* @return 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.
*
*/
public Optional> dnsServiceIp() {
return Optional.ofNullable(this.dnsServiceIp);
}
/**
* 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.
*
*/
@Import(name="ipVersions")
private @Nullable Output> ipVersions;
/**
* @return 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.
*
*/
public Optional>> ipVersions() {
return Optional.ofNullable(this.ipVersions);
}
/**
* 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.
*
*/
@Import(name="loadBalancerProfile")
private @Nullable Output loadBalancerProfile;
/**
* @return 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.
*
*/
public Optional> loadBalancerProfile() {
return Optional.ofNullable(this.loadBalancerProfile);
}
/**
* 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.
*
*/
@Import(name="loadBalancerSku")
private @Nullable Output loadBalancerSku;
/**
* @return 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.
*
*/
public Optional> loadBalancerSku() {
return Optional.ofNullable(this.loadBalancerSku);
}
/**
* 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.
*
*/
@Import(name="natGatewayProfile")
private @Nullable Output natGatewayProfile;
/**
* @return 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.
*
*/
public Optional> natGatewayProfile() {
return Optional.ofNullable(this.natGatewayProfile);
}
/**
* 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.
*
*/
@Import(name="networkDataPlane")
private @Nullable Output networkDataPlane;
/**
* @return 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.
*
*/
public Optional> networkDataPlane() {
return Optional.ofNullable(this.networkDataPlane);
}
/**
* 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`.
*
*/
@Import(name="networkMode")
private @Nullable Output networkMode;
/**
* @return 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`.
*
*/
public Optional> networkMode() {
return Optional.ofNullable(this.networkMode);
}
/**
* 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`.
*
*/
@Import(name="networkPlugin", required=true)
private Output networkPlugin;
/**
* @return 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`.
*
*/
public Output networkPlugin() {
return this.networkPlugin;
}
/**
* 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.
*
*/
@Import(name="networkPluginMode")
private @Nullable Output networkPluginMode;
/**
* @return 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.
*
*/
public Optional> networkPluginMode() {
return Optional.ofNullable(this.networkPluginMode);
}
/**
* 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`.
*
*/
@Import(name="networkPolicy")
private @Nullable Output networkPolicy;
/**
* @return 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`.
*
*/
public Optional> networkPolicy() {
return Optional.ofNullable(this.networkPolicy);
}
/**
* 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).
*
*/
@Import(name="outboundType")
private @Nullable Output outboundType;
/**
* @return 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).
*
*/
public Optional> outboundType() {
return Optional.ofNullable(this.outboundType);
}
/**
* 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.
*
*/
@Import(name="podCidr")
private @Nullable Output podCidr;
/**
* @return 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.
*
*/
public Optional> podCidr() {
return Optional.ofNullable(this.podCidr);
}
/**
* 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.
*
*/
@Import(name="podCidrs")
private @Nullable Output> podCidrs;
/**
* @return 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.
*
*/
public Optional>> podCidrs() {
return Optional.ofNullable(this.podCidrs);
}
/**
* The Network Range used by the Kubernetes service. Changing this forces a new resource to be created.
*
*/
@Import(name="serviceCidr")
private @Nullable Output serviceCidr;
/**
* @return The Network Range used by the Kubernetes service. Changing this forces a new resource to be created.
*
*/
public Optional> serviceCidr() {
return Optional.ofNullable(this.serviceCidr);
}
/**
* 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.
*
*/
@Import(name="serviceCidrs")
private @Nullable Output> serviceCidrs;
/**
* @return 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 Optional>> serviceCidrs() {
return Optional.ofNullable(this.serviceCidrs);
}
private KubernetesClusterNetworkProfileArgs() {}
private KubernetesClusterNetworkProfileArgs(KubernetesClusterNetworkProfileArgs $) {
this.dnsServiceIp = $.dnsServiceIp;
this.ipVersions = $.ipVersions;
this.loadBalancerProfile = $.loadBalancerProfile;
this.loadBalancerSku = $.loadBalancerSku;
this.natGatewayProfile = $.natGatewayProfile;
this.networkDataPlane = $.networkDataPlane;
this.networkMode = $.networkMode;
this.networkPlugin = $.networkPlugin;
this.networkPluginMode = $.networkPluginMode;
this.networkPolicy = $.networkPolicy;
this.outboundType = $.outboundType;
this.podCidr = $.podCidr;
this.podCidrs = $.podCidrs;
this.serviceCidr = $.serviceCidr;
this.serviceCidrs = $.serviceCidrs;
}
public static Builder builder() {
return new Builder();
}
public static Builder builder(KubernetesClusterNetworkProfileArgs defaults) {
return new Builder(defaults);
}
public static final class Builder {
private KubernetesClusterNetworkProfileArgs $;
public Builder() {
$ = new KubernetesClusterNetworkProfileArgs();
}
public Builder(KubernetesClusterNetworkProfileArgs defaults) {
$ = new KubernetesClusterNetworkProfileArgs(Objects.requireNonNull(defaults));
}
/**
* @param 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.
*
* @return builder
*
*/
public Builder dnsServiceIp(@Nullable Output dnsServiceIp) {
$.dnsServiceIp = dnsServiceIp;
return this;
}
/**
* @param 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.
*
* @return builder
*
*/
public Builder dnsServiceIp(String dnsServiceIp) {
return dnsServiceIp(Output.of(dnsServiceIp));
}
/**
* @param 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.
*
* @return builder
*
*/
public Builder ipVersions(@Nullable Output> ipVersions) {
$.ipVersions = ipVersions;
return this;
}
/**
* @param 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.
*
* @return builder
*
*/
public Builder ipVersions(List ipVersions) {
return ipVersions(Output.of(ipVersions));
}
/**
* @param 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.
*
* @return builder
*
*/
public Builder ipVersions(String... ipVersions) {
return ipVersions(List.of(ipVersions));
}
/**
* @param 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.
*
* @return builder
*
*/
public Builder loadBalancerProfile(@Nullable Output loadBalancerProfile) {
$.loadBalancerProfile = loadBalancerProfile;
return this;
}
/**
* @param 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.
*
* @return builder
*
*/
public Builder loadBalancerProfile(KubernetesClusterNetworkProfileLoadBalancerProfileArgs loadBalancerProfile) {
return loadBalancerProfile(Output.of(loadBalancerProfile));
}
/**
* @param 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.
*
* @return builder
*
*/
public Builder loadBalancerSku(@Nullable Output loadBalancerSku) {
$.loadBalancerSku = loadBalancerSku;
return this;
}
/**
* @param 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.
*
* @return builder
*
*/
public Builder loadBalancerSku(String loadBalancerSku) {
return loadBalancerSku(Output.of(loadBalancerSku));
}
/**
* @param 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.
*
* @return builder
*
*/
public Builder natGatewayProfile(@Nullable Output natGatewayProfile) {
$.natGatewayProfile = natGatewayProfile;
return this;
}
/**
* @param 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.
*
* @return builder
*
*/
public Builder natGatewayProfile(KubernetesClusterNetworkProfileNatGatewayProfileArgs natGatewayProfile) {
return natGatewayProfile(Output.of(natGatewayProfile));
}
/**
* @param 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.
*
* @return builder
*
*/
public Builder networkDataPlane(@Nullable Output networkDataPlane) {
$.networkDataPlane = networkDataPlane;
return this;
}
/**
* @param 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.
*
* @return builder
*
*/
public Builder networkDataPlane(String networkDataPlane) {
return networkDataPlane(Output.of(networkDataPlane));
}
/**
* @param 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`.
*
* @return builder
*
*/
public Builder networkMode(@Nullable Output networkMode) {
$.networkMode = networkMode;
return this;
}
/**
* @param 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`.
*
* @return builder
*
*/
public Builder networkMode(String networkMode) {
return networkMode(Output.of(networkMode));
}
/**
* @param 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`.
*
* @return builder
*
*/
public Builder networkPlugin(Output networkPlugin) {
$.networkPlugin = networkPlugin;
return this;
}
/**
* @param 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`.
*
* @return builder
*
*/
public Builder networkPlugin(String networkPlugin) {
return networkPlugin(Output.of(networkPlugin));
}
/**
* @param 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.
*
* @return builder
*
*/
public Builder networkPluginMode(@Nullable Output networkPluginMode) {
$.networkPluginMode = networkPluginMode;
return this;
}
/**
* @param 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.
*
* @return builder
*
*/
public Builder networkPluginMode(String networkPluginMode) {
return networkPluginMode(Output.of(networkPluginMode));
}
/**
* @param 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`.
*
* @return builder
*
*/
public Builder networkPolicy(@Nullable Output networkPolicy) {
$.networkPolicy = networkPolicy;
return this;
}
/**
* @param 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`.
*
* @return builder
*
*/
public Builder networkPolicy(String networkPolicy) {
return networkPolicy(Output.of(networkPolicy));
}
/**
* @param 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).
*
* @return builder
*
*/
public Builder outboundType(@Nullable Output outboundType) {
$.outboundType = outboundType;
return this;
}
/**
* @param 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).
*
* @return builder
*
*/
public Builder outboundType(String outboundType) {
return outboundType(Output.of(outboundType));
}
/**
* @param 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.
*
* @return builder
*
*/
public Builder podCidr(@Nullable Output podCidr) {
$.podCidr = podCidr;
return this;
}
/**
* @param 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.
*
* @return builder
*
*/
public Builder podCidr(String podCidr) {
return podCidr(Output.of(podCidr));
}
/**
* @param 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.
*
* @return builder
*
*/
public Builder podCidrs(@Nullable Output> podCidrs) {
$.podCidrs = podCidrs;
return this;
}
/**
* @param 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.
*
* @return builder
*
*/
public Builder podCidrs(List podCidrs) {
return podCidrs(Output.of(podCidrs));
}
/**
* @param 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.
*
* @return builder
*
*/
public Builder podCidrs(String... podCidrs) {
return podCidrs(List.of(podCidrs));
}
/**
* @param serviceCidr The Network Range used by the Kubernetes service. Changing this forces a new resource to be created.
*
* @return builder
*
*/
public Builder serviceCidr(@Nullable Output serviceCidr) {
$.serviceCidr = serviceCidr;
return this;
}
/**
* @param serviceCidr The Network Range used by the Kubernetes service. Changing this forces a new resource to be created.
*
* @return builder
*
*/
public Builder serviceCidr(String serviceCidr) {
return serviceCidr(Output.of(serviceCidr));
}
/**
* @param 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.
*
* @return builder
*
*/
public Builder serviceCidrs(@Nullable Output> serviceCidrs) {
$.serviceCidrs = serviceCidrs;
return this;
}
/**
* @param 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.
*
* @return builder
*
*/
public Builder serviceCidrs(List serviceCidrs) {
return serviceCidrs(Output.of(serviceCidrs));
}
/**
* @param 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.
*
* @return builder
*
*/
public Builder serviceCidrs(String... serviceCidrs) {
return serviceCidrs(List.of(serviceCidrs));
}
public KubernetesClusterNetworkProfileArgs build() {
if ($.networkPlugin == null) {
throw new MissingRequiredPropertyException("KubernetesClusterNetworkProfileArgs", "networkPlugin");
}
return $;
}
}
}