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

com.pulumi.azurenative.networkcloud.KubernetesCluster Maven / Gradle / Ivy

There is a newer version: 2.78.0
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.azurenative.networkcloud;

import com.pulumi.azurenative.Utilities;
import com.pulumi.azurenative.networkcloud.KubernetesClusterArgs;
import com.pulumi.azurenative.networkcloud.outputs.AadConfigurationResponse;
import com.pulumi.azurenative.networkcloud.outputs.AdministratorConfigurationResponse;
import com.pulumi.azurenative.networkcloud.outputs.AvailableUpgradeResponse;
import com.pulumi.azurenative.networkcloud.outputs.ControlPlaneNodeConfigurationResponse;
import com.pulumi.azurenative.networkcloud.outputs.ExtendedLocationResponse;
import com.pulumi.azurenative.networkcloud.outputs.FeatureStatusResponse;
import com.pulumi.azurenative.networkcloud.outputs.InitialAgentPoolConfigurationResponse;
import com.pulumi.azurenative.networkcloud.outputs.KubernetesClusterNodeResponse;
import com.pulumi.azurenative.networkcloud.outputs.ManagedResourceGroupConfigurationResponse;
import com.pulumi.azurenative.networkcloud.outputs.NetworkConfigurationResponse;
import com.pulumi.azurenative.networkcloud.outputs.SystemDataResponse;
import com.pulumi.core.Alias;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Export;
import com.pulumi.core.annotations.ResourceType;
import com.pulumi.core.internal.Codegen;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import javax.annotation.Nullable;

