@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
@@ -1 +0,0 @@
1
- {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../dependencies.ts"],"names":[],"mappings":";AAAA,2CAA2C;AAC3C,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;;;AAEjC,8CAA8C;AAC9C,iCAAiC;AACjC,+BAA+B;AAE/B,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AACnC,MAAM,kBAAkB,GAAG,QAAQ,CAAC;AACpC,MAAM,kBAAkB,GAAG,OAAO,CAAC;AAUnC,SAAgB,oCAAoC;IAChD,IAAI;QACA,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACzB;IAAC,OAAO,GAAG,EAAE;QACV,MAAM,IAAI,KAAK,CACX,gIAAgI,CACnI,CAAC;KACL;IAED,MAAM,kBAAkB,GAAG,YAAY,CAAC,QAAQ,CAC5C,6CAA6C,EAC7C;QACI,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC;QACjC,QAAQ,EAAE,MAAM;KACnB,CACJ,CAAC;IAEF,IAAI,WAA2B,CAAC;IAChC,IAAI;QACA,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;KAChD;IAAC,OAAO,GAAG,EAAE;QACV,MAAM,IAAI,KAAK,CACX,0DAA0D,kBAAkB,EAAE,CACjF,CAAC;KACL;IACD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,UAAU,EAAE;QACjE,KAAK,EAAE,IAAI;KACd,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,EAAE,CAAC,SAAU,EAAE,iBAAiB,CAAC,EAAE;QAC1C,MAAM,IAAI,KAAK,CACX,aAAa,iBAAiB,0BAA0B;YACpD,wBAAwB,SAAS,0HAA0H,CAClK,CAAC;KACL;AACL,CAAC;AAlCD,oFAkCC;AAED,SAAgB,4BAA4B;IACxC,IAAI;QACA,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACrB;IAAC,OAAO,GAAG,EAAE;QACV,MAAM,IAAI,KAAK,CACX,kJAAkJ,CACrJ,CAAC;KACL;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,eAAe,EAAE;QAClD,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC;QACjC,QAAQ,EAAE,MAAM;KACnB,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC7D,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE;QACxC,KAAK,EAAE,IAAI;KACd,CAAC,CAAC;IACH,QAAQ,MAAM,CAAC,KAAK,CAAC,aAAc,CAAC,EAAE;QAClC,KAAK,CAAC;YACF,IAAI,MAAM,CAAC,EAAE,CAAC,aAAc,EAAE,kBAAkB,CAAC,EAAE;gBAC/C,MAAM,IAAI,KAAK,CACX,aAAa,kBAAkB,0BAA0B;oBACrD,wBAAwB,aAAa,oHAAoH,CAChK,CAAC;aACL;YACD,MAAM;QACV;YACI,IAAI,MAAM,CAAC,EAAE,CAAC,aAAc,EAAE,kBAAkB,CAAC,EAAE;gBAC/C,MAAM,IAAI,KAAK,CACX,aAAa,kBAAkB,0BAA0B;oBACrD,wBAAwB,aAAa,oHAAoH,CAChK,CAAC;aACL;YACD,MAAM;KACb;AACL,CAAC;AAnCD,oEAmCC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,133 +0,0 @@
1
- "use strict";
2
- // Copyright 2016-2024, Pulumi Corporation.
3
- //
4
- // Licensed under the Apache License, Version 2.0 (the "License");
5
- // you may not use this file except in compliance with the License.
6
- // You may obtain a copy of the License at
7
- //
8
- // http://www.apache.org/licenses/LICENSE-2.0
9
- //
10
- // Unless required by applicable law or agreed to in writing, software
11
- // distributed under the License is distributed on an "AS IS" BASIS,
12
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- // See the License for the specific language governing permissions and
14
- // limitations under the License.
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- const dependencies_1 = require("./dependencies");
17
- const child_process_1 = require("child_process");
18
- const which_1 = require("which");
19
- jest.mock("child_process");
20
- jest.mock("which");
21
- function fakeKubectlVersionJson(v) {
22
- return `{"clientVersion": {"gitVersion": "${v}"},"kustomizeVersion": "v5.0.4-0.20230601165947-6ce0bf390ce3"}`;
23
- }
24
- function fakeAwsVersion(v) {
25
- return `aws-cli/${v} Python/3.8.8 Darwin/20.5.0 source/x86_64 prompt/off`;
26
- }
27
- describe("assertCompatibleKubectlVersionExists", () => {
28
- beforeEach(() => {
29
- which_1.default.sync.mockImplementation(() => "/fake/path/to/kubectl");
30
- });
31
- afterEach(() => {
32
- jest.resetAllMocks();
33
- });
34
- it("should throw if kubectl is not installed", () => {
35
- which_1.default.sync.mockImplementation(() => {
36
- throw new Error("Not found");
37
- });
38
- expect(() => {
39
- (0, dependencies_1.assertCompatibleKubectlVersionExists)();
40
- }).toThrow("kubectl is missing. See https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl for installation instructions.");
41
- expect(which_1.default.sync).toHaveBeenCalledWith("kubectl");
42
- expect(child_process_1.default.execSync).not.toHaveBeenCalled();
43
- expect(which_1.default.sync).toHaveBeenCalledTimes(1);
44
- });
45
- it("should throw if kubectl version is lower than v1.24.0", () => {
46
- child_process_1.default.execSync.mockImplementation(() => fakeKubectlVersionJson("v1.23.0"));
47
- expect(() => {
48
- (0, dependencies_1.assertCompatibleKubectlVersionExists)();
49
- }).toThrow("At least v1.24.0 of kubectl is required.");
50
- expect(which_1.default.sync).toHaveBeenCalledWith("kubectl");
51
- expect(child_process_1.default.execSync).toHaveBeenCalledTimes(1);
52
- });
53
- it("should throw if kubectl version is invalid", () => {
54
- child_process_1.default.execSync.mockImplementation(() => fakeKubectlVersionJson("fake-version"));
55
- expect(() => {
56
- (0, dependencies_1.assertCompatibleKubectlVersionExists)();
57
- }).toThrow("Invalid version");
58
- expect(which_1.default.sync).toHaveBeenCalledWith("kubectl");
59
- expect(child_process_1.default.execSync).toHaveBeenCalledTimes(1);
60
- });
61
- it("should not error if kubectl is v1.24.0", () => {
62
- child_process_1.default.execSync.mockImplementation(() => fakeKubectlVersionJson("v1.24.0"));
63
- expect(() => {
64
- (0, dependencies_1.assertCompatibleKubectlVersionExists)();
65
- }).not.toThrow();
66
- expect(which_1.default.sync).toHaveBeenCalledWith("kubectl");
67
- expect(child_process_1.default.execSync).toHaveBeenCalledTimes(1);
68
- });
69
- it("should not error if kubectl is greater than v1.24.0", () => {
70
- child_process_1.default.execSync.mockImplementation(() => fakeKubectlVersionJson("v1.29.6-gke.1400"));
71
- expect(() => {
72
- (0, dependencies_1.assertCompatibleKubectlVersionExists)();
73
- }).not.toThrow();
74
- expect(which_1.default.sync).toHaveBeenCalledWith("kubectl");
75
- expect(child_process_1.default.execSync).toHaveBeenCalledTimes(1);
76
- });
77
- });
78
- describe("assertCompatibleAWSCLIExists", () => {
79
- beforeEach(() => {
80
- which_1.default.sync.mockImplementation(() => "/fake/path/to/aws");
81
- });
82
- afterEach(() => {
83
- jest.resetAllMocks();
84
- });
85
- it("should throw if aws is not installed", () => {
86
- which_1.default.sync.mockImplementation(() => {
87
- throw new Error("Not found");
88
- });
89
- expect(() => {
90
- (0, dependencies_1.assertCompatibleAWSCLIExists)();
91
- }).toThrow("Could not find aws CLI for EKS.");
92
- expect(which_1.default.sync).toHaveBeenCalledWith("aws");
93
- expect(which_1.default.sync).toHaveBeenCalledTimes(1);
94
- expect(child_process_1.default.execSync).not.toHaveBeenCalled();
95
- });
96
- it("should throw if aws on major version 1, and less than minor version 24", () => {
97
- child_process_1.default.execSync.mockImplementation(() => fakeAwsVersion("1.18.0"));
98
- expect(() => {
99
- (0, dependencies_1.assertCompatibleAWSCLIExists)();
100
- }).toThrow("At least v1.24.0 of aws-cli is required");
101
- expect(which_1.default.sync).toHaveBeenCalledWith("aws");
102
- expect(which_1.default.sync).toHaveBeenCalledTimes(1);
103
- expect(child_process_1.default.execSync).toHaveBeenCalledTimes(1);
104
- });
105
- it("should throw if aws on major version 2, and less than minor version 7", () => {
106
- child_process_1.default.execSync.mockImplementation(() => fakeAwsVersion("2.5.20"));
107
- expect(() => {
108
- (0, dependencies_1.assertCompatibleAWSCLIExists)();
109
- }).toThrow("At least v2.7.0 of aws-cli is required");
110
- expect(which_1.default.sync).toHaveBeenCalledWith("aws");
111
- expect(which_1.default.sync).toHaveBeenCalledTimes(1);
112
- expect(child_process_1.default.execSync).toHaveBeenCalledTimes(1);
113
- });
114
- it("should not throw if aws on major version 1, and greater or equal than minor version 24", () => {
115
- child_process_1.default.execSync.mockImplementation(() => fakeAwsVersion("1.26.0"));
116
- expect(() => {
117
- (0, dependencies_1.assertCompatibleAWSCLIExists)();
118
- }).not.toThrow();
119
- expect(which_1.default.sync).toHaveBeenCalledWith("aws");
120
- expect(which_1.default.sync).toHaveBeenCalledTimes(1);
121
- expect(child_process_1.default.execSync).toHaveBeenCalledTimes(1);
122
- });
123
- it("should not throw if aws on major version 2, and greater or equal than minor version 7", () => {
124
- child_process_1.default.execSync.mockImplementation(() => fakeAwsVersion("2.7.20"));
125
- expect(() => {
126
- (0, dependencies_1.assertCompatibleAWSCLIExists)();
127
- }).not.toThrow();
128
- expect(which_1.default.sync).toHaveBeenCalledWith("aws");
129
- expect(which_1.default.sync).toHaveBeenCalledTimes(1);
130
- expect(child_process_1.default.execSync).toHaveBeenCalledTimes(1);
131
- });
132
- });
133
- //# sourceMappingURL=dependencies.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dependencies.test.js","sourceRoot":"","sources":["../dependencies.test.ts"],"names":[],"mappings":"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"}
package/nodegroup.d.ts DELETED
@@ -1,515 +0,0 @@
1
- import * as aws from "@pulumi/aws";
2
- import * as awsInputs from "@pulumi/aws/types/input";
3
- import * as pulumi from "@pulumi/pulumi";
4
- import { Cluster, CoreData } from "./cluster";
5
- import { InputTags } from "./utils";
6
- /**
7
- * Taint represents a Kubernetes `taint` to apply to all Nodes in a NodeGroup. See
8
- * https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/.
9
- */
10
- export interface Taint {
11
- /**
12
- * The value of the taint.
13
- */
14
- value: string;
15
- /**
16
- * The effect of the taint.
17
- */
18
- effect: "NoSchedule" | "NoExecute" | "PreferNoSchedule";
19
- }
20
- /**
21
- * NodeGroupArgs represents the common configuration settings for NodeGroups.
22
- */
23
- export interface NodeGroupBaseOptions {
24
- /**
25
- * The set of subnets to override and use for the worker node group.
26
- *
27
- * Setting this option overrides which subnets to use for the worker node
28
- * group, regardless if the cluster's `subnetIds` is set, or if
29
- * `publicSubnetIds` and/or `privateSubnetIds` were set.
30
- */
31
- nodeSubnetIds?: pulumi.Input<pulumi.Input<string>[]>;
32
- /**
33
- * The instance type to use for the cluster's nodes. Defaults to "t2.medium".
34
- */
35
- instanceType?: pulumi.Input<string | aws.ec2.InstanceType>;
36
- /**
37
- * Bidding price for spot instance. If set, only spot instances will be added as worker node
38
- */
39
- spotPrice?: pulumi.Input<string>;
40
- /**
41
- * The security group for the worker node group to communicate with the cluster.
42
- *
43
- * This security group requires specific inbound and outbound rules.
44
- *
45
- * See for more details:
46
- * https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html
47
- *
48
- * Note: The `nodeSecurityGroup` option and the cluster option
49
- * `nodeSecurityGroupTags` are mutually exclusive.
50
- */
51
- nodeSecurityGroup?: aws.ec2.SecurityGroup;
52
- /**
53
- * The ingress rule that gives node group access.
54
- */
55
- clusterIngressRule?: aws.ec2.SecurityGroupRule;
56
- /**
57
- * Extra security groups to attach on all nodes in this worker node group.
58
- *
59
- * This additional set of security groups captures any user application rules
60
- * that will be needed for the nodes.
61
- */
62
- extraNodeSecurityGroups?: aws.ec2.SecurityGroup[];
63
- /**
64
- * Public key material for SSH access to worker nodes. See allowed formats at:
65
- * https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html
66
- * If not provided, no SSH access is enabled on VMs.
67
- */
68
- nodePublicKey?: pulumi.Input<string>;
69
- /**
70
- * Name of the key pair to use for SSH access to worker nodes.
71
- */
72
- keyName?: pulumi.Input<string>;
73
- /**
74
- * The size in GiB of a cluster node's root volume. Defaults to 20.
75
- */
76
- nodeRootVolumeSize?: pulumi.Input<number>;
77
- /**
78
- * Whether to delete a cluster node's root volume on termination. Defaults to true.
79
- */
80
- nodeRootVolumeDeleteOnTermination?: pulumi.Input<boolean>;
81
- /**
82
- * Whether to encrypt a cluster node's root volume. Defaults to false.
83
- */
84
- nodeRootVolumeEncrypted?: pulumi.Input<boolean>;
85
- /**
86
- * Provisioned IOPS for a cluster node's root volume.
87
- * Only valid for io1 volumes.
88
- */
89
- nodeRootVolumeIops?: pulumi.Input<number> | undefined;
90
- /**
91
- * Provisioned throughput performance in integer MiB/s for a cluster node's root volume.
92
- * Only valid for gp3 volumes.
93
- */
94
- nodeRootVolumeThroughput?: pulumi.Input<number> | undefined;
95
- /**
96
- * Configured EBS type for a cluster node's root volume. Default is gp2.
97
- */
98
- nodeRootVolumeType?: "standard" | "gp2" | "gp3" | "st1" | "sc1" | "io1";
99
- /**
100
- * Extra code to run on node startup. This code will run after the AWS EKS bootstrapping code and before the node
101
- * signals its readiness to the managing CloudFormation stack. This code must be a typical user data script:
102
- * critically it must begin with an interpreter directive (i.e. a `#!`).
103
- */
104
- nodeUserData?: pulumi.Input<string>;
105
- /**
106
- * User specified code to run on node startup. This code is expected to
107
- * handle the full AWS EKS bootstrapping code and signal node readiness
108
- * to the managing CloudFormation stack. This code must be a complete
109
- * and executable user data script in bash (Linux) or powershell (Windows).
110
- *
111
- * See for more details: https://docs.aws.amazon.com/eks/latest/userguide/worker.html
112
- */
113
- nodeUserDataOverride?: pulumi.Input<string>;
114
- /**
115
- * The number of worker nodes that should be running in the cluster. Defaults to 2.
116
- */
117
- desiredCapacity?: pulumi.Input<number>;
118
- /**
119
- * The minimum number of worker nodes running in the cluster. Defaults to 1.
120
- */
121
- minSize?: pulumi.Input<number>;
122
- /**
123
- * The maximum number of worker nodes running in the cluster. Defaults to 2.
124
- */
125
- maxSize?: pulumi.Input<number>;
126
- /**
127
- * The AMI type for the instance.
128
- *
129
- * If you are passing an amiId that is `arm64` type, then we need to ensure
130
- * that this value is set as `amazon-linux-2-arm64`.
131
- *
132
- * Note: `amiType` and `gpu` are mutually exclusive.
133
- */
134
- amiType?: pulumi.Input<string>;
135
- /**
136
- * The AMI ID to use for the worker nodes.
137
- *
138
- * Defaults to the latest recommended EKS Optimized Linux AMI from the
139
- * AWS Systems Manager Parameter Store.
140
- *
141
- * Note: `amiId` and `gpu` are mutually exclusive.
142
- *
143
- * See for more details:
144
- * - https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html.
145
- */
146
- amiId?: pulumi.Input<string>;
147
- /**
148
- * Use the latest recommended EKS Optimized Linux AMI with GPU support for
149
- * the worker nodes from the AWS Systems Manager Parameter Store.
150
- *
151
- * Defaults to false.
152
- *
153
- * Note: `gpu` and `amiId` are mutually exclusive.
154
- *
155
- * See for more details:
156
- * - https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html.
157
- * - https://docs.aws.amazon.com/eks/latest/userguide/retrieve-ami-id.html
158
- */
159
- gpu?: pulumi.Input<boolean>;
160
- /**
161
- * Custom k8s node labels to be attached to each woker node. Adds the given key/value pairs to the `--node-labels`
162
- * kubelet argument.
163
- */
164
- labels?: {
165
- [key: string]: string;
166
- };
167
- /**
168
- * Custom k8s node taints to be attached to each worker node. Adds the given taints to the `--register-with-taints`
169
- * kubelet argument.
170
- */
171
- taints?: {
172
- [key: string]: Taint;
173
- };
174
- /**
175
- * Extra args to pass to the Kubelet. Corresponds to the options passed in the `--kubeletExtraArgs` flag to
176
- * `/etc/eks/bootstrap.sh`. For example, '--port=10251 --address=0.0.0.0'. Note that the `labels` and `taints`
177
- * properties will be applied to this list (using `--node-labels` and `--register-with-taints` respectively) after
178
- * to the expicit `kubeletExtraArgs`.
179
- */
180
- kubeletExtraArgs?: string;
181
- /**
182
- * Additional args to pass directly to `/etc/eks/bootstrap.sh`. For details on available options, see:
183
- * https://github.com/awslabs/amazon-eks-ami/blob/master/files/bootstrap.sh. Note that the `--apiserver-endpoint`,
184
- * `--b64-cluster-ca` and `--kubelet-extra-args` flags are included automatically based on other configuration
185
- * parameters.
186
- */
187
- bootstrapExtraArgs?: string;
188
- /**
189
- * Whether or not to auto-assign public IP addresses on the EKS worker nodes.
190
- * If this toggle is set to true, the EKS workers will be
191
- * auto-assigned public IPs. If false, they will not be auto-assigned
192
- * public IPs.
193
- */
194
- nodeAssociatePublicIpAddress?: boolean;
195
- /**
196
- * Desired Kubernetes master / control plane version. If you do not specify a value, the latest available version is used.
197
- */
198
- version?: pulumi.Input<string>;
199
- /**
200
- * The instance profile to use for this node group. Note, the role for the instance profile
201
- * must be supplied in the ClusterOptions as either: 'instanceRole', or as a role of 'instanceRoles'.
202
- */
203
- instanceProfile?: aws.iam.InstanceProfile;
204
- /**
205
- * The tags to apply to the NodeGroup's AutoScalingGroup in the
206
- * CloudFormation Stack.
207
- *
208
- * Per AWS, all stack-level tags, including automatically created tags, and
209
- * the `cloudFormationTags` option are propagated to resources that AWS
210
- * CloudFormation supports, including the AutoScalingGroup. See
211
- * https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html
212
- *
213
- * Note: Given the inheritance of auto-generated CF tags and
214
- * `cloudFormationTags`, you should either supply the tag in
215
- * `autoScalingGroupTags` or `cloudFormationTags`, but not both.
216
- */
217
- autoScalingGroupTags?: InputTags;
218
- /**
219
- * The tags to apply to the CloudFormation Stack of the Worker NodeGroup.
220
- *
221
- * Note: Given the inheritance of auto-generated CF tags and
222
- * `cloudFormationTags`, you should either supply the tag in
223
- * `autoScalingGroupTags` or `cloudFormationTags`, but not both.
224
- */
225
- cloudFormationTags?: InputTags;
226
- /**
227
- * Enables/disables detailed monitoring of the EC2 instances.
228
- *
229
- * With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals.
230
- * When enabled, you can also get aggregated data across groups of similar instances.
231
- *
232
- * Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage.
233
- * For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/.
234
- */
235
- enableDetailedMonitoring?: pulumi.Input<boolean>;
236
- }
237
- /**
238
- * NodeGroupOptions describes the configuration options accepted by a NodeGroup component.
239
- */
240
- export interface NodeGroupOptions extends NodeGroupBaseOptions {
241
- /**
242
- * The target EKS cluster.
243
- */
244
- cluster: Cluster | CoreData;
245
- }
246
- /**
247
- * NodeGroupV2Options describes the configuration options accepted by a NodeGroupV2 component.
248
- */
249
- export interface NodeGroupV2Options extends NodeGroupOptions {
250
- /**
251
- * The minimum amount of instances that should remain available during an instance refresh,
252
- * expressed as a percentage.
253
- *
254
- * Defaults to 50.
255
- */
256
- minRefreshPercentage?: pulumi.Input<number>;
257
- launchTemplateTagSpecifications?: pulumi.Input<pulumi.Input<awsInputs.ec2.LaunchTemplateTagSpecification>[]>;
258
- /**
259
- * Metadata options passed to EC2 instances
260
- */
261
- metadataOptions?: pulumi.Input<awsInputs.ec2.InstanceMetadataOptions>;
262
- /**
263
- * The instance warmup is the time period, in seconds, from when a new instance's state changes to InService to
264
- * when it can receive traffic. During an instance refresh, Amazon EC2 Auto Scaling does not immediately move on
265
- * to the next replacement after determining that a newly launched instance is healthy. It waits for the warm-up
266
- * period that you specified before it moves on to replacing other instances. This can be helpful when your
267
- * application takes time to initialize itself before it starts to serve traffic.
268
- */
269
- defaultInstanceWarmup?: pulumi.Input<number>;
270
- }
271
- /**
272
- * NodeGroupData describes the resources created for the given NodeGroup.
273
- */
274
- export interface NodeGroupData {
275
- /**
276
- * The security group for the node group to communicate with the cluster.
277
- */
278
- nodeSecurityGroup: aws.ec2.SecurityGroup;
279
- /**
280
- * The CloudFormation Stack which defines the node group's AutoScalingGroup.
281
- */
282
- cfnStack: aws.cloudformation.Stack;
283
- /**
284
- * The AutoScalingGroup name for the node group.
285
- */
286
- autoScalingGroupName: pulumi.Output<string>;
287
- /**
288
- * The additional security groups for the node group that captures user-specific rules.
289
- */
290
- extraNodeSecurityGroups?: aws.ec2.SecurityGroup[];
291
- }
292
- export interface NodeGroupV2Data {
293
- /**
294
- * The security group for the node group to communicate with the cluster.
295
- */
296
- nodeSecurityGroup: aws.ec2.SecurityGroup;
297
- /**
298
- * The AutoScalingGroup name for the node group.
299
- */
300
- autoScalingGroup: aws.autoscaling.Group;
301
- /**
302
- * The additional security groups for the node group that captures user-specific rules.
303
- */
304
- extraNodeSecurityGroups?: aws.ec2.SecurityGroup[];
305
- }
306
- /**
307
- * NodeGroup is a component that wraps the AWS EC2 instances that provide compute capacity for an EKS cluster.
308
- */
309
- export declare class NodeGroup extends pulumi.ComponentResource implements NodeGroupData {
310
- /**
311
- * The security group for the node group to communicate with the cluster.
312
- */
313
- readonly nodeSecurityGroup: aws.ec2.SecurityGroup;
314
- /**
315
- * The additional security groups for the node group that captures user-specific rules.
316
- */
317
- readonly extraNodeSecurityGroups: aws.ec2.SecurityGroup[];
318
- /**
319
- * The CloudFormation Stack which defines the Node AutoScalingGroup.
320
- */
321
- cfnStack: aws.cloudformation.Stack;
322
- /**
323
- * The AutoScalingGroup name for the Node group.
324
- */
325
- autoScalingGroupName: pulumi.Output<string>;
326
- /**
327
- * Create a new EKS cluster with worker nodes, optional storage classes, and deploy the Kubernetes Dashboard if
328
- * requested.
329
- *
330
- * @param name The _unique_ name of this component.
331
- * @param args The arguments for this cluster.
332
- * @param opts A bag of options that control this component's behavior.
333
- */
334
- constructor(name: string, args: NodeGroupOptions, opts?: pulumi.ComponentResourceOptions);
335
- }
336
- export declare class NodeGroupV2 extends pulumi.ComponentResource implements NodeGroupV2Data {
337
- /**
338
- * The security group for the node group to communicate with the cluster.
339
- */
340
- readonly nodeSecurityGroup: aws.ec2.SecurityGroup;
341
- /**
342
- * The additional security groups for the node group that captures user-specific rules.
343
- */
344
- readonly extraNodeSecurityGroups: aws.ec2.SecurityGroup[];
345
- /**
346
- * The AutoScalingGroup name for the Node group.
347
- */
348
- autoScalingGroup: aws.autoscaling.Group;
349
- /**
350
- * Create a new EKS cluster with worker nodes, optional storage classes, and deploy the Kubernetes Dashboard if
351
- * requested.
352
- *
353
- * @param name The _unique_ name of this component.
354
- * @param args The arguments for this cluster.
355
- * @param opts A bag of options that control this component's behavior.
356
- */
357
- constructor(name: string, args: NodeGroupV2Options, opts?: pulumi.ComponentResourceOptions);
358
- }
359
- /**
360
- * Create a self-managed node group using CloudFormation and an ASG.
361
- *
362
- * See for more details:
363
- * https://docs.aws.amazon.com/eks/latest/userguide/worker.html
364
- */
365
- export declare function createNodeGroup(name: string, args: NodeGroupOptions, parent: pulumi.ComponentResource, provider?: pulumi.ProviderResource): NodeGroupData;
366
- /**
367
- * Create a self-managed node group using a Launch Template and an ASG.
368
- *
369
- * See for more details:
370
- * https://docs.aws.amazon.com/eks/latest/userguide/worker.html
371
- */
372
- export declare function createNodeGroupV2(name: string, args: NodeGroupV2Options, parent: pulumi.ComponentResource, provider?: pulumi.ProviderResource): NodeGroupV2Data;
373
- /** computeWorkerSubnets attempts to determine the subset of the given subnets to use for worker nodes.
374
- *
375
- * As per https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html, an EKS cluster that is attached to public
376
- * and private subnets will only expose its API service to workers on the private subnets. Any workers attached to the
377
- * public subnets will be unable to communicate with the API server.
378
- *
379
- * If all of the given subnet IDs are public, the list of subnet IDs is returned as-is. If any private subnet is given,
380
- * only the IDs of the private subnets are returned. A subnet is deemed private iff it has no route in its route table
381
- * that routes directly to an internet gateway. If any such route exists in a subnet's route table, it is treated as
382
- * public.
383
- */
384
- export declare function computeWorkerSubnets(parent: pulumi.Resource, subnetIds: string[]): Promise<string[]>;
385
- /**
386
- * ManagedNodeGroupOptions describes the configuration options accepted by an
387
- * AWS Managed NodeGroup.
388
- *
389
- * See for more details:
390
- * https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html
391
- */
392
- export type ManagedNodeGroupOptions = Omit<aws.eks.NodeGroupArgs, "clusterName" | "nodeRoleArn" | "subnetIds" | "scalingConfig"> & {
393
- /**
394
- * The target EKS cluster.
395
- */
396
- cluster: Cluster | CoreData;
397
- /**
398
- * Make clusterName optional, since the cluster is required and it contains it.
399
- */
400
- clusterName?: pulumi.Output<string>;
401
- /**
402
- * Extra args to pass to the Kubelet. Corresponds to the options passed in the `--kubeletExtraArgs` flag to
403
- * `/etc/eks/bootstrap.sh`. For example, '--port=10251 --address=0.0.0.0'. To escape characters in the extra args
404
- * value, wrap the value in quotes. For example, `kubeletExtraArgs = '--allowed-unsafe-sysctls "net.core.somaxconn"'`.
405
- *
406
- * Note that this field conflicts with `launchTemplate`.
407
- */
408
- kubeletExtraArgs?: string;
409
- /**
410
- * Additional args to pass directly to `/etc/eks/bootstrap.sh`. For details on available options, see:
411
- * https://github.com/awslabs/amazon-eks-ami/blob/master/files/bootstrap.sh. Note that the `--apiserver-endpoint`,
412
- * `--b64-cluster-ca` and `--kubelet-extra-args` flags are included automatically based on other configuration
413
- * parameters.
414
- *
415
- * Note that this field conflicts with `launchTemplate`.
416
- */
417
- bootstrapExtraArgs?: string;
418
- /**
419
- * Enables the ability to use EC2 Instance Metadata Service v2, which provides a more secure way to access instance
420
- * metadata. For more information, see: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html.
421
- * Defaults to `false`.
422
- *
423
- * Note that this field conflicts with `launchTemplate`. If you are providing a custom `launchTemplate`, you should
424
- * enable this feature within the `launchTemplateMetadataOptions` of the supplied `launchTemplate`.
425
- */
426
- enableIMDSv2?: boolean;
427
- /**
428
- * Make nodeGroupName optional, since the NodeGroup resource name can be
429
- * used as a default.
430
- */
431
- nodeGroupName?: pulumi.Input<string>;
432
- /**
433
- * Make nodeRoleArn optional, since users may prefer to provide the
434
- * nodegroup role directly using nodeRole.
435
- *
436
- * Note, nodeRoleArn and nodeRole are mutually exclusive, and a single option
437
- * must be used.
438
- */
439
- nodeRoleArn?: pulumi.Input<string>;
440
- /**
441
- * Make nodeRole optional, since users may prefer to provide the
442
- * nodeRoleArn.
443
- *
444
- * Note, nodeRole and nodeRoleArn are mutually exclusive, and a single
445
- * option must be used.
446
- */
447
- nodeRole?: pulumi.Input<aws.iam.Role>;
448
- /**
449
- * Make subnetIds optional, since the cluster is required and it contains it.
450
- *
451
- * Default subnetIds is chosen from the following list, in order, if
452
- * subnetIds arg is not set:
453
- * - core.subnetIds
454
- * - core.privateIds
455
- * - core.publicSublicSubnetIds
456
- *
457
- * This default logic is based on the existing subnet IDs logic of this
458
- * package: https://git.io/JeM11
459
- */
460
- subnetIds?: pulumi.Input<pulumi.Input<string>[]>;
461
- /**
462
- * Make scalingConfig optional, since defaults can be computed.
463
- *
464
- * Default scaling amounts of the node group autoscaling group are:
465
- * - desiredSize: 2
466
- * - minSize: 1
467
- * - maxSize: 2
468
- */
469
- scalingConfig?: pulumi.Input<awsInputs.eks.NodeGroupScalingConfig>;
470
- };
471
- /**
472
- * ManagedNodeGroup is a component that wraps creating an AWS managed node group.
473
- *
474
- * See for more details:
475
- * https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html
476
- */
477
- export declare class ManagedNodeGroup extends pulumi.ComponentResource {
478
- /**
479
- * The AWS managed node group.
480
- */
481
- readonly nodeGroup: aws.eks.NodeGroup;
482
- /**
483
- * Create a new AWS managed node group.
484
- *
485
- * @param name The _unique_ name of this component.
486
- * @param args The arguments for this node group.
487
- * @param opts A bag of options that control this component's behavior.
488
- */
489
- constructor(name: string, args: ManagedNodeGroupOptions, opts?: pulumi.ComponentResourceOptions);
490
- }
491
- /**
492
- * Create an AWS managed node group.
493
- *
494
- * See for more details:
495
- * https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html
496
- */
497
- export declare function createManagedNodeGroup(name: string, args: ManagedNodeGroupOptions, parent?: pulumi.ComponentResource, provider?: pulumi.ProviderResource): aws.eks.NodeGroup;
498
- /**
499
- * isGravitonInstance returns true if the instance type is a Graviton instance.
500
- * We determine this by checking if the third character of the instance type is
501
- * a "g".
502
- *
503
- * See https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html.
504
- */
505
- export declare function isGravitonInstance(instanceType: string): boolean;
506
- type NodeArchitecture = "arm64" | "x86_64";
507
- /**
508
- * Determines the architecture based on the provided instance types. Defaults to "x86_64" if no instance types are provided.
509
- *
510
- * @param instanceTypes - An array of instance types.
511
- * @returns The architecture of the instance types, either "arm64" or "x86_64".
512
- * @throws {pulumi.ResourceError} If the provided instance types do not share a common architecture.
513
- */
514
- export declare function getArchitecture(instanceTypes: string[]): NodeArchitecture;
515
- export {};