@pulumi/aws-native
Version:
The Pulumi AWS Cloud Control Provider enables you to build, deploy, and manage [any AWS resource that's supported by the AWS Cloud Control API](https://github.com/pulumi/pulumi-aws-native/blob/master/provider/cmd/pulumi-gen-aws-native/supported-types.txt)
253 lines (252 loc) • 8.9 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
* Resource schema for AWS::EKS::Nodegroup
*
* ## Example Usage
* ### Example
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws_native from "@pulumi/aws-native";
*
* const eksNodegroup = new aws_native.eks.Nodegroup("eksNodegroup", {
* clusterName: "prod",
* nodeRole: "arn:aws:iam::012345678910:role/eksInstanceRole",
* scalingConfig: {
* minSize: 3,
* desiredSize: 5,
* maxSize: 7,
* },
* labels: {
* key1: "Value1",
* key2: "Value2",
* },
* subnets: [
* "subnet-6782e71e",
* "subnet-e7e761ac",
* ],
* });
*
* ```
* ### Example
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws_native from "@pulumi/aws-native";
*
* const eksNodegroup = new aws_native.eks.Nodegroup("eksNodegroup", {
* clusterName: "prod",
* nodeRole: "arn:aws:iam::012345678910:role/eksInstanceRole",
* scalingConfig: {
* minSize: 3,
* desiredSize: 5,
* maxSize: 7,
* },
* labels: {
* key1: "Value1",
* key2: "Value2",
* },
* subnets: [
* "subnet-6782e71e",
* "subnet-e7e761ac",
* ],
* });
*
* ```
*/
export declare class Nodegroup extends pulumi.CustomResource {
/**
* Get an existing Nodegroup 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 opts Optional settings to control the behavior of the CustomResource.
*/
static get(name: string, id: pulumi.Input<pulumi.ID>, opts?: pulumi.CustomResourceOptions): Nodegroup;
/**
* Returns true if the given object is an instance of Nodegroup. 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 Nodegroup;
/**
* The AMI type for your node group.
*/
readonly amiType: pulumi.Output<string | undefined>;
/**
* The Amazon Resource Name (ARN) associated with the managed node group.
*/
readonly arn: pulumi.Output<string>;
readonly awsId: pulumi.Output<string>;
/**
* The capacity type of your managed node group.
*/
readonly capacityType: pulumi.Output<string | undefined>;
/**
* Name of the cluster to create the node group in.
*/
readonly clusterName: pulumi.Output<string>;
/**
* The root device disk size (in GiB) for your node group instances.
*/
readonly diskSize: pulumi.Output<number | undefined>;
/**
* Force the update if the existing node group's pods are unable to be drained due to a pod disruption budget issue.
*/
readonly forceUpdateEnabled: pulumi.Output<boolean | undefined>;
/**
* Specify the instance types for a node group.
*/
readonly instanceTypes: pulumi.Output<string[] | undefined>;
/**
* The Kubernetes labels to be applied to the nodes in the node group when they are created.
*/
readonly labels: pulumi.Output<{
[key: string]: string;
} | undefined>;
/**
* An object representing a node group's launch template specification.
*/
readonly launchTemplate: pulumi.Output<outputs.eks.NodegroupLaunchTemplateSpecification | undefined>;
/**
* The node auto repair configuration for node group.
*/
readonly nodeRepairConfig: pulumi.Output<outputs.eks.NodegroupNodeRepairConfig | undefined>;
/**
* The Amazon Resource Name (ARN) of the IAM role to associate with your node group.
*/
readonly nodeRole: pulumi.Output<string>;
/**
* The unique name to give your node group.
*/
readonly nodegroupName: pulumi.Output<string | undefined>;
/**
* The AMI version of the Amazon EKS-optimized AMI to use with your node group.
*/
readonly releaseVersion: pulumi.Output<string | undefined>;
/**
* The remote access (SSH) configuration to use with your node group.
*/
readonly remoteAccess: pulumi.Output<outputs.eks.NodegroupRemoteAccess | undefined>;
/**
* The scaling configuration details for the Auto Scaling group that is created for your node group.
*/
readonly scalingConfig: pulumi.Output<outputs.eks.NodegroupScalingConfig | undefined>;
/**
* The subnets to use for the Auto Scaling group that is created for your node group.
*/
readonly subnets: pulumi.Output<string[]>;
/**
* The metadata, as key-value pairs, to apply to the node group to assist with categorization and organization. Follows same schema as Labels for consistency.
*/
readonly tags: pulumi.Output<{
[key: string]: string;
} | undefined>;
/**
* The Kubernetes taints to be applied to the nodes in the node group when they are created.
*/
readonly taints: pulumi.Output<outputs.eks.NodegroupTaint[] | undefined>;
/**
* The node group update configuration.
*/
readonly updateConfig: pulumi.Output<outputs.eks.NodegroupUpdateConfig | undefined>;
/**
* The Kubernetes version to use for your managed nodes.
*/
readonly version: pulumi.Output<string | undefined>;
/**
* Create a Nodegroup 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: NodegroupArgs, opts?: pulumi.CustomResourceOptions);
}
/**
* The set of arguments for constructing a Nodegroup resource.
*/
export interface NodegroupArgs {
/**
* The AMI type for your node group.
*/
amiType?: pulumi.Input<string>;
/**
* The capacity type of your managed node group.
*/
capacityType?: pulumi.Input<string>;
/**
* Name of the cluster to create the node group in.
*/
clusterName: pulumi.Input<string>;
/**
* The root device disk size (in GiB) for your node group instances.
*/
diskSize?: pulumi.Input<number>;
/**
* Force the update if the existing node group's pods are unable to be drained due to a pod disruption budget issue.
*/
forceUpdateEnabled?: pulumi.Input<boolean>;
/**
* Specify the instance types for a node group.
*/
instanceTypes?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The Kubernetes labels to be applied to the nodes in the node group when they are created.
*/
labels?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* An object representing a node group's launch template specification.
*/
launchTemplate?: pulumi.Input<inputs.eks.NodegroupLaunchTemplateSpecificationArgs>;
/**
* The node auto repair configuration for node group.
*/
nodeRepairConfig?: pulumi.Input<inputs.eks.NodegroupNodeRepairConfigArgs>;
/**
* The Amazon Resource Name (ARN) of the IAM role to associate with your node group.
*/
nodeRole: pulumi.Input<string>;
/**
* The unique name to give your node group.
*/
nodegroupName?: pulumi.Input<string>;
/**
* The AMI version of the Amazon EKS-optimized AMI to use with your node group.
*/
releaseVersion?: pulumi.Input<string>;
/**
* The remote access (SSH) configuration to use with your node group.
*/
remoteAccess?: pulumi.Input<inputs.eks.NodegroupRemoteAccessArgs>;
/**
* The scaling configuration details for the Auto Scaling group that is created for your node group.
*/
scalingConfig?: pulumi.Input<inputs.eks.NodegroupScalingConfigArgs>;
/**
* The subnets to use for the Auto Scaling group that is created for your node group.
*/
subnets: pulumi.Input<pulumi.Input<string>[]>;
/**
* The metadata, as key-value pairs, to apply to the node group to assist with categorization and organization. Follows same schema as Labels for consistency.
*/
tags?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The Kubernetes taints to be applied to the nodes in the node group when they are created.
*/
taints?: pulumi.Input<pulumi.Input<inputs.eks.NodegroupTaintArgs>[]>;
/**
* The node group update configuration.
*/
updateConfig?: pulumi.Input<inputs.eks.NodegroupUpdateConfigArgs>;
/**
* The Kubernetes version to use for your managed nodes.
*/
version?: pulumi.Input<string>;
}