/**
 * Azure REST API version: 2023-10-01-preview.
 * 
 * Other available API versions: 2023-07-01, 2024-06-01-preview, 2024-07-01.
 * 
 * ## Example Usage
 * ### Create or update Kubernetes cluster
 * 
 * 
 * {@code
 * package generated_program;
 * 
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.azurenative.networkcloud.KubernetesCluster;
 * import com.pulumi.azurenative.networkcloud.KubernetesClusterArgs;
 * import com.pulumi.azurenative.networkcloud.inputs.AadConfigurationArgs;
 * import com.pulumi.azurenative.networkcloud.inputs.AdministratorConfigurationArgs;
 * import com.pulumi.azurenative.networkcloud.inputs.ControlPlaneNodeConfigurationArgs;
 * import com.pulumi.azurenative.networkcloud.inputs.ExtendedLocationArgs;
 * import com.pulumi.azurenative.networkcloud.inputs.InitialAgentPoolConfigurationArgs;
 * import com.pulumi.azurenative.networkcloud.inputs.AgentOptionsArgs;
 * import com.pulumi.azurenative.networkcloud.inputs.AttachedNetworkConfigurationArgs;
 * import com.pulumi.azurenative.networkcloud.inputs.AgentPoolUpgradeSettingsArgs;
 * import com.pulumi.azurenative.networkcloud.inputs.ManagedResourceGroupConfigurationArgs;
 * import com.pulumi.azurenative.networkcloud.inputs.NetworkConfigurationArgs;
 * import com.pulumi.azurenative.networkcloud.inputs.BgpServiceLoadBalancerConfigurationArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * 
 * public class App }{{@code
 *     public static void main(String[] args) }{{@code
 *         Pulumi.run(App::stack);
 *     }}{@code
 * 
 *     public static void stack(Context ctx) }{{@code
 *         var kubernetesCluster = new KubernetesCluster("kubernetesCluster", KubernetesClusterArgs.builder()
 *             .aadConfiguration(AadConfigurationArgs.builder()
 *                 .adminGroupObjectIds("ffffffff-ffff-ffff-ffff-ffffffffffff")
 *                 .build())
 *             .administratorConfiguration(AdministratorConfigurationArgs.builder()
 *                 .adminUsername("azure")
 *                 .sshPublicKeys(SshPublicKeyArgs.builder()
 *                     .keyData("ssh-rsa AAtsE3njSONzDYRIZv/WLjVuMfrUSByHp+jfaaOLHTIIB4fJvo6dQUZxE20w2iDHV3tEkmnTo84eba97VMueQD6OzJPEyWZMRpz8UYWOd0IXeRqiFu1lawNblZhwNT/ojNZfpB3af/YDzwQCZgTcTRyNNhL4o/blKUmug0daSsSXISTRnIDpcf5qytjs1Xo+yYyJMvzLL59mhAyb3p/cD+Y3/s3WhAx+l0XOKpzXnblrv9d3q4c2tWmm/SyFqthaqd0= admin}{@literal @}{@code vm")
 *                     .build())
 *                 .build())
 *             .controlPlaneNodeConfiguration(ControlPlaneNodeConfigurationArgs.builder()
 *                 .administratorConfiguration(AdministratorConfigurationArgs.builder()
 *                     .adminUsername("azure")
 *                     .sshPublicKeys(SshPublicKeyArgs.builder()
 *                         .keyData("ssh-rsa AAtsE3njSONzDYRIZv/WLjVuMfrUSByHp+jfaaOLHTIIB4fJvo6dQUZxE20w2iDHV3tEkmnTo84eba97VMueQD6OzJPEyWZMRpz8UYWOd0IXeRqiFu1lawNblZhwNT/ojNZfpB3af/YDzwQCZgTcTRyNNhL4o/blKUmug0daSsSXISTRnIDpcf5qytjs1Xo+yYyJMvzLL59mhAyb3p/cD+Y3/s3WhAx+l0XOKpzXnblrv9d3q4c2tWmm/SyFqthaqd0= admin}{@literal @}{@code vm")
 *                         .build())
 *                     .build())
 *                 .availabilityZones(                
 *                     "1",
 *                     "2",
 *                     "3")
 *                 .count(3)
 *                 .vmSkuName("NC_G4_v1")
 *                 .build())
 *             .extendedLocation(ExtendedLocationArgs.builder()
 *                 .name("/subscriptions/123e4567-e89b-12d3-a456-426655440000/resourceGroups/resourceGroupName/providers/Microsoft.ExtendedLocation/customLocations/clusterExtendedLocationName")
 *                 .type("CustomLocation")
 *                 .build())
 *             .initialAgentPoolConfigurations(InitialAgentPoolConfigurationArgs.builder()
 *                 .administratorConfiguration(AdministratorConfigurationArgs.builder()
 *                     .adminUsername("azure")
 *                     .sshPublicKeys(SshPublicKeyArgs.builder()
 *                         .keyData("ssh-rsa AAtsE3njSONzDYRIZv/WLjVuMfrUSByHp+jfaaOLHTIIB4fJvo6dQUZxE20w2iDHV3tEkmnTo84eba97VMueQD6OzJPEyWZMRpz8UYWOd0IXeRqiFu1lawNblZhwNT/ojNZfpB3af/YDzwQCZgTcTRyNNhL4o/blKUmug0daSsSXISTRnIDpcf5qytjs1Xo+yYyJMvzLL59mhAyb3p/cD+Y3/s3WhAx+l0XOKpzXnblrv9d3q4c2tWmm/SyFqthaqd0= admin}{@literal @}{@code vm")
 *                         .build())
 *                     .build())
 *                 .agentOptions(AgentOptionsArgs.builder()
 *                     .hugepagesCount(96)
 *                     .hugepagesSize("1G")
 *                     .build())
 *                 .attachedNetworkConfiguration(AttachedNetworkConfigurationArgs.builder()
 *                     .l2Networks(L2NetworkAttachmentConfigurationArgs.builder()
 *                         .networkId("/subscriptions/123e4567-e89b-12d3-a456-426655440000/resourceGroups/resourceGroupName/providers/Microsoft.NetworkCloud/l2Networks/l2NetworkName")
 *                         .pluginType("DPDK")
 *                         .build())
 *                     .l3Networks(L3NetworkAttachmentConfigurationArgs.builder()
 *                         .ipamEnabled("False")
 *                         .networkId("/subscriptions/123e4567-e89b-12d3-a456-426655440000/resourceGroups/resourceGroupName/providers/Microsoft.NetworkCloud/l3Networks/l3NetworkName")
 *                         .pluginType("SRIOV")
 *                         .build())
 *                     .trunkedNetworks(TrunkedNetworkAttachmentConfigurationArgs.builder()
 *                         .networkId("/subscriptions/123e4567-e89b-12d3-a456-426655440000/resourceGroups/resourceGroupName/providers/Microsoft.NetworkCloud/trunkedNetworks/trunkedNetworkName")
 *                         .pluginType("MACVLAN")
 *                         .build())
 *                     .build())
 *                 .availabilityZones(                
 *                     "1",
 *                     "2",
 *                     "3")
 *                 .count(3)
 *                 .labels(KubernetesLabelArgs.builder()
 *                     .key("kubernetes.label")
 *                     .value("true")
 *                     .build())
 *                 .mode("System")
 *                 .name("SystemPool-1")
 *                 .taints(KubernetesLabelArgs.builder()
 *                     .key("kubernetes.taint")
 *                     .value("true")
 *                     .build())
 *                 .upgradeSettings(AgentPoolUpgradeSettingsArgs.builder()
 *                     .maxSurge("1")
 *                     .build())
 *                 .vmSkuName("NC_M16_v1")
 *                 .build())
 *             .kubernetesClusterName("kubernetesClusterName")
 *             .kubernetesVersion("1.24.12-1")
 *             .location("location")
 *             .managedResourceGroupConfiguration(ManagedResourceGroupConfigurationArgs.builder()
 *                 .location("East US")
 *                 .name("my-managed-rg")
 *                 .build())
 *             .networkConfiguration(NetworkConfigurationArgs.builder()
 *                 .attachedNetworkConfiguration(AttachedNetworkConfigurationArgs.builder()
 *                     .l2Networks(L2NetworkAttachmentConfigurationArgs.builder()
 *                         .networkId("/subscriptions/123e4567-e89b-12d3-a456-426655440000/resourceGroups/resourceGroupName/providers/Microsoft.NetworkCloud/l2Networks/l2NetworkName")
 *                         .pluginType("DPDK")
 *                         .build())
 *                     .l3Networks(L3NetworkAttachmentConfigurationArgs.builder()
 *                         .ipamEnabled("False")
 *                         .networkId("/subscriptions/123e4567-e89b-12d3-a456-426655440000/resourceGroups/resourceGroupName/providers/Microsoft.NetworkCloud/l3Networks/l3NetworkName")
 *                         .pluginType("SRIOV")
 *                         .build())
 *                     .trunkedNetworks(TrunkedNetworkAttachmentConfigurationArgs.builder()
 *                         .networkId("/subscriptions/123e4567-e89b-12d3-a456-426655440000/resourceGroups/resourceGroupName/providers/Microsoft.NetworkCloud/trunkedNetworks/trunkedNetworkName")
 *                         .pluginType("MACVLAN")
 *                         .build())
 *                     .build())
 *                 .bgpServiceLoadBalancerConfiguration(BgpServiceLoadBalancerConfigurationArgs.builder()
 *                     .bgpAdvertisements(BgpAdvertisementArgs.builder()
 *                         .advertiseToFabric("True")
 *                         .communities("64512:100")
 *                         .ipAddressPools("pool1")
 *                         .peers("peer1")
 *                         .build())
 *                     .bgpPeers(ServiceLoadBalancerBgpPeerArgs.builder()
 *                         .bfdEnabled("False")
 *                         .bgpMultiHop("False")
 *                         .holdTime("P300s")
 *                         .keepAliveTime("P300s")
 *                         .myAsn(64512)
 *                         .name("peer1")
 *                         .peerAddress("203.0.113.254")
 *                         .peerAsn(64497)
 *                         .peerPort(179)
 *                         .build())
 *                     .fabricPeeringEnabled("True")
 *                     .ipAddressPools(IpAddressPoolArgs.builder()
 *                         .addresses("198.51.102.0/24")
 *                         .autoAssign("True")
 *                         .name("pool1")
 *                         .onlyUseHostIps("True")
 *                         .build())
 *                     .build())
 *                 .cloudServicesNetworkId("/subscriptions/123e4567-e89b-12d3-a456-426655440000/resourceGroups/resourceGroupName/providers/Microsoft.NetworkCloud/cloudServicesNetworks/cloudServicesNetworkName")
 *                 .cniNetworkId("/subscriptions/123e4567-e89b-12d3-a456-426655440000/resourceGroups/resourceGroupName/providers/Microsoft.NetworkCloud/l3Networks/l3NetworkName")
 *                 .dnsServiceIp("198.51.101.2")
 *                 .podCidrs("198.51.100.0/24")
 *                 .serviceCidrs("198.51.101.0/24")
 *                 .build())
 *             .resourceGroupName("resourceGroupName")
 *             .tags(Map.ofEntries(
 *                 Map.entry("key1", "myvalue1"),
 *                 Map.entry("key2", "myvalue2")
 *             ))
 *             .build());
 * 
 *     }}{@code
 * }}{@code
 * 
 * }
 * 
* * ## Import * * An existing resource can be imported using its type token, name, and identifier, e.g. * * ```sh * $ pulumi import azure-native:networkcloud:KubernetesCluster KubernetesClusterName /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetworkCloud/kubernetesClusters/{kubernetesClusterName} * ``` * */ @ResourceType(type="azure-native:networkcloud:KubernetesCluster") public class KubernetesCluster extends com.pulumi.resources.CustomResource { /** * The Azure Active Directory Integration properties. * */ @Export(name="aadConfiguration", refs={AadConfigurationResponse.class}, tree="[0]") private Output aadConfiguration; /** * @return The Azure Active Directory Integration properties. * */ public Output> aadConfiguration() { return Codegen.optional(this.aadConfiguration); } /** * The administrative credentials that will be applied to the control plane and agent pool nodes that do not specify their own values. * */ @Export(name="administratorConfiguration", refs={AdministratorConfigurationResponse.class}, tree="[0]") private Output administratorConfiguration; /** * @return The administrative credentials that will be applied to the control plane and agent pool nodes that do not specify their own values. * */ public Output> administratorConfiguration() { return Codegen.optional(this.administratorConfiguration); } /** * The full list of network resource IDs that are attached to this cluster, including those attached only to specific agent pools. * */ @Export(name="attachedNetworkIds", refs={List.class,String.class}, tree="[0,1]") private Output> attachedNetworkIds; /** * @return The full list of network resource IDs that are attached to this cluster, including those attached only to specific agent pools. * */ public Output> attachedNetworkIds() { return this.attachedNetworkIds; } /** * The list of versions that this Kubernetes cluster can be upgraded to. * */ @Export(name="availableUpgrades", refs={List.class,AvailableUpgradeResponse.class}, tree="[0,1]") private Output> availableUpgrades; /** * @return The list of versions that this Kubernetes cluster can be upgraded to. * */ public Output> availableUpgrades() { return this.availableUpgrades; } /** * The resource ID of the Network Cloud cluster. * */ @Export(name="clusterId", refs={String.class}, tree="[0]") private Output clusterId; /** * @return The resource ID of the Network Cloud cluster. * */ public Output clusterId() { return this.clusterId; } /** * The resource ID of the connected cluster set up when this Kubernetes cluster is created. * */ @Export(name="connectedClusterId", refs={String.class}, tree="[0]") private Output connectedClusterId; /** * @return The resource ID of the connected cluster set up when this Kubernetes cluster is created. * */ public Output connectedClusterId() { return this.connectedClusterId; } /** * The current running version of Kubernetes on the control plane. * */ @Export(name="controlPlaneKubernetesVersion", refs={String.class}, tree="[0]") private Output controlPlaneKubernetesVersion; /** * @return The current running version of Kubernetes on the control plane. * */ public Output controlPlaneKubernetesVersion() { return this.controlPlaneKubernetesVersion; } /** * The defining characteristics of the control plane for this Kubernetes Cluster. * */ @Export(name="controlPlaneNodeConfiguration", refs={ControlPlaneNodeConfigurationResponse.class}, tree="[0]") private Output controlPlaneNodeConfiguration; /** * @return The defining characteristics of the control plane for this Kubernetes Cluster. * */ public Output controlPlaneNodeConfiguration() { return this.controlPlaneNodeConfiguration; } /** * The current status of the Kubernetes cluster. * */ @Export(name="detailedStatus", refs={String.class}, tree="[0]") private Output detailedStatus; /** * @return The current status of the Kubernetes cluster. * */ public Output detailedStatus() { return this.detailedStatus; } /** * The descriptive message about the current detailed status. * */ @Export(name="detailedStatusMessage", refs={String.class}, tree="[0]") private Output detailedStatusMessage; /** * @return The descriptive message about the current detailed status. * */ public Output detailedStatusMessage() { return this.detailedStatusMessage; } /** * The extended location of the cluster associated with the resource. * */ @Export(name="extendedLocation", refs={ExtendedLocationResponse.class}, tree="[0]") private Output extendedLocation; /** * @return The extended location of the cluster associated with the resource. * */ public Output extendedLocation() { return this.extendedLocation; } /** * The current feature settings. * */ @Export(name="featureStatuses", refs={List.class,FeatureStatusResponse.class}, tree="[0,1]") private Output> featureStatuses; /** * @return The current feature settings. * */ public Output> featureStatuses() { return this.featureStatuses; } /** * The agent pools that are created with this Kubernetes cluster for running critical system services and workloads. This data in this field is only used during creation, and the field will be empty following the creation of the Kubernetes Cluster. After creation, the management of agent pools is done using the agentPools sub-resource. * */ @Export(name="initialAgentPoolConfigurations", refs={List.class,InitialAgentPoolConfigurationResponse.class}, tree="[0,1]") private Output> initialAgentPoolConfigurations; /** * @return The agent pools that are created with this Kubernetes cluster for running critical system services and workloads. This data in this field is only used during creation, and the field will be empty following the creation of the Kubernetes Cluster. After creation, the management of agent pools is done using the agentPools sub-resource. * */ public Output> initialAgentPoolConfigurations() { return this.initialAgentPoolConfigurations; } /** * The Kubernetes version for this cluster. Accepts n.n, n.n.n, and n.n.n-n format. The interpreted version used will be resolved into this field after creation or update. * */ @Export(name="kubernetesVersion", refs={String.class}, tree="[0]") private Output kubernetesVersion; /** * @return The Kubernetes version for this cluster. Accepts n.n, n.n.n, and n.n.n-n format. The interpreted version used will be resolved into this field after creation or update. * */ public Output kubernetesVersion() { return this.kubernetesVersion; } /** * The geo-location where the resource lives * */ @Export(name="location", refs={String.class}, tree="[0]") private Output location; /** * @return The geo-location where the resource lives * */ public Output location() { return this.location; } /** * The configuration of the managed resource group associated with the resource. * */ @Export(name="managedResourceGroupConfiguration", refs={ManagedResourceGroupConfigurationResponse.class}, tree="[0]") private Output managedResourceGroupConfiguration; /** * @return The configuration of the managed resource group associated with the resource. * */ public Output> managedResourceGroupConfiguration() { return Codegen.optional(this.managedResourceGroupConfiguration); } /** * The name of the resource * */ @Export(name="name", refs={String.class}, tree="[0]") private Output name; /** * @return The name of the resource * */ public Output name() { return this.name; } /** * The configuration of the Kubernetes cluster networking, including the attachment of networks that span the cluster. * */ @Export(name="networkConfiguration", refs={NetworkConfigurationResponse.class}, tree="[0]") private Output networkConfiguration; /** * @return The configuration of the Kubernetes cluster networking, including the attachment of networks that span the cluster. * */ public Output networkConfiguration() { return this.networkConfiguration; } /** * The details of the nodes in this cluster. * */ @Export(name="nodes", refs={List.class,KubernetesClusterNodeResponse.class}, tree="[0,1]") private Output> nodes; /** * @return The details of the nodes in this cluster. * */ public Output> nodes() { return this.nodes; } /** * The provisioning state of the Kubernetes cluster resource. * */ @Export(name="provisioningState", refs={String.class}, tree="[0]") private Output provisioningState; /** * @return The provisioning state of the Kubernetes cluster resource. * */ public Output provisioningState() { return this.provisioningState; } /** * Azure Resource Manager metadata containing createdBy and modifiedBy information. * */ @Export(name="systemData", refs={SystemDataResponse.class}, tree="[0]") private Output systemData; /** * @return Azure Resource Manager metadata containing createdBy and modifiedBy information. * */ public Output systemData() { return this.systemData; } /** * Resource tags. * */ @Export(name="tags", refs={Map.class,String.class}, tree="[0,1,1]") private Output> tags; /** * @return Resource tags. * */ public Output>> tags() { return Codegen.optional(this.tags); } /** * The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" * */ @Export(name="type", refs={String.class}, tree="[0]") private Output type; /** * @return The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" * */ public Output type() { return this.type; } /** * * @param name The _unique_ name of the resulting resource. */ public KubernetesCluster(java.lang.String name) { this(name, KubernetesClusterArgs.Empty); } /** * * @param name The _unique_ name of the resulting resource. * @param args The arguments to use to populate this resource's properties. */ public KubernetesCluster(java.lang.String name, KubernetesClusterArgs args) { this(name, args, null); } /** * * @param name The _unique_ name of the resulting resource. * @param args The arguments to use to populate this resource's properties. * @param options A bag of options that control this resource's behavior. */ public KubernetesCluster(java.lang.String name, KubernetesClusterArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("azure-native:networkcloud:KubernetesCluster", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); } private KubernetesCluster(java.lang.String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("azure-native:networkcloud:KubernetesCluster", name, null, makeResourceOptions(options, id), false); } private static KubernetesClusterArgs makeArgs(KubernetesClusterArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { if (options != null && options.getUrn().isPresent()) { return null; } return args == null ? KubernetesClusterArgs.Empty : args; } private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) .aliases(List.of( Output.of(Alias.builder().type("azure-native:networkcloud/v20230701:KubernetesCluster").build()), Output.of(Alias.builder().type("azure-native:networkcloud/v20231001preview:KubernetesCluster").build()), Output.of(Alias.builder().type("azure-native:networkcloud/v20240601preview:KubernetesCluster").build()), Output.of(Alias.builder().type("azure-native:networkcloud/v20240701:KubernetesCluster").build()) )) .build(); return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); } /** * Get an existing Host resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param options Optional settings to control the behavior of the CustomResource. */ public static KubernetesCluster get(java.lang.String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { return new KubernetesCluster(name, id, options); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy