@pulumi/eks 2.8.1 → 3.0.0-alpha.6
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.
- package/addon.d.ts +61 -13
- package/addon.js +45 -18
- package/addon.js.map +1 -1
- package/cluster.d.ts +291 -585
- package/cluster.js +120 -947
- package/cluster.js.map +1 -1
- package/clusterCreationRoleProvider.d.ts +28 -0
- package/clusterCreationRoleProvider.js +47 -0
- package/clusterCreationRoleProvider.js.map +1 -0
- package/clusterMixins.d.ts +71 -0
- package/clusterMixins.js +107 -0
- package/clusterMixins.js.map +1 -0
- package/index.d.ts +31 -7
- package/index.js +80 -34
- package/index.js.map +1 -1
- package/managedNodeGroup.d.ts +221 -0
- package/managedNodeGroup.js +81 -0
- package/managedNodeGroup.js.map +1 -0
- package/nodeGroup.d.ts +273 -0
- package/nodeGroup.js +93 -0
- package/nodeGroup.js.map +1 -0
- package/nodeGroupSecurityGroup.d.ts +51 -0
- package/nodeGroupSecurityGroup.js +60 -0
- package/nodeGroupSecurityGroup.js.map +1 -0
- package/nodeGroupV2.d.ts +280 -0
- package/nodeGroupV2.js +90 -0
- package/nodeGroupV2.js.map +1 -0
- package/nodegroupMixins.d.ts +203 -0
- package/{securitygroup.js → nodegroupMixins.js} +25 -36
- package/nodegroupMixins.js.map +1 -0
- package/package.json +8 -36
- package/provider.d.ts +21 -0
- package/provider.js +38 -0
- package/provider.js.map +1 -0
- package/{storageclass.js → storageclassMixins.js} +1 -14
- package/storageclassMixins.js.map +1 -0
- package/types/enums/index.d.ts +170 -0
- package/types/enums/index.js +145 -0
- package/types/enums/index.js.map +1 -0
- package/types/index.d.ts +4 -0
- package/types/index.js +13 -0
- package/types/index.js.map +1 -0
- package/types/input.d.ts +745 -0
- package/types/input.js +30 -0
- package/types/input.js.map +1 -0
- package/types/output.d.ts +422 -0
- package/types/output.js +5 -0
- package/types/output.js.map +1 -0
- package/utilities.d.ts +8 -1
- package/utilities.js +90 -17
- package/utilities.js.map +1 -1
- package/vpcCniAddon.d.ts +175 -0
- package/vpcCniAddon.js +88 -0
- package/vpcCniAddon.js.map +1 -0
- package/LICENSE +0 -202
- package/README.md +0 -77
- package/authenticationMode.d.ts +0 -24
- package/authenticationMode.js +0 -172
- package/authenticationMode.js.map +0 -1
- package/authenticationMode.test.d.ts +0 -1
- package/authenticationMode.test.js +0 -208
- package/authenticationMode.test.js.map +0 -1
- package/cert-thumprint.d.ts +0 -16
- package/cert-thumprint.js +0 -113
- package/cert-thumprint.js.map +0 -1
- package/cmd/provider/addon.d.ts +0 -1
- package/cmd/provider/addon.js +0 -40
- package/cmd/provider/addon.js.map +0 -1
- package/cmd/provider/cluster.d.ts +0 -1
- package/cmd/provider/cluster.js +0 -71
- package/cmd/provider/cluster.js.map +0 -1
- package/cmd/provider/cni.d.ts +0 -2
- package/cmd/provider/cni.js +0 -291
- package/cmd/provider/cni.js.map +0 -1
- package/cmd/provider/index.d.ts +0 -1
- package/cmd/provider/index.js +0 -171
- package/cmd/provider/index.js.map +0 -1
- package/cmd/provider/nodegroup.d.ts +0 -1
- package/cmd/provider/nodegroup.js +0 -89
- package/cmd/provider/nodegroup.js.map +0 -1
- package/cmd/provider/randomSuffix.d.ts +0 -1
- package/cmd/provider/randomSuffix.js +0 -52
- package/cmd/provider/randomSuffix.js.map +0 -1
- package/cmd/provider/schema.json +0 -1909
- package/cmd/provider/securitygroup.d.ts +0 -1
- package/cmd/provider/securitygroup.js +0 -41
- package/cmd/provider/securitygroup.js.map +0 -1
- package/cni/README.md +0 -6
- package/cni/aws-k8s-cni.yaml +0 -602
- package/cni.d.ts +0 -177
- package/cni.js +0 -64
- package/cni.js.map +0 -1
- package/dashboard/heapster-rbac.yaml +0 -12
- package/dashboard/heapster.yaml +0 -46
- package/dashboard/influxdb.yaml +0 -40
- package/dashboard/kubernetes-dashboard.yaml +0 -167
- package/dashboard.d.ts +0 -5
- package/dashboard.js +0 -58
- package/dashboard.js.map +0 -1
- package/dependencies.d.ts +0 -2
- package/dependencies.js +0 -81
- package/dependencies.js.map +0 -1
- package/dependencies.test.d.ts +0 -1
- package/dependencies.test.js +0 -133
- package/dependencies.test.js.map +0 -1
- package/nodegroup.d.ts +0 -515
- package/nodegroup.js +0 -1152
- package/nodegroup.js.map +0 -1
- package/nodegroup.test.d.ts +0 -1
- package/nodegroup.test.js +0 -336
- package/nodegroup.test.js.map +0 -1
- package/package.json.dev +0 -67
- package/randomSuffix.d.ts +0 -1
- package/randomSuffix.js +0 -51
- package/randomSuffix.js.map +0 -1
- package/securitygroup.d.ts +0 -52
- package/securitygroup.js.map +0 -1
- package/servicerole.d.ts +0 -43
- package/servicerole.js +0 -72
- package/servicerole.js.map +0 -1
- package/storageclass.js.map +0 -1
- package/utils.d.ts +0 -23
- package/utils.js +0 -16
- package/utils.js.map +0 -1
- /package/{storageclass.d.ts → storageclassMixins.d.ts} +0 -0
package/dependencies.js.map
DELETED
|
@@ -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"}
|
package/dependencies.test.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/dependencies.test.js
DELETED
|
@@ -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
|
package/dependencies.test.js.map
DELETED
|
@@ -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 {};
|