import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * This resource provides the Node Pool resource in Oracle Cloud Infrastructure Container Engine service. * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/containerengine/latest/NodePool * * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/container_engine * * Create a new node pool. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as oci from "@pulumi/oci"; * * const testNodePool = new oci.containerengine.NodePool("test_node_pool", { * clusterId: testCluster.id, * compartmentId: compartmentId, * name: nodePoolName, * nodeShape: nodePoolNodeShape, * definedTags: { * "Operations.CostCenter": "42", * }, * freeformTags: { * Department: "Finance", * }, * initialNodeLabels: [{ * key: nodePoolInitialNodeLabelsKey, * value: nodePoolInitialNodeLabelsValue, * }], * kubernetesVersion: nodePoolKubernetesVersion, * networkLaunchType: nodePoolNetworkLaunchType, * nodeConfigDetails: { * placementConfigs: [{ * availabilityDomain: nodePoolNodeConfigDetailsPlacementConfigsAvailabilityDomain, * subnetId: testSubnet.id, * capacityReservationId: testCapacityReservation.id, * faultDomains: nodePoolNodeConfigDetailsPlacementConfigsFaultDomains, * hostGroupId: testGroup.id, * preemptibleNodeConfig: { * preemptionAction: { * type: nodePoolNodeConfigDetailsPlacementConfigsPreemptibleNodeConfigPreemptionActionType, * isPreserveBootVolume: nodePoolNodeConfigDetailsPlacementConfigsPreemptibleNodeConfigPreemptionActionIsPreserveBootVolume === "true", * }, * }, * }], * size: Number(nodePoolNodeConfigDetailsSize), * computeClusterId: testComputeCluster.id, * definedTags: { * "Operations.CostCenter": "42", * }, * freeformTags: { * Department: "Finance", * }, * isPvEncryptionInTransitEnabled: nodePoolNodeConfigDetailsIsPvEncryptionInTransitEnabled === "true", * kmsKeyId: testKey.id, * nodePoolPodNetworkOptionDetails: { * cniType: nodePoolNodeConfigDetailsNodePoolPodNetworkOptionDetailsCniType, * maxPodsPerNode: Number(nodePoolNodeConfigDetailsNodePoolPodNetworkOptionDetailsMaxPodsPerNode), * podNsgIds: nodePoolNodeConfigDetailsNodePoolPodNetworkOptionDetailsPodNsgIds, * podSubnetIds: nodePoolNodeConfigDetailsNodePoolPodNetworkOptionDetailsPodSubnetIds, * }, * nsgIds: nodePoolNodeConfigDetailsNsgIds, * }, * nodeEvictionNodePoolSettings: { * evictionGraceDuration: nodePoolNodeEvictionNodePoolSettingsEvictionGraceDuration, * isForceActionAfterGraceDuration: nodePoolNodeEvictionNodePoolSettingsIsForceActionAfterGraceDuration === "true", * isForceDeleteAfterGraceDuration: nodePoolNodeEvictionNodePoolSettingsIsForceDeleteAfterGraceDuration === "true", * }, * nodeImageName: testImage.name, * nodeMetadata: nodePoolNodeMetadata, * nodePoolCyclingDetails: { * cycleModes: nodePoolNodePoolCyclingDetailsCycleModes, * isNodeCyclingEnabled: nodePoolNodePoolCyclingDetailsIsNodeCyclingEnabled === "true", * maximumSurge: nodePoolNodePoolCyclingDetailsMaximumSurge, * maximumUnavailable: nodePoolNodePoolCyclingDetailsMaximumUnavailable, * }, * nodeShapeConfig: { * memoryInGbs: nodePoolNodeShapeConfigMemoryInGbs, * ocpus: nodePoolNodeShapeConfigOcpus, * }, * nodeSourceDetails: { * imageId: testImage.id, * sourceType: nodePoolNodeSourceDetailsSourceType, * bootVolumeSizeInGbs: nodePoolNodeSourceDetailsBootVolumeSizeInGbs, * }, * primaryVnic: { * securityAttributes: nodePoolPrimaryVnicSecurityAttributes, * }, * quantityPerSubnet: Number(nodePoolQuantityPerSubnet), * secondaryVnics: [{ * createVnicDetails: { * subnetId: testSubnet.id, * applicationResources: nodePoolSecondaryVnicsCreateVnicDetailsApplicationResources, * assignIpv6ip: nodePoolSecondaryVnicsCreateVnicDetailsAssignIpv6ip === "true", * assignPublicIp: nodePoolSecondaryVnicsCreateVnicDetailsAssignPublicIp === "true", * definedTags: { * "Operations.CostCenter": "42", * }, * displayName: nodePoolSecondaryVnicsCreateVnicDetailsDisplayName, * freeformTags: { * Department: "Finance", * }, * ipCount: Number(nodePoolSecondaryVnicsCreateVnicDetailsIpCount), * ipv6addressIpv6subnetCidrPairDetails: [{ * ipv6address: nodePoolSecondaryVnicsCreateVnicDetailsIpv6addressIpv6subnetCidrPairDetailsIpv6address, * ipv6subnetCidr: nodePoolSecondaryVnicsCreateVnicDetailsIpv6addressIpv6subnetCidrPairDetailsIpv6subnetCidr, * }], * nsgIds: nodePoolSecondaryVnicsCreateVnicDetailsNsgIds, * securityAttributes: nodePoolSecondaryVnicsCreateVnicDetailsSecurityAttributes, * skipSourceDestCheck: nodePoolSecondaryVnicsCreateVnicDetailsSkipSourceDestCheck === "true", * }, * displayName: nodePoolSecondaryVnicsDisplayName, * nicIndex: Number(nodePoolSecondaryVnicsNicIndex), * }], * sshPublicKey: nodePoolSshPublicKey, * subnetIds: nodePoolSubnetIds, * }); * ``` * * ## Import * * NodePools can be imported using the `id`, e.g. * * ```sh * $ pulumi import oci:ContainerEngine/nodePool:NodePool test_node_pool "id" * ``` */ export declare class NodePool extends pulumi.CustomResource { /** * Get an existing NodePool 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 state Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input, state?: NodePoolState, opts?: pulumi.CustomResourceOptions): NodePool; /** * Returns true if the given object is an instance of NodePool. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is NodePool; /** * The OCID of the cluster to which this node pool is attached. */ readonly clusterId: pulumi.Output; /** * The OCID of the compartment in which the node pool exists. */ readonly compartmentId: pulumi.Output; /** * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Operations.CostCenter": "42"}` */ readonly definedTags: pulumi.Output<{ [key: string]: string; }>; /** * (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}` */ readonly freeformTags: pulumi.Output<{ [key: string]: string; }>; /** * (Updatable) A list of key/value pairs to add to nodes after they join the Kubernetes cluster. */ readonly initialNodeLabels: pulumi.Output; /** * (Updatable) The version of Kubernetes to install on the nodes in the node pool. */ readonly kubernetesVersion: pulumi.Output; /** * Details about the state of the node. */ readonly lifecycleDetails: pulumi.Output; /** * (Updatable) The name of the node pool. Avoid entering confidential information. */ readonly name: pulumi.Output; /** * (Updatable) Emulation type for the physical network interface card (NIC) for nodes */ readonly networkLaunchType: pulumi.Output; /** * (Updatable) The configuration of nodes in the node pool. Exactly one of the subnetIds or nodeConfigDetails properties must be specified. */ readonly nodeConfigDetails: pulumi.Output; /** * (Updatable) Node Eviction Details configuration */ readonly nodeEvictionNodePoolSettings: pulumi.Output; /** * Deprecated. see `nodeSource`. The OCID of the image running on the nodes in the node pool. * * @deprecated The 'node_image_id' field has been deprecated. Please use 'node_source_details' instead. If both fields are specified, then 'node_source_details' will be used. */ readonly nodeImageId: pulumi.Output; /** * Deprecated. Use `nodeSourceDetails` instead. If you specify values for both, this value is ignored. The name of the image running on the nodes in the node pool. Cannot be used when `nodeImageId` is specified. * * @deprecated The 'node_image_name' field has been deprecated. Please use 'node_source_details' instead. If both fields are specified, then 'node_source_details' will be used. */ readonly nodeImageName: pulumi.Output; /** * (Updatable) A list of key/value pairs to add to each underlying Oracle Cloud Infrastructure instance in the node pool on launch. */ readonly nodeMetadata: pulumi.Output<{ [key: string]: string; }>; /** * (Updatable) Node Pool Cycling Details */ readonly nodePoolCyclingDetails: pulumi.Output; /** * (Updatable) The name of the node shape of the nodes in the node pool. */ readonly nodeShape: pulumi.Output; /** * (Updatable) Specify the configuration of the shape to launch nodes in the node pool. */ readonly nodeShapeConfig: pulumi.Output; /** * (Updatable) Specify the source to use to launch nodes in the node pool. Currently, image is the only supported source. */ readonly nodeSourceDetails: pulumi.Output; /** * Deprecated. see `nodeSourceDetails`. Source running on the nodes in the node pool. */ readonly nodeSources: pulumi.Output; /** * The nodes in the node pool. */ readonly nodes: pulumi.Output; /** * (Updatable) Details for node's primary VNIC */ readonly primaryVnic: pulumi.Output; /** * (Updatable) Optional, default to 1. The number of nodes to create in each subnet specified in subnetIds property. When used, subnetIds is required. This property is deprecated, use nodeConfigDetails instead. */ readonly quantityPerSubnet: pulumi.Output; /** * (Updatable) A list of secondary vnics to attach to nodes */ readonly secondaryVnics: pulumi.Output; /** * (Updatable) The SSH public key on each node in the node pool on launch. */ readonly sshPublicKey: pulumi.Output; /** * The state of the nodepool. For more information, see [Monitoring Clusters](https://docs.cloud.oracle.com/iaas/Content/ContEng/Tasks/contengmonitoringclusters.htm) */ readonly state: pulumi.Output; /** * (Updatable) The OCIDs of the subnets in which to place nodes for this node pool. When used, quantityPerSubnet can be provided. This property is deprecated, use nodeConfigDetails. Exactly one of the subnetIds or nodeConfigDetails properties must be specified. * * ** IMPORTANT ** * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values */ readonly subnetIds: pulumi.Output; /** * Create a NodePool resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: NodePoolArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering NodePool resources. */ export interface NodePoolState { /** * The OCID of the cluster to which this node pool is attached. */ clusterId?: pulumi.Input; /** * The OCID of the compartment in which the node pool exists. */ compartmentId?: pulumi.Input; /** * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Operations.CostCenter": "42"}` */ definedTags?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; /** * (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}` */ freeformTags?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; /** * (Updatable) A list of key/value pairs to add to nodes after they join the Kubernetes cluster. */ initialNodeLabels?: pulumi.Input[] | undefined>; /** * (Updatable) The version of Kubernetes to install on the nodes in the node pool. */ kubernetesVersion?: pulumi.Input; /** * Details about the state of the node. */ lifecycleDetails?: pulumi.Input; /** * (Updatable) The name of the node pool. Avoid entering confidential information. */ name?: pulumi.Input; /** * (Updatable) Emulation type for the physical network interface card (NIC) for nodes */ networkLaunchType?: pulumi.Input; /** * (Updatable) The configuration of nodes in the node pool. Exactly one of the subnetIds or nodeConfigDetails properties must be specified. */ nodeConfigDetails?: pulumi.Input; /** * (Updatable) Node Eviction Details configuration */ nodeEvictionNodePoolSettings?: pulumi.Input; /** * Deprecated. see `nodeSource`. The OCID of the image running on the nodes in the node pool. * * @deprecated The 'node_image_id' field has been deprecated. Please use 'node_source_details' instead. If both fields are specified, then 'node_source_details' will be used. */ nodeImageId?: pulumi.Input; /** * Deprecated. Use `nodeSourceDetails` instead. If you specify values for both, this value is ignored. The name of the image running on the nodes in the node pool. Cannot be used when `nodeImageId` is specified. * * @deprecated The 'node_image_name' field has been deprecated. Please use 'node_source_details' instead. If both fields are specified, then 'node_source_details' will be used. */ nodeImageName?: pulumi.Input; /** * (Updatable) A list of key/value pairs to add to each underlying Oracle Cloud Infrastructure instance in the node pool on launch. */ nodeMetadata?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; /** * (Updatable) Node Pool Cycling Details */ nodePoolCyclingDetails?: pulumi.Input; /** * (Updatable) The name of the node shape of the nodes in the node pool. */ nodeShape?: pulumi.Input; /** * (Updatable) Specify the configuration of the shape to launch nodes in the node pool. */ nodeShapeConfig?: pulumi.Input; /** * (Updatable) Specify the source to use to launch nodes in the node pool. Currently, image is the only supported source. */ nodeSourceDetails?: pulumi.Input; /** * Deprecated. see `nodeSourceDetails`. Source running on the nodes in the node pool. */ nodeSources?: pulumi.Input[] | undefined>; /** * The nodes in the node pool. */ nodes?: pulumi.Input[] | undefined>; /** * (Updatable) Details for node's primary VNIC */ primaryVnic?: pulumi.Input; /** * (Updatable) Optional, default to 1. The number of nodes to create in each subnet specified in subnetIds property. When used, subnetIds is required. This property is deprecated, use nodeConfigDetails instead. */ quantityPerSubnet?: pulumi.Input; /** * (Updatable) A list of secondary vnics to attach to nodes */ secondaryVnics?: pulumi.Input[] | undefined>; /** * (Updatable) The SSH public key on each node in the node pool on launch. */ sshPublicKey?: pulumi.Input; /** * The state of the nodepool. For more information, see [Monitoring Clusters](https://docs.cloud.oracle.com/iaas/Content/ContEng/Tasks/contengmonitoringclusters.htm) */ state?: pulumi.Input; /** * (Updatable) The OCIDs of the subnets in which to place nodes for this node pool. When used, quantityPerSubnet can be provided. This property is deprecated, use nodeConfigDetails. Exactly one of the subnetIds or nodeConfigDetails properties must be specified. * * ** IMPORTANT ** * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values */ subnetIds?: pulumi.Input[] | undefined>; } /** * The set of arguments for constructing a NodePool resource. */ export interface NodePoolArgs { /** * The OCID of the cluster to which this node pool is attached. */ clusterId: pulumi.Input; /** * The OCID of the compartment in which the node pool exists. */ compartmentId: pulumi.Input; /** * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Operations.CostCenter": "42"}` */ definedTags?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; /** * (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}` */ freeformTags?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; /** * (Updatable) A list of key/value pairs to add to nodes after they join the Kubernetes cluster. */ initialNodeLabels?: pulumi.Input[] | undefined>; /** * (Updatable) The version of Kubernetes to install on the nodes in the node pool. */ kubernetesVersion?: pulumi.Input; /** * (Updatable) The name of the node pool. Avoid entering confidential information. */ name?: pulumi.Input; /** * (Updatable) Emulation type for the physical network interface card (NIC) for nodes */ networkLaunchType?: pulumi.Input; /** * (Updatable) The configuration of nodes in the node pool. Exactly one of the subnetIds or nodeConfigDetails properties must be specified. */ nodeConfigDetails?: pulumi.Input; /** * (Updatable) Node Eviction Details configuration */ nodeEvictionNodePoolSettings?: pulumi.Input; /** * Deprecated. see `nodeSource`. The OCID of the image running on the nodes in the node pool. * * @deprecated The 'node_image_id' field has been deprecated. Please use 'node_source_details' instead. If both fields are specified, then 'node_source_details' will be used. */ nodeImageId?: pulumi.Input; /** * Deprecated. Use `nodeSourceDetails` instead. If you specify values for both, this value is ignored. The name of the image running on the nodes in the node pool. Cannot be used when `nodeImageId` is specified. * * @deprecated The 'node_image_name' field has been deprecated. Please use 'node_source_details' instead. If both fields are specified, then 'node_source_details' will be used. */ nodeImageName?: pulumi.Input; /** * (Updatable) A list of key/value pairs to add to each underlying Oracle Cloud Infrastructure instance in the node pool on launch. */ nodeMetadata?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; /** * (Updatable) Node Pool Cycling Details */ nodePoolCyclingDetails?: pulumi.Input; /** * (Updatable) The name of the node shape of the nodes in the node pool. */ nodeShape: pulumi.Input; /** * (Updatable) Specify the configuration of the shape to launch nodes in the node pool. */ nodeShapeConfig?: pulumi.Input; /** * (Updatable) Specify the source to use to launch nodes in the node pool. Currently, image is the only supported source. */ nodeSourceDetails?: pulumi.Input; /** * (Updatable) Details for node's primary VNIC */ primaryVnic?: pulumi.Input; /** * (Updatable) Optional, default to 1. The number of nodes to create in each subnet specified in subnetIds property. When used, subnetIds is required. This property is deprecated, use nodeConfigDetails instead. */ quantityPerSubnet?: pulumi.Input; /** * (Updatable) A list of secondary vnics to attach to nodes */ secondaryVnics?: pulumi.Input[] | undefined>; /** * (Updatable) The SSH public key on each node in the node pool on launch. */ sshPublicKey?: pulumi.Input; /** * (Updatable) The OCIDs of the subnets in which to place nodes for this node pool. When used, quantityPerSubnet can be provided. This property is deprecated, use nodeConfigDetails. Exactly one of the subnetIds or nodeConfigDetails properties must be specified. * * ** IMPORTANT ** * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values */ subnetIds?: pulumi.Input[] | undefined>; } //# sourceMappingURL=nodePool.d.ts.map