@pulumi/eks 2.8.1 → 2.9.0-alpha.1727304793

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/addon.d.ts +61 -13
  2. package/addon.js +45 -18
  3. package/addon.js.map +1 -1
  4. package/cluster.d.ts +291 -585
  5. package/cluster.js +120 -947
  6. package/cluster.js.map +1 -1
  7. package/clusterCreationRoleProvider.d.ts +28 -0
  8. package/clusterCreationRoleProvider.js +47 -0
  9. package/clusterCreationRoleProvider.js.map +1 -0
  10. package/clusterMixins.d.ts +71 -0
  11. package/clusterMixins.js +107 -0
  12. package/clusterMixins.js.map +1 -0
  13. package/index.d.ts +31 -7
  14. package/index.js +80 -34
  15. package/index.js.map +1 -1
  16. package/managedNodeGroup.d.ts +221 -0
  17. package/managedNodeGroup.js +81 -0
  18. package/managedNodeGroup.js.map +1 -0
  19. package/nodeGroup.d.ts +273 -0
  20. package/nodeGroup.js +93 -0
  21. package/nodeGroup.js.map +1 -0
  22. package/nodeGroupSecurityGroup.d.ts +51 -0
  23. package/nodeGroupSecurityGroup.js +60 -0
  24. package/nodeGroupSecurityGroup.js.map +1 -0
  25. package/nodeGroupV2.d.ts +280 -0
  26. package/nodeGroupV2.js +90 -0
  27. package/nodeGroupV2.js.map +1 -0
  28. package/nodegroupMixins.d.ts +203 -0
  29. package/{securitygroup.js → nodegroupMixins.js} +25 -36
  30. package/nodegroupMixins.js.map +1 -0
  31. package/package.json +8 -36
  32. package/provider.d.ts +21 -0
  33. package/provider.js +38 -0
  34. package/provider.js.map +1 -0
  35. package/{storageclass.js → storageclassMixins.js} +1 -14
  36. package/storageclassMixins.js.map +1 -0
  37. package/types/enums/index.d.ts +170 -0
  38. package/types/enums/index.js +145 -0
  39. package/types/enums/index.js.map +1 -0
  40. package/types/index.d.ts +4 -0
  41. package/types/index.js +13 -0
  42. package/types/index.js.map +1 -0
  43. package/types/input.d.ts +745 -0
  44. package/types/input.js +30 -0
  45. package/types/input.js.map +1 -0
  46. package/types/output.d.ts +422 -0
  47. package/types/output.js +5 -0
  48. package/types/output.js.map +1 -0
  49. package/utilities.d.ts +8 -1
  50. package/utilities.js +90 -17
  51. package/utilities.js.map +1 -1
  52. package/vpcCniAddon.d.ts +175 -0
  53. package/vpcCniAddon.js +88 -0
  54. package/vpcCniAddon.js.map +1 -0
  55. package/LICENSE +0 -202
  56. package/README.md +0 -77
  57. package/authenticationMode.d.ts +0 -24
  58. package/authenticationMode.js +0 -172
  59. package/authenticationMode.js.map +0 -1
  60. package/authenticationMode.test.d.ts +0 -1
  61. package/authenticationMode.test.js +0 -208
  62. package/authenticationMode.test.js.map +0 -1
  63. package/cert-thumprint.d.ts +0 -16
  64. package/cert-thumprint.js +0 -113
  65. package/cert-thumprint.js.map +0 -1
  66. package/cmd/provider/addon.d.ts +0 -1
  67. package/cmd/provider/addon.js +0 -40
  68. package/cmd/provider/addon.js.map +0 -1
  69. package/cmd/provider/cluster.d.ts +0 -1
  70. package/cmd/provider/cluster.js +0 -71
  71. package/cmd/provider/cluster.js.map +0 -1
  72. package/cmd/provider/cni.d.ts +0 -2
  73. package/cmd/provider/cni.js +0 -291
  74. package/cmd/provider/cni.js.map +0 -1
  75. package/cmd/provider/index.d.ts +0 -1
  76. package/cmd/provider/index.js +0 -171
  77. package/cmd/provider/index.js.map +0 -1
  78. package/cmd/provider/nodegroup.d.ts +0 -1
  79. package/cmd/provider/nodegroup.js +0 -89
  80. package/cmd/provider/nodegroup.js.map +0 -1
  81. package/cmd/provider/randomSuffix.d.ts +0 -1
  82. package/cmd/provider/randomSuffix.js +0 -52
  83. package/cmd/provider/randomSuffix.js.map +0 -1
  84. package/cmd/provider/schema.json +0 -1909
  85. package/cmd/provider/securitygroup.d.ts +0 -1
  86. package/cmd/provider/securitygroup.js +0 -41
  87. package/cmd/provider/securitygroup.js.map +0 -1
  88. package/cni/README.md +0 -6
  89. package/cni/aws-k8s-cni.yaml +0 -602
  90. package/cni.d.ts +0 -177
  91. package/cni.js +0 -64
  92. package/cni.js.map +0 -1
  93. package/dashboard/heapster-rbac.yaml +0 -12
  94. package/dashboard/heapster.yaml +0 -46
  95. package/dashboard/influxdb.yaml +0 -40
  96. package/dashboard/kubernetes-dashboard.yaml +0 -167
  97. package/dashboard.d.ts +0 -5
  98. package/dashboard.js +0 -58
  99. package/dashboard.js.map +0 -1
  100. package/dependencies.d.ts +0 -2
  101. package/dependencies.js +0 -81
  102. package/dependencies.js.map +0 -1
  103. package/dependencies.test.d.ts +0 -1
  104. package/dependencies.test.js +0 -133
  105. package/dependencies.test.js.map +0 -1
  106. package/nodegroup.d.ts +0 -515
  107. package/nodegroup.js +0 -1152
  108. package/nodegroup.js.map +0 -1
  109. package/nodegroup.test.d.ts +0 -1
  110. package/nodegroup.test.js +0 -336
  111. package/nodegroup.test.js.map +0 -1
  112. package/package.json.dev +0 -67
  113. package/randomSuffix.d.ts +0 -1
  114. package/randomSuffix.js +0 -51
  115. package/randomSuffix.js.map +0 -1
  116. package/securitygroup.d.ts +0 -52
  117. package/securitygroup.js.map +0 -1
  118. package/servicerole.d.ts +0 -43
  119. package/servicerole.js +0 -72
  120. package/servicerole.js.map +0 -1
  121. package/storageclass.js.map +0 -1
  122. package/utils.d.ts +0 -23
  123. package/utils.js +0 -16
  124. package/utils.js.map +0 -1
  125. /package/{storageclass.d.ts → storageclassMixins.d.ts} +0 -0
package/nodeGroup.js ADDED
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by pulumi-gen-eks. ***
3
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.NodeGroup = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("./utilities");
8
+ /**
9
+ * NodeGroup is a component that wraps the AWS EC2 instances that provide compute capacity for an EKS cluster.
10
+ *
11
+ * @deprecated NodeGroup uses AWS EC2 LaunchConfiguration which has been deprecated by AWS and doesn't support the newest instance types. Please use NodeGroupV2 instead.
12
+ */
13
+ class NodeGroup extends pulumi.ComponentResource {
14
+ /**
15
+ * Returns true if the given object is an instance of NodeGroup. This is designed to work even
16
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
17
+ */
18
+ static isInstance(obj) {
19
+ if (obj === undefined || obj === null) {
20
+ return false;
21
+ }
22
+ return obj['__pulumiType'] === NodeGroup.__pulumiType;
23
+ }
24
+ /**
25
+ * Create a NodeGroup resource with the given unique name, arguments, and options.
26
+ *
27
+ * @param name The _unique_ name of the resource.
28
+ * @param args The arguments to use to populate this resource's properties.
29
+ * @param opts A bag of options that control this resource's behavior.
30
+ */
31
+ /** @deprecated NodeGroup uses AWS EC2 LaunchConfiguration which has been deprecated by AWS and doesn't support the newest instance types. Please use NodeGroupV2 instead. */
32
+ constructor(name, args, opts) {
33
+ pulumi.log.warn("NodeGroup is deprecated: NodeGroup uses AWS EC2 LaunchConfiguration which has been deprecated by AWS and doesn't support the newest instance types. Please use NodeGroupV2 instead.");
34
+ let resourceInputs = {};
35
+ opts = opts || {};
36
+ if (!opts.id) {
37
+ if ((!args || args.cluster === undefined) && !opts.urn) {
38
+ throw new Error("Missing required property 'cluster'");
39
+ }
40
+ resourceInputs["amiId"] = args ? args.amiId : undefined;
41
+ resourceInputs["amiType"] = args ? args.amiType : undefined;
42
+ resourceInputs["autoScalingGroupTags"] = args ? args.autoScalingGroupTags : undefined;
43
+ resourceInputs["bootstrapExtraArgs"] = args ? args.bootstrapExtraArgs : undefined;
44
+ resourceInputs["bottlerocketSettings"] = args ? args.bottlerocketSettings : undefined;
45
+ resourceInputs["cloudFormationTags"] = args ? args.cloudFormationTags : undefined;
46
+ resourceInputs["cluster"] = args ? args.cluster : undefined;
47
+ resourceInputs["clusterIngressRule"] = args ? args.clusterIngressRule : undefined;
48
+ resourceInputs["desiredCapacity"] = args ? args.desiredCapacity : undefined;
49
+ resourceInputs["enableDetailedMonitoring"] = args ? args.enableDetailedMonitoring : undefined;
50
+ resourceInputs["encryptRootBlockDevice"] = args ? args.encryptRootBlockDevice : undefined;
51
+ resourceInputs["extraNodeSecurityGroups"] = args ? args.extraNodeSecurityGroups : undefined;
52
+ resourceInputs["gpu"] = args ? args.gpu : undefined;
53
+ resourceInputs["instanceProfile"] = args ? args.instanceProfile : undefined;
54
+ resourceInputs["instanceType"] = args ? args.instanceType : undefined;
55
+ resourceInputs["keyName"] = args ? args.keyName : undefined;
56
+ resourceInputs["kubeletExtraArgs"] = args ? args.kubeletExtraArgs : undefined;
57
+ resourceInputs["labels"] = args ? args.labels : undefined;
58
+ resourceInputs["maxSize"] = args ? args.maxSize : undefined;
59
+ resourceInputs["minSize"] = args ? args.minSize : undefined;
60
+ resourceInputs["nodeAssociatePublicIpAddress"] = args ? args.nodeAssociatePublicIpAddress : undefined;
61
+ resourceInputs["nodePublicKey"] = args ? args.nodePublicKey : undefined;
62
+ resourceInputs["nodeRootVolumeDeleteOnTermination"] = args ? args.nodeRootVolumeDeleteOnTermination : undefined;
63
+ resourceInputs["nodeRootVolumeEncrypted"] = args ? args.nodeRootVolumeEncrypted : undefined;
64
+ resourceInputs["nodeRootVolumeIops"] = args ? args.nodeRootVolumeIops : undefined;
65
+ resourceInputs["nodeRootVolumeSize"] = args ? args.nodeRootVolumeSize : undefined;
66
+ resourceInputs["nodeRootVolumeThroughput"] = args ? args.nodeRootVolumeThroughput : undefined;
67
+ resourceInputs["nodeRootVolumeType"] = args ? args.nodeRootVolumeType : undefined;
68
+ resourceInputs["nodeSecurityGroup"] = args ? args.nodeSecurityGroup : undefined;
69
+ resourceInputs["nodeSubnetIds"] = args ? args.nodeSubnetIds : undefined;
70
+ resourceInputs["nodeUserData"] = args ? args.nodeUserData : undefined;
71
+ resourceInputs["nodeUserDataOverride"] = args ? args.nodeUserDataOverride : undefined;
72
+ resourceInputs["nodeadmExtraOptions"] = args ? args.nodeadmExtraOptions : undefined;
73
+ resourceInputs["operatingSystem"] = args ? args.operatingSystem : undefined;
74
+ resourceInputs["spotPrice"] = args ? args.spotPrice : undefined;
75
+ resourceInputs["taints"] = args ? args.taints : undefined;
76
+ resourceInputs["version"] = args ? args.version : undefined;
77
+ resourceInputs["autoScalingGroupName"] = undefined /*out*/;
78
+ resourceInputs["cfnStack"] = undefined /*out*/;
79
+ }
80
+ else {
81
+ resourceInputs["autoScalingGroupName"] = undefined /*out*/;
82
+ resourceInputs["cfnStack"] = undefined /*out*/;
83
+ resourceInputs["extraNodeSecurityGroups"] = undefined /*out*/;
84
+ resourceInputs["nodeSecurityGroup"] = undefined /*out*/;
85
+ }
86
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
87
+ super(NodeGroup.__pulumiType, name, resourceInputs, opts, true /*remote*/);
88
+ }
89
+ }
90
+ exports.NodeGroup = NodeGroup;
91
+ /** @internal */
92
+ NodeGroup.__pulumiType = 'eks:index:NodeGroup';
93
+ //# sourceMappingURL=nodeGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodeGroup.js","sourceRoot":"","sources":["../nodeGroup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ import * as pulumiAws from "@pulumi/aws";
3
+ /**
4
+ * NodeGroupSecurityGroup is a component that wraps creating a security group for node groups with the default ingress & egress rules required to connect and work with the EKS cluster security group.
5
+ */
6
+ export declare class NodeGroupSecurityGroup extends pulumi.ComponentResource {
7
+ /**
8
+ * Returns true if the given object is an instance of NodeGroupSecurityGroup. This is designed to work even
9
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
10
+ */
11
+ static isInstance(obj: any): obj is NodeGroupSecurityGroup;
12
+ /**
13
+ * The security group for node groups with the default ingress & egress rules required to connect and work with the EKS cluster security group.
14
+ */
15
+ readonly securityGroup: pulumi.Output<pulumiAws.ec2.SecurityGroup>;
16
+ /**
17
+ * The EKS cluster ingress rule.
18
+ */
19
+ readonly securityGroupRule: pulumi.Output<pulumiAws.ec2.SecurityGroupRule>;
20
+ /**
21
+ * Create a NodeGroupSecurityGroup resource with the given unique name, arguments, and options.
22
+ *
23
+ * @param name The _unique_ name of the resource.
24
+ * @param args The arguments to use to populate this resource's properties.
25
+ * @param opts A bag of options that control this resource's behavior.
26
+ */
27
+ constructor(name: string, args: NodeGroupSecurityGroupArgs, opts?: pulumi.ComponentResourceOptions);
28
+ }
29
+ /**
30
+ * The set of arguments for constructing a NodeGroupSecurityGroup resource.
31
+ */
32
+ export interface NodeGroupSecurityGroupArgs {
33
+ /**
34
+ * The security group associated with the EKS cluster.
35
+ */
36
+ clusterSecurityGroup: pulumi.Input<pulumiAws.ec2.SecurityGroup>;
37
+ /**
38
+ * The EKS cluster associated with the worker node group
39
+ */
40
+ eksCluster: pulumi.Input<pulumiAws.eks.Cluster>;
41
+ /**
42
+ * Key-value mapping of tags to apply to this security group.
43
+ */
44
+ tags?: pulumi.Input<{
45
+ [key: string]: pulumi.Input<string>;
46
+ }>;
47
+ /**
48
+ * The VPC in which to create the worker node group.
49
+ */
50
+ vpcId: pulumi.Input<string>;
51
+ }
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by pulumi-gen-eks. ***
3
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.NodeGroupSecurityGroup = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("./utilities");
8
+ /**
9
+ * NodeGroupSecurityGroup is a component that wraps creating a security group for node groups with the default ingress & egress rules required to connect and work with the EKS cluster security group.
10
+ */
11
+ class NodeGroupSecurityGroup extends pulumi.ComponentResource {
12
+ /**
13
+ * Returns true if the given object is an instance of NodeGroupSecurityGroup. This is designed to work even
14
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
15
+ */
16
+ static isInstance(obj) {
17
+ if (obj === undefined || obj === null) {
18
+ return false;
19
+ }
20
+ return obj['__pulumiType'] === NodeGroupSecurityGroup.__pulumiType;
21
+ }
22
+ /**
23
+ * Create a NodeGroupSecurityGroup resource with the given unique name, arguments, and options.
24
+ *
25
+ * @param name The _unique_ name of the resource.
26
+ * @param args The arguments to use to populate this resource's properties.
27
+ * @param opts A bag of options that control this resource's behavior.
28
+ */
29
+ constructor(name, args, opts) {
30
+ let resourceInputs = {};
31
+ opts = opts || {};
32
+ if (!opts.id) {
33
+ if ((!args || args.clusterSecurityGroup === undefined) && !opts.urn) {
34
+ throw new Error("Missing required property 'clusterSecurityGroup'");
35
+ }
36
+ if ((!args || args.eksCluster === undefined) && !opts.urn) {
37
+ throw new Error("Missing required property 'eksCluster'");
38
+ }
39
+ if ((!args || args.vpcId === undefined) && !opts.urn) {
40
+ throw new Error("Missing required property 'vpcId'");
41
+ }
42
+ resourceInputs["clusterSecurityGroup"] = args ? args.clusterSecurityGroup : undefined;
43
+ resourceInputs["eksCluster"] = args ? args.eksCluster : undefined;
44
+ resourceInputs["tags"] = args ? args.tags : undefined;
45
+ resourceInputs["vpcId"] = args ? args.vpcId : undefined;
46
+ resourceInputs["securityGroup"] = undefined /*out*/;
47
+ resourceInputs["securityGroupRule"] = undefined /*out*/;
48
+ }
49
+ else {
50
+ resourceInputs["securityGroup"] = undefined /*out*/;
51
+ resourceInputs["securityGroupRule"] = undefined /*out*/;
52
+ }
53
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
54
+ super(NodeGroupSecurityGroup.__pulumiType, name, resourceInputs, opts, true /*remote*/);
55
+ }
56
+ }
57
+ exports.NodeGroupSecurityGroup = NodeGroupSecurityGroup;
58
+ /** @internal */
59
+ NodeGroupSecurityGroup.__pulumiType = 'eks:index:NodeGroupSecurityGroup';
60
+ //# sourceMappingURL=nodeGroupSecurityGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodeGroupSecurityGroup.js","sourceRoot":"","sources":["../nodeGroupSecurityGroup.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAIzC;;GAEG;AACH,MAAa,sBAAuB,SAAQ,MAAM,CAAC,iBAAiB;IAIhE;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,GAAQ;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;YACnC,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,sBAAsB,CAAC,YAAY,CAAC;IACvE,CAAC;IAWD;;;;;;OAMG;IACH,YAAY,IAAY,EAAE,IAAgC,EAAE,IAAsC;QAC9F,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;YACV,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,oBAAoB,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACjE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;aACvE;YACD,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACvD,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;aAC7D;YACD,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBAClD,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;aACxD;YACD,cAAc,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,CAAC;YACtF,cAAc,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;YAClE,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YACtD,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YACxD,cAAc,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;YACpD,cAAc,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;SAC3D;aAAM;YACH,cAAc,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;YACpD,cAAc,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;SAC3D;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,KAAK,CAAC,sBAAsB,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5F,CAAC;;AAxDL,wDAyDC;AAxDG,gBAAgB;AACO,mCAAY,GAAG,kCAAkC,CAAC"}
@@ -0,0 +1,280 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ import * as inputs from "./types/input";
3
+ import * as enums from "./types/enums";
4
+ import * as pulumiAws from "@pulumi/aws";
5
+ import { Cluster } from "./index";
6
+ /**
7
+ * NodeGroup is a component that wraps the AWS EC2 instances that provide compute capacity for an EKS cluster.
8
+ */
9
+ export declare class NodeGroupV2 extends pulumi.ComponentResource {
10
+ /**
11
+ * Returns true if the given object is an instance of NodeGroupV2. This is designed to work even
12
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
13
+ */
14
+ static isInstance(obj: any): obj is NodeGroupV2;
15
+ /**
16
+ * The AutoScalingGroup for the Node group.
17
+ */
18
+ readonly autoScalingGroup: pulumi.Output<pulumiAws.autoscaling.Group>;
19
+ /**
20
+ * The additional security groups for the node group that captures user-specific rules.
21
+ */
22
+ readonly extraNodeSecurityGroups: pulumi.Output<pulumiAws.ec2.SecurityGroup[]>;
23
+ /**
24
+ * The security group for the node group to communicate with the cluster.
25
+ */
26
+ readonly nodeSecurityGroup: pulumi.Output<pulumiAws.ec2.SecurityGroup>;
27
+ /**
28
+ * Create a NodeGroupV2 resource with the given unique name, arguments, and options.
29
+ *
30
+ * @param name The _unique_ name of the resource.
31
+ * @param args The arguments to use to populate this resource's properties.
32
+ * @param opts A bag of options that control this resource's behavior.
33
+ */
34
+ constructor(name: string, args: NodeGroupV2Args, opts?: pulumi.ComponentResourceOptions);
35
+ }
36
+ /**
37
+ * The set of arguments for constructing a NodeGroupV2 resource.
38
+ */
39
+ export interface NodeGroupV2Args {
40
+ /**
41
+ * The AMI ID to use for the worker nodes.
42
+ *
43
+ * Defaults to the latest recommended EKS Optimized Linux AMI from the AWS Systems Manager Parameter Store.
44
+ *
45
+ * Note: `amiId` and `gpu` are mutually exclusive.
46
+ *
47
+ * See for more details:
48
+ * - https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html.
49
+ */
50
+ amiId?: pulumi.Input<string>;
51
+ /**
52
+ * The AMI Type to use for the worker nodes.
53
+ *
54
+ * Only applicable when setting an AMI ID that is of type `arm64`.
55
+ *
56
+ * Note: `amiType` and `gpu` are mutually exclusive.
57
+ */
58
+ amiType?: pulumi.Input<string>;
59
+ /**
60
+ * The tags to apply to the NodeGroup's AutoScalingGroup in the CloudFormation Stack.
61
+ *
62
+ * Per AWS, all stack-level tags, including automatically created tags, and the `cloudFormationTags` option are propagated to resources that AWS CloudFormation supports, including the AutoScalingGroup. See https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html
63
+ *
64
+ * Note: Given the inheritance of auto-generated CF tags and `cloudFormationTags`, you should either supply the tag in `autoScalingGroupTags` or `cloudFormationTags`, but not both.
65
+ */
66
+ autoScalingGroupTags?: pulumi.Input<{
67
+ [key: string]: pulumi.Input<string>;
68
+ }>;
69
+ /**
70
+ * Additional args to pass directly to `/etc/eks/bootstrap.sh`. For details on available options, see: https://github.com/awslabs/amazon-eks-ami/blob/master/files/bootstrap.sh. Note that the `--apiserver-endpoint`, `--b64-cluster-ca` and `--kubelet-extra-args` flags are included automatically based on other configuration parameters.
71
+ */
72
+ bootstrapExtraArgs?: string;
73
+ /**
74
+ * The configuration settings for Bottlerocket OS.
75
+ * The settings will get merged with the base settings the provider uses to configure Bottlerocket.
76
+ *
77
+ * This includes:
78
+ * - settings.kubernetes.api-server
79
+ * - settings.kubernetes.cluster-certificate
80
+ * - settings.kubernetes.cluster-name
81
+ * - settings.kubernetes.cluster-dns-ip
82
+ *
83
+ * For an overview of the available settings, see https://bottlerocket.dev/en/os/1.20.x/api/settings/.
84
+ */
85
+ bottlerocketSettings?: pulumi.Input<{
86
+ [key: string]: any;
87
+ }>;
88
+ /**
89
+ * The tags to apply to the CloudFormation Stack of the Worker NodeGroup.
90
+ *
91
+ * Note: Given the inheritance of auto-generated CF tags and `cloudFormationTags`, you should either supply the tag in `autoScalingGroupTags` or `cloudFormationTags`, but not both.
92
+ */
93
+ cloudFormationTags?: pulumi.Input<{
94
+ [key: string]: pulumi.Input<string>;
95
+ }>;
96
+ /**
97
+ * The target EKS cluster.
98
+ */
99
+ cluster: pulumi.Input<Cluster | inputs.CoreDataArgs>;
100
+ /**
101
+ * The ingress rule that gives node group access.
102
+ */
103
+ clusterIngressRule?: pulumi.Input<pulumiAws.ec2.SecurityGroupRule>;
104
+ /**
105
+ * The number of worker nodes that should be running in the cluster. Defaults to 2.
106
+ */
107
+ desiredCapacity?: pulumi.Input<number>;
108
+ /**
109
+ * Enables/disables detailed monitoring of the EC2 instances.
110
+ *
111
+ * With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals.
112
+ * When enabled, you can also get aggregated data across groups of similar instances.
113
+ *
114
+ * Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage.
115
+ * For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/.
116
+ */
117
+ enableDetailedMonitoring?: pulumi.Input<boolean>;
118
+ /**
119
+ * Encrypt the root block device of the nodes in the node group.
120
+ */
121
+ encryptRootBlockDevice?: pulumi.Input<boolean>;
122
+ /**
123
+ * Extra security groups to attach on all nodes in this worker node group.
124
+ *
125
+ * This additional set of security groups captures any user application rules that will be needed for the nodes.
126
+ */
127
+ extraNodeSecurityGroups?: pulumi.Input<pulumi.Input<pulumiAws.ec2.SecurityGroup>[]>;
128
+ /**
129
+ * Use the latest recommended EKS Optimized Linux AMI with GPU support for the worker nodes from the AWS Systems Manager Parameter Store.
130
+ *
131
+ * Defaults to false.
132
+ *
133
+ * Note: `gpu` and `amiId` are mutually exclusive.
134
+ *
135
+ * See for more details:
136
+ * - https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html
137
+ * - https://docs.aws.amazon.com/eks/latest/userguide/retrieve-ami-id.html
138
+ */
139
+ gpu?: pulumi.Input<boolean>;
140
+ /**
141
+ * Whether to ignore changes to the desired size of the Auto Scaling Group. This is useful when using Cluster Autoscaler.
142
+ *
143
+ * See [EKS best practices](https://aws.github.io/aws-eks-best-practices/cluster-autoscaling/) for more details.
144
+ */
145
+ ignoreScalingChanges?: boolean;
146
+ /**
147
+ * The ingress rule that gives node group access.
148
+ */
149
+ instanceProfile?: pulumiAws.iam.InstanceProfile;
150
+ /**
151
+ * The instance type to use for the cluster's nodes. Defaults to "t3.medium".
152
+ */
153
+ instanceType?: pulumi.Input<string>;
154
+ /**
155
+ * Name of the key pair to use for SSH access to worker nodes.
156
+ */
157
+ keyName?: pulumi.Input<string>;
158
+ /**
159
+ * Extra args to pass to the Kubelet. Corresponds to the options passed in the `--kubeletExtraArgs` flag to `/etc/eks/bootstrap.sh`. For example, '--port=10251 --address=0.0.0.0'. Note that the `labels` and `taints` properties will be applied to this list (using `--node-labels` and `--register-with-taints` respectively) after to the explicit `kubeletExtraArgs`.
160
+ */
161
+ kubeletExtraArgs?: string;
162
+ /**
163
+ * Custom k8s node labels to be attached to each worker node. Adds the given key/value pairs to the `--node-labels` kubelet argument.
164
+ */
165
+ labels?: {
166
+ [key: string]: string;
167
+ };
168
+ /**
169
+ * The tag specifications to apply to the launch template.
170
+ */
171
+ launchTemplateTagSpecifications?: pulumi.Input<pulumi.Input<pulumiAws.types.input.ec2.LaunchTemplateTagSpecification>[]>;
172
+ /**
173
+ * The maximum number of worker nodes running in the cluster. Defaults to 2.
174
+ */
175
+ maxSize?: pulumi.Input<number>;
176
+ /**
177
+ * The minimum amount of instances that should remain available during an instance refresh, expressed as a percentage. Defaults to 50.
178
+ */
179
+ minRefreshPercentage?: pulumi.Input<number>;
180
+ /**
181
+ * The minimum number of worker nodes running in the cluster. Defaults to 1.
182
+ */
183
+ minSize?: pulumi.Input<number>;
184
+ /**
185
+ * Whether or not to auto-assign public IP addresses on the EKS worker nodes. If this toggle is set to true, the EKS workers will be auto-assigned public IPs. If false, they will not be auto-assigned public IPs.
186
+ */
187
+ nodeAssociatePublicIpAddress?: boolean;
188
+ /**
189
+ * Public key material for SSH access to worker nodes. See allowed formats at:
190
+ * https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html
191
+ * If not provided, no SSH access is enabled on VMs.
192
+ */
193
+ nodePublicKey?: pulumi.Input<string>;
194
+ /**
195
+ * Whether the root block device should be deleted on termination of the instance. Defaults to true.
196
+ */
197
+ nodeRootVolumeDeleteOnTermination?: pulumi.Input<boolean>;
198
+ /**
199
+ * Whether to encrypt a cluster node's root volume. Defaults to false.
200
+ */
201
+ nodeRootVolumeEncrypted?: pulumi.Input<boolean>;
202
+ /**
203
+ * The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'.
204
+ */
205
+ nodeRootVolumeIops?: pulumi.Input<number>;
206
+ /**
207
+ * The size in GiB of a cluster node's root volume. Defaults to 20.
208
+ */
209
+ nodeRootVolumeSize?: pulumi.Input<number>;
210
+ /**
211
+ * Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'.
212
+ */
213
+ nodeRootVolumeThroughput?: pulumi.Input<number>;
214
+ /**
215
+ * Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'.
216
+ */
217
+ nodeRootVolumeType?: pulumi.Input<string>;
218
+ /**
219
+ * The security group for the worker node group to communicate with the cluster.
220
+ *
221
+ * This security group requires specific inbound and outbound rules.
222
+ *
223
+ * See for more details:
224
+ * https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html
225
+ *
226
+ * Note: The `nodeSecurityGroup` option and the cluster option`nodeSecurityGroupTags` are mutually exclusive.
227
+ */
228
+ nodeSecurityGroup?: pulumi.Input<pulumiAws.ec2.SecurityGroup>;
229
+ /**
230
+ * The set of subnets to override and use for the worker node group.
231
+ *
232
+ * Setting this option overrides which subnets to use for the worker node group, regardless if the cluster's `subnetIds` is set, or if `publicSubnetIds` and/or `privateSubnetIds` were set.
233
+ */
234
+ nodeSubnetIds?: pulumi.Input<pulumi.Input<string>[]>;
235
+ /**
236
+ * Extra code to run on node startup. This code will run after the AWS EKS bootstrapping code and before the node signals its readiness to the managing CloudFormation stack. This code must be a typical user data script: critically it must begin with an interpreter directive (i.e. a `#!`).
237
+ */
238
+ nodeUserData?: pulumi.Input<string>;
239
+ /**
240
+ * User specified code to run on node startup. This code is expected to handle the full AWS EKS bootstrapping code and signal node readiness to the managing CloudFormation stack. This code must be a complete and executable user data script in bash (Linux) or powershell (Windows).
241
+ *
242
+ * See for more details: https://docs.aws.amazon.com/eks/latest/userguide/worker.html
243
+ */
244
+ nodeUserDataOverride?: pulumi.Input<string>;
245
+ /**
246
+ * Extra nodeadm configuration sections to be added to the nodeadm user data. This can be shell scripts, nodeadm NodeConfig or any other user data compatible script. When configuring additional nodeadm NodeConfig sections, they'll be merged with the base settings the provider sets. You can overwrite base settings or provide additional settings this way.
247
+ * The base settings the provider sets are:
248
+ * - cluster.name
249
+ * - cluster.apiServerEndpoint
250
+ * - cluster.certificateAuthority
251
+ * - cluster.cidr
252
+ *
253
+ * Note: This is only applicable when using AL2023.
254
+ * See for more details:
255
+ * - https://awslabs.github.io/amazon-eks-ami/nodeadm/
256
+ * - https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/
257
+ */
258
+ nodeadmExtraOptions?: pulumi.Input<pulumi.Input<inputs.NodeadmOptionsArgs>[]>;
259
+ /**
260
+ * The type of OS to use for the node group. Will be used to determine the right EKS optimized AMI to use based on the instance types and gpu configuration.
261
+ * Valid values are `RECOMMENDED`, `AL2`, `AL2023` and `Bottlerocket`.
262
+ *
263
+ * Defaults to the current recommended OS.
264
+ */
265
+ operatingSystem?: pulumi.Input<enums.OperatingSystem>;
266
+ /**
267
+ * Bidding price for spot instance. If set, only spot instances will be added as worker node.
268
+ */
269
+ spotPrice?: pulumi.Input<string>;
270
+ /**
271
+ * Custom k8s node taints to be attached to each worker node. Adds the given taints to the `--register-with-taints` kubelet argument
272
+ */
273
+ taints?: {
274
+ [key: string]: inputs.TaintArgs;
275
+ };
276
+ /**
277
+ * Desired Kubernetes master / control plane version. If you do not specify a value, the latest available version is used.
278
+ */
279
+ version?: pulumi.Input<string>;
280
+ }
package/nodeGroupV2.js ADDED
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by pulumi-gen-eks. ***
3
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.NodeGroupV2 = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("./utilities");
8
+ /**
9
+ * NodeGroup is a component that wraps the AWS EC2 instances that provide compute capacity for an EKS cluster.
10
+ */
11
+ class NodeGroupV2 extends pulumi.ComponentResource {
12
+ /**
13
+ * Returns true if the given object is an instance of NodeGroupV2. This is designed to work even
14
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
15
+ */
16
+ static isInstance(obj) {
17
+ if (obj === undefined || obj === null) {
18
+ return false;
19
+ }
20
+ return obj['__pulumiType'] === NodeGroupV2.__pulumiType;
21
+ }
22
+ /**
23
+ * Create a NodeGroupV2 resource with the given unique name, arguments, and options.
24
+ *
25
+ * @param name The _unique_ name of the resource.
26
+ * @param args The arguments to use to populate this resource's properties.
27
+ * @param opts A bag of options that control this resource's behavior.
28
+ */
29
+ constructor(name, args, opts) {
30
+ let resourceInputs = {};
31
+ opts = opts || {};
32
+ if (!opts.id) {
33
+ if ((!args || args.cluster === undefined) && !opts.urn) {
34
+ throw new Error("Missing required property 'cluster'");
35
+ }
36
+ resourceInputs["amiId"] = args ? args.amiId : undefined;
37
+ resourceInputs["amiType"] = args ? args.amiType : undefined;
38
+ resourceInputs["autoScalingGroupTags"] = args ? args.autoScalingGroupTags : undefined;
39
+ resourceInputs["bootstrapExtraArgs"] = args ? args.bootstrapExtraArgs : undefined;
40
+ resourceInputs["bottlerocketSettings"] = args ? args.bottlerocketSettings : undefined;
41
+ resourceInputs["cloudFormationTags"] = args ? args.cloudFormationTags : undefined;
42
+ resourceInputs["cluster"] = args ? args.cluster : undefined;
43
+ resourceInputs["clusterIngressRule"] = args ? args.clusterIngressRule : undefined;
44
+ resourceInputs["desiredCapacity"] = args ? args.desiredCapacity : undefined;
45
+ resourceInputs["enableDetailedMonitoring"] = args ? args.enableDetailedMonitoring : undefined;
46
+ resourceInputs["encryptRootBlockDevice"] = args ? args.encryptRootBlockDevice : undefined;
47
+ resourceInputs["extraNodeSecurityGroups"] = args ? args.extraNodeSecurityGroups : undefined;
48
+ resourceInputs["gpu"] = args ? args.gpu : undefined;
49
+ resourceInputs["ignoreScalingChanges"] = args ? args.ignoreScalingChanges : undefined;
50
+ resourceInputs["instanceProfile"] = args ? args.instanceProfile : undefined;
51
+ resourceInputs["instanceType"] = args ? args.instanceType : undefined;
52
+ resourceInputs["keyName"] = args ? args.keyName : undefined;
53
+ resourceInputs["kubeletExtraArgs"] = args ? args.kubeletExtraArgs : undefined;
54
+ resourceInputs["labels"] = args ? args.labels : undefined;
55
+ resourceInputs["launchTemplateTagSpecifications"] = args ? args.launchTemplateTagSpecifications : undefined;
56
+ resourceInputs["maxSize"] = args ? args.maxSize : undefined;
57
+ resourceInputs["minRefreshPercentage"] = args ? args.minRefreshPercentage : undefined;
58
+ resourceInputs["minSize"] = args ? args.minSize : undefined;
59
+ resourceInputs["nodeAssociatePublicIpAddress"] = args ? args.nodeAssociatePublicIpAddress : undefined;
60
+ resourceInputs["nodePublicKey"] = args ? args.nodePublicKey : undefined;
61
+ resourceInputs["nodeRootVolumeDeleteOnTermination"] = args ? args.nodeRootVolumeDeleteOnTermination : undefined;
62
+ resourceInputs["nodeRootVolumeEncrypted"] = args ? args.nodeRootVolumeEncrypted : undefined;
63
+ resourceInputs["nodeRootVolumeIops"] = args ? args.nodeRootVolumeIops : undefined;
64
+ resourceInputs["nodeRootVolumeSize"] = args ? args.nodeRootVolumeSize : undefined;
65
+ resourceInputs["nodeRootVolumeThroughput"] = args ? args.nodeRootVolumeThroughput : undefined;
66
+ resourceInputs["nodeRootVolumeType"] = args ? args.nodeRootVolumeType : undefined;
67
+ resourceInputs["nodeSecurityGroup"] = args ? args.nodeSecurityGroup : undefined;
68
+ resourceInputs["nodeSubnetIds"] = args ? args.nodeSubnetIds : undefined;
69
+ resourceInputs["nodeUserData"] = args ? args.nodeUserData : undefined;
70
+ resourceInputs["nodeUserDataOverride"] = args ? args.nodeUserDataOverride : undefined;
71
+ resourceInputs["nodeadmExtraOptions"] = args ? args.nodeadmExtraOptions : undefined;
72
+ resourceInputs["operatingSystem"] = args ? args.operatingSystem : undefined;
73
+ resourceInputs["spotPrice"] = args ? args.spotPrice : undefined;
74
+ resourceInputs["taints"] = args ? args.taints : undefined;
75
+ resourceInputs["version"] = args ? args.version : undefined;
76
+ resourceInputs["autoScalingGroup"] = undefined /*out*/;
77
+ }
78
+ else {
79
+ resourceInputs["autoScalingGroup"] = undefined /*out*/;
80
+ resourceInputs["extraNodeSecurityGroups"] = undefined /*out*/;
81
+ resourceInputs["nodeSecurityGroup"] = undefined /*out*/;
82
+ }
83
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
84
+ super(NodeGroupV2.__pulumiType, name, resourceInputs, opts, true /*remote*/);
85
+ }
86
+ }
87
+ exports.NodeGroupV2 = NodeGroupV2;
88
+ /** @internal */
89
+ NodeGroupV2.__pulumiType = 'eks:index:NodeGroupV2';
90
+ //# sourceMappingURL=nodeGroupV2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodeGroupV2.js","sourceRoot":"","sources":["../nodeGroupV2.ts"],"names":[],"mappings":"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"}