@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.
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
@@ -0,0 +1,203 @@
1
+ import * as pulumi from '@pulumi/pulumi';
2
+ import * as awsInputs from "@pulumi/aws/types/input";
3
+ import * as aws from '@pulumi/aws';
4
+ import { Cluster } from './cluster';
5
+ import { ManagedNodeGroup } from './managedNodeGroup';
6
+ import { ComponentResource, ProviderResource } from '@pulumi/pulumi';
7
+ import { OperatingSystem } from './types/enums';
8
+ import { NodeadmOptionsArgs } from './types/input';
9
+ /**
10
+ * ManagedNodeGroupOptions describes the configuration options accepted by an
11
+ * AWS Managed NodeGroup.
12
+ *
13
+ * See for more details:
14
+ * https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html
15
+ */
16
+ export type ManagedNodeGroupOptions = Omit<aws.eks.NodeGroupArgs, "clusterName" | "nodeRoleArn" | "subnetIds" | "scalingConfig"> & {
17
+ /**
18
+ * The target EKS cluster.
19
+ */
20
+ cluster: Cluster;
21
+ /**
22
+ * Make clusterName optional, since the cluster is required and it contains it.
23
+ */
24
+ clusterName?: pulumi.Output<string>;
25
+ /**
26
+ * Extra args to pass to the Kubelet. Corresponds to the options passed in the `--kubeletExtraArgs` flag to
27
+ * `/etc/eks/bootstrap.sh`. For example, '--port=10251 --address=0.0.0.0'. To escape characters in the extra args
28
+ * value, wrap the value in quotes. For example, `kubeletExtraArgs = '--allowed-unsafe-sysctls "net.core.somaxconn"'`.
29
+ *
30
+ * Note that this field conflicts with `launchTemplate`.
31
+ */
32
+ kubeletExtraArgs?: string;
33
+ /**
34
+ * Additional args to pass directly to `/etc/eks/bootstrap.sh`. For details on available options, see:
35
+ * https://github.com/awslabs/amazon-eks-ami/blob/master/files/bootstrap.sh. Note that the `--apiserver-endpoint`,
36
+ * `--b64-cluster-ca` and `--kubelet-extra-args` flags are included automatically based on other configuration
37
+ * parameters.
38
+ *
39
+ * Note that this field conflicts with `launchTemplate`.
40
+ */
41
+ bootstrapExtraArgs?: string;
42
+ /**
43
+ * Enables the ability to use EC2 Instance Metadata Service v2, which provides a more secure way to access instance
44
+ * metadata. For more information, see: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html.
45
+ * Defaults to `false`.
46
+ *
47
+ * Note that this field conflicts with `launchTemplate`. If you are providing a custom `launchTemplate`, you should
48
+ * enable this feature within the `launchTemplateMetadataOptions` of the supplied `launchTemplate`.
49
+ */
50
+ enableIMDSv2?: boolean;
51
+ /**
52
+ * Make nodeGroupName optional, since the NodeGroup resource name can be
53
+ * used as a default.
54
+ */
55
+ nodeGroupName?: pulumi.Input<string>;
56
+ /**
57
+ * Make nodeRoleArn optional, since users may prefer to provide the
58
+ * nodegroup role directly using nodeRole.
59
+ *
60
+ * Note, nodeRoleArn and nodeRole are mutually exclusive, and a single option
61
+ * must be used.
62
+ */
63
+ nodeRoleArn?: pulumi.Input<string>;
64
+ /**
65
+ * Make nodeRole optional, since users may prefer to provide the
66
+ * nodeRoleArn.
67
+ *
68
+ * Note, nodeRole and nodeRoleArn are mutually exclusive, and a single
69
+ * option must be used.
70
+ */
71
+ nodeRole?: pulumi.Input<aws.iam.Role>;
72
+ /**
73
+ * Make subnetIds optional, since the cluster is required and it contains it.
74
+ *
75
+ * Default subnetIds is chosen from the following list, in order, if
76
+ * subnetIds arg is not set:
77
+ * - core.subnetIds
78
+ * - core.privateIds
79
+ * - core.publicSublicSubnetIds
80
+ *
81
+ * This default logic is based on the existing subnet IDs logic of this
82
+ * package: https://git.io/JeM11
83
+ */
84
+ subnetIds?: pulumi.Input<pulumi.Input<string>[]>;
85
+ /**
86
+ * Make scalingConfig optional, since defaults can be computed.
87
+ *
88
+ * Default scaling amounts of the node group autoscaling group are:
89
+ * - desiredSize: 2
90
+ * - minSize: 1
91
+ * - maxSize: 2
92
+ */
93
+ scalingConfig?: pulumi.Input<awsInputs.eks.NodeGroupScalingConfig>;
94
+ /**
95
+ * Whether to ignore changes to the desired size of the AutoScalingGroup. This is useful when using Cluster Autoscaler.
96
+ *
97
+ * See EKS best practices for more details: https://aws.github.io/aws-eks-best-practices/cluster-autoscaling/
98
+ */
99
+ ignoreScalingChanges?: boolean;
100
+ /**
101
+ * 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
102
+ * instance types and gpu configuration. Valid values are `AL2`, `AL2023` and `Bottlerocket`.
103
+ *
104
+ * Defaults to `AL2`.
105
+ */
106
+ operatingSystem?: pulumi.Input<OperatingSystem>;
107
+ /**
108
+ * The configuration settings for Bottlerocket OS.
109
+ * The settings will get merged with the base settings the provider uses to configure Bottlerocket.
110
+ * This includes:
111
+ * - settings.kubernetes.api-server
112
+ * - settings.kubernetes.cluster-certificate
113
+ * - settings.kubernetes.cluster-name
114
+ * - settings.kubernetes.cluster-dns-ip
115
+ *
116
+ * For an overview of the available settings, see https://bottlerocket.dev/en/os/1.20.x/api/settings/.
117
+ */
118
+ bottlerocketSettings?: pulumi.Input<object>;
119
+ /**
120
+ * User specified code to run on node startup. This is expected to handle the full AWS EKS node bootstrapping.
121
+ * If omitted, the provider will configure the user data.
122
+ *
123
+ * See for more details: https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html#launch-template-user-data
124
+ */
125
+ userData?: pulumi.Input<string>;
126
+ /**
127
+ * Use the latest recommended EKS Optimized AMI with GPU support for the worker nodes.
128
+ * Defaults to false.
129
+ *
130
+ * Note: `gpu` and `amiId` are mutually exclusive.
131
+ *
132
+ * See for more details: https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-amis.html.
133
+ */
134
+ gpu?: pulumi.Input<boolean>;
135
+ /**
136
+ * The AMI ID to use for the worker nodes.
137
+ * Defaults to the latest recommended EKS Optimized AMI from the AWS Systems Manager Parameter Store.
138
+ *
139
+ * Note: `amiId` is mutually exclusive with `gpu` and `amiType`.
140
+ *
141
+ * See for more details: https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html.
142
+ */
143
+ amiId?: pulumi.Input<string>;
144
+ /**
145
+ * Extra nodeadm configuration sections to be added to the nodeadm user data.
146
+ * This can be shell scripts, nodeadm NodeConfig or any other user data compatible script.
147
+ * When configuring additional nodeadm NodeConfig sections, they'll be merged with the base settings the provider sets.
148
+ * You can overwrite base settings or provide additional settings this way.
149
+ *
150
+ * The base settings are:
151
+ * - cluster.name
152
+ * - cluster.apiServerEndpoint
153
+ * - cluster.certificateAuthority
154
+ * - cluster.cidr
155
+ *
156
+ * Note: This is only applicable when using AL2023.
157
+ * See for more details:
158
+ * - [Amazon EKS AMI - Nodeadm](https://awslabs.github.io/amazon-eks-ami/nodeadm/).
159
+ * - [Amazon EKS AMI - Nodeadm Configuration](https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/).
160
+ */
161
+ nodeadmExtraOptions?: pulumi.Input<pulumi.Input<NodeadmOptionsArgs>[]>;
162
+ };
163
+ /**
164
+ * Create an AWS managed node group.
165
+ *
166
+ * See for more details:
167
+ * https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html
168
+ */
169
+ export declare function createManagedNodeGroup(name: string, args: ManagedNodeGroupOptions, parent?: ComponentResource, provider?: ProviderResource): ManagedNodeGroup;
170
+ /**
171
+ * InputTags represents an Input map type that can leverage dynamic string k/v
172
+ * for use on types that expect a k/v type with possible computed runtime values,
173
+ * such as special CloudFormation Tags. See
174
+ * https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html.
175
+ */
176
+ export type InputTags = pulumi.Input<{
177
+ [key: string]: pulumi.Input<string>;
178
+ }>;
179
+ /**
180
+ * NodeGroupSecurityGroupOptions describes the configuration options accepted
181
+ * by a security group for use with a NodeGroup.
182
+ */
183
+ export interface NodeGroupSecurityGroupOptions {
184
+ /**
185
+ * The VPC in which to create the worker node group.
186
+ */
187
+ vpcId: pulumi.Input<string>;
188
+ /**
189
+ * The security group associated with the EKS cluster.
190
+ */
191
+ clusterSecurityGroup: pulumi.Input<aws.ec2.SecurityGroup>;
192
+ tags?: InputTags;
193
+ /**
194
+ * The EKS cluster associated with the worker node group.
195
+ */
196
+ eksCluster: pulumi.Input<aws.eks.Cluster>;
197
+ }
198
+ /**
199
+ * createNodeGroupSecurityGroup creates a security group for node groups with the
200
+ * default ingress & egress rules required to connect and work with the EKS
201
+ * cluster security group.
202
+ */
203
+ export declare function createNodeGroupSecurityGroup(name: string, args: NodeGroupSecurityGroupOptions, parent: pulumi.ComponentResource, provider?: pulumi.ProviderResource): [aws.ec2.SecurityGroup, aws.ec2.SecurityGroupRule];
@@ -1,41 +1,30 @@
1
1
  "use strict";
2
- // Copyright 2016-2022, 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
2
  Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.createNodeGroupSecurityGroup = exports.NodeGroupSecurityGroup = void 0;
17
- const aws = require("@pulumi/aws");
3
+ exports.createNodeGroupSecurityGroup = exports.createManagedNodeGroup = void 0;
18
4
  const pulumi = require("@pulumi/pulumi");
5
+ const aws = require("@pulumi/aws");
6
+ const managedNodeGroup_1 = require("./managedNodeGroup");
19
7
  /**
20
- * NodeGroupSecurityGroup is a component that wraps creating a security group for node groups with the
21
- * default ingress & egress rules required to connect and work with the EKS cluster security group.
8
+ * Create an AWS managed node group.
9
+ *
10
+ * See for more details:
11
+ * https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html
22
12
  */
23
- class NodeGroupSecurityGroup extends pulumi.ComponentResource {
24
- /**
25
- * Creates a security group for node groups with the default ingress & egress
26
- * rules required to connect and work with the EKS cluster security group.
27
- *
28
- * @param name The _unique_ name of this component.
29
- * @param args The arguments for this component.
30
- * @param opts A bag of options that control this component's behavior.
31
- */
32
- constructor(name, args, opts) {
33
- super("eks:index:NodeGroupSecurityGroup", name, args, opts);
34
- [this.securityGroup, this.securityGroupRule] = createNodeGroupSecurityGroup(name, args, this, opts === null || opts === void 0 ? void 0 : opts.provider);
35
- this.registerOutputs(undefined);
36
- }
13
+ function createManagedNodeGroup(name, args, parent, provider) {
14
+ const cluster = parent ? parent : args.cluster.eksCluster.urn;
15
+ return new managedNodeGroup_1.ManagedNodeGroup(name, args, {
16
+ provider,
17
+ transforms: [
18
+ (targs) => {
19
+ return {
20
+ props: targs.props,
21
+ opts: Object.assign(Object.assign({}, targs.opts), { aliases: [{ parent: cluster }] }),
22
+ };
23
+ }
24
+ ],
25
+ });
37
26
  }
38
- exports.NodeGroupSecurityGroup = NodeGroupSecurityGroup;
27
+ exports.createManagedNodeGroup = createManagedNodeGroup;
39
28
  /**
40
29
  * createNodeGroupSecurityGroup creates a security group for node groups with the
41
30
  * default ingress & egress rules required to connect and work with the EKS
@@ -49,7 +38,7 @@ function createNodeGroupSecurityGroup(name, args, parent, provider) {
49
38
  revokeRulesOnDelete: true,
50
39
  tags: pulumi.all([args.tags, eksCluster.name]).apply(([tags, clusterName]) => (Object.assign({ Name: `${name}-nodeSecurityGroup`, [`kubernetes.io/cluster/${clusterName}`]: "owned" }, tags))),
51
40
  }, { parent, provider });
52
- const nodeIngressRule = new aws.ec2.SecurityGroupRule(`${name}-eksNodeIngressRule`, {
41
+ new aws.ec2.SecurityGroupRule(`${name}-eksNodeIngressRule`, {
53
42
  description: "Allow nodes to communicate with each other",
54
43
  type: "ingress",
55
44
  fromPort: 0,
@@ -58,7 +47,7 @@ function createNodeGroupSecurityGroup(name, args, parent, provider) {
58
47
  securityGroupId: nodeSecurityGroup.id,
59
48
  self: true,
60
49
  }, { parent, provider });
61
- const nodeClusterIngressRule = new aws.ec2.SecurityGroupRule(`${name}-eksNodeClusterIngressRule`, {
50
+ new aws.ec2.SecurityGroupRule(`${name}-eksNodeClusterIngressRule`, {
62
51
  description: "Allow worker Kubelets and pods to receive communication from the cluster control plane",
63
52
  type: "ingress",
64
53
  fromPort: 1025,
@@ -67,7 +56,7 @@ function createNodeGroupSecurityGroup(name, args, parent, provider) {
67
56
  securityGroupId: nodeSecurityGroup.id,
68
57
  sourceSecurityGroupId: clusterSecurityGroup.id,
69
58
  }, { parent, provider });
70
- const extApiServerClusterIngressRule = new aws.ec2.SecurityGroupRule(`${name}-eksExtApiServerClusterIngressRule`, {
59
+ new aws.ec2.SecurityGroupRule(`${name}-eksExtApiServerClusterIngressRule`, {
71
60
  description: "Allow pods running extension API servers on port 443 to receive communication from cluster control plane",
72
61
  type: "ingress",
73
62
  fromPort: 443,
@@ -97,4 +86,4 @@ function createNodeGroupSecurityGroup(name, args, parent, provider) {
97
86
  return [nodeSecurityGroup, eksClusterIngressRule];
98
87
  }
99
88
  exports.createNodeGroupSecurityGroup = createNodeGroupSecurityGroup;
100
- //# sourceMappingURL=securitygroup.js.map
89
+ //# sourceMappingURL=nodegroupMixins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodegroupMixins.js","sourceRoot":"","sources":["../nodegroupMixins.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,26 +1,17 @@
1
1
  {
2
2
  "name": "@pulumi/eks",
3
- "version": "2.8.1",
4
- "description": "Pulumi Amazon Web Services (AWS) EKS Components.",
5
- "license": "Apache-2.0",
3
+ "version": "3.0.0-alpha.6",
6
4
  "keywords": [
7
5
  "pulumi",
8
6
  "aws",
9
7
  "eks"
10
8
  ],
11
- "scripts": {
12
- "format-check": "prettier --list-different .",
13
- "format": "prettier --list-different --write .",
14
- "lint-check": "yarn run format-check && tslint -c ../tslint.json -p tsconfig.json",
15
- "lint": "yarn run format && tslint -c ../tslint.json -p tsconfig.json --fix",
16
- "test": "jest"
17
- },
18
9
  "homepage": "https://pulumi.com",
19
- "repository": {
20
- "type": "git",
21
- "url": "https://github.com/pulumi/pulumi-eks.git"
10
+ "repository": "https://github.com/pulumi/pulumi-eks",
11
+ "license": "Apache-2.0",
12
+ "scripts": {
13
+ "build": "tsc"
22
14
  },
23
- "bugs": "https://github.com/pulumi/pulumi-eks/issues",
24
15
  "dependencies": {
25
16
  "@pulumi/aws": "^6.18.2",
26
17
  "@pulumi/kubernetes": "^4.1.1",
@@ -33,35 +24,16 @@
33
24
  "which": "^1.3.1"
34
25
  },
35
26
  "devDependencies": {
36
- "@babel/preset-env": "^7.23.9",
37
- "@babel/preset-typescript": "^7.23.3",
38
- "@types/jest": "^29.5.11",
39
27
  "@types/js-yaml": "^4.0.5",
40
28
  "@types/netmask": "^1.0.30",
41
29
  "@types/node": "^18.11.13",
42
30
  "@types/semver": "^7.3.10",
43
31
  "@types/which": "^1.3.1",
44
- "pkg": "^5.8.0",
45
- "prettier": "^2.8.1",
46
- "tslint": "^6.1.3",
47
- "tslint-config-prettier": "^1.18.0",
48
32
  "typescript": "^4.6.2"
49
33
  },
50
34
  "pulumi": {
51
- "resource": true
52
- },
53
- "prettier": {
54
- "tabWidth": 4,
55
- "trailingComma": "all",
56
- "printWidth": 100
57
- },
58
- "jest": {
59
- "modulePathIgnorePatterns": [
60
- "/bin/"
61
- ],
62
- "testPathIgnorePatterns": [
63
- "/node_modules/",
64
- "/bin/"
65
- ]
35
+ "resource": true,
36
+ "name": "eks",
37
+ "version": "3.0.0-alpha.6"
66
38
  }
67
39
  }
package/provider.d.ts ADDED
@@ -0,0 +1,21 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ export declare class Provider extends pulumi.ProviderResource {
3
+ /**
4
+ * Returns true if the given object is an instance of Provider. This is designed to work even
5
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
6
+ */
7
+ static isInstance(obj: any): obj is Provider;
8
+ /**
9
+ * Create a Provider resource with the given unique name, arguments, and options.
10
+ *
11
+ * @param name The _unique_ name of the resource.
12
+ * @param args The arguments to use to populate this resource's properties.
13
+ * @param opts A bag of options that control this resource's behavior.
14
+ */
15
+ constructor(name: string, args?: ProviderArgs, opts?: pulumi.ResourceOptions);
16
+ }
17
+ /**
18
+ * The set of arguments for constructing a Provider resource.
19
+ */
20
+ export interface ProviderArgs {
21
+ }
package/provider.js ADDED
@@ -0,0 +1,38 @@
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.Provider = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("./utilities");
8
+ class Provider extends pulumi.ProviderResource {
9
+ /**
10
+ * Returns true if the given object is an instance of Provider. This is designed to work even
11
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
12
+ */
13
+ static isInstance(obj) {
14
+ if (obj === undefined || obj === null) {
15
+ return false;
16
+ }
17
+ return obj['__pulumiType'] === "pulumi:providers:" + Provider.__pulumiType;
18
+ }
19
+ /**
20
+ * Create a Provider resource with the given unique name, arguments, and options.
21
+ *
22
+ * @param name The _unique_ name of the resource.
23
+ * @param args The arguments to use to populate this resource's properties.
24
+ * @param opts A bag of options that control this resource's behavior.
25
+ */
26
+ constructor(name, args, opts) {
27
+ let resourceInputs = {};
28
+ opts = opts || {};
29
+ {
30
+ }
31
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
32
+ super(Provider.__pulumiType, name, resourceInputs, opts);
33
+ }
34
+ }
35
+ exports.Provider = Provider;
36
+ /** @internal */
37
+ Provider.__pulumiType = 'eks';
38
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../provider.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC,MAAa,QAAS,SAAQ,MAAM,CAAC,gBAAgB;IAIjD;;;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,mBAAmB,GAAG,QAAQ,CAAC,YAAY,CAAC;IAC/E,CAAC;IAGD;;;;;;OAMG;IACH,YAAY,IAAY,EAAE,IAAmB,EAAE,IAA6B;QACxE,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB;SACC;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IAC7D,CAAC;;AA9BL,4BA+BC;AA9BG,gBAAgB;AACO,qBAAY,GAAG,KAAK,CAAC"}
@@ -1,17 +1,4 @@
1
1
  "use strict";
2
- // Copyright 2016-2019, 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
2
  Object.defineProperty(exports, "__esModule", { value: true });
16
3
  exports.createStorageClass = void 0;
17
4
  const k8s = require("@pulumi/kubernetes");
@@ -56,4 +43,4 @@ function createStorageClass(name, storageClass, opts) {
56
43
  }, opts);
57
44
  }
58
45
  exports.createStorageClass = createStorageClass;
59
- //# sourceMappingURL=storageclass.js.map
46
+ //# sourceMappingURL=storageclassMixins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storageclassMixins.js","sourceRoot":"","sources":["../storageclassMixins.ts"],"names":[],"mappings":";;;AAAA,0CAA0C;AAE1C,yCAAyC;AAsFzC;;GAEG;AACH,SAAgB,kBAAkB,CAC9B,IAAY,EACZ,YAA0B,EAC1B,IAAkC;IAElC,iGAAiG;IACjG,MAAM,QAAQ,GAAG,MAAM;SAClB,GAAG,CAAC,CAAC,YAAY,CAAC,QAAQ,IAAI,EAAE,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;SACxD,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE;QACtB,IAAI,SAAS,EAAE;YACX,CAAC,CAAC,WAAW,mCACN,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,KACxB,6CAA6C,EAAE,MAAM,GACxD,CAAC;SACL;QACD,OAAO,CAAC,CAAC;IACb,CAAC,CAAC,CAAC;IAEP,mDAAmD;IACnD,MAAM,UAAU,GAA4C;QACxD,IAAI,EAAE,YAAY,CAAC,IAAI;KAC1B,CAAC;IACF,IAAI,YAAY,CAAC,KAAK,EAAE;QACpB,UAAU,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;KACtF;IACD,IAAI,YAAY,CAAC,SAAS,EAAE;QACxB,UAAU,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;KACxF;IACD,IAAI,YAAY,CAAC,SAAS,EAAE;QACxB,UAAU,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;KACxF;IACD,IAAI,YAAY,CAAC,QAAQ,EAAE;QACvB,UAAU,CAAC,UAAU,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC;KAClD;IAED,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,CAClC,IAAI,EACJ;QACI,QAAQ,EAAE,QAAQ;QAClB,WAAW,EAAE,uBAAuB;QACpC,UAAU,EAAE,UAAU;QACtB,oBAAoB,EAAE,YAAY,CAAC,oBAAoB;QACvD,YAAY,EAAE,YAAY,CAAC,YAAY;QACvC,aAAa,EAAE,YAAY,CAAC,aAAa;QACzC,iBAAiB,EAAE,YAAY,CAAC,iBAAiB;KACpD,EACD,IAAI,CACP,CAAC;AACN,CAAC;AAhDD,gDAgDC"}
@@ -0,0 +1,170 @@
1
+ export declare const AccessEntryType: {
2
+ /**
3
+ * Standard Access Entry Workflow. Allows users to input a username and kubernetesGroup, and to associate access policies.
4
+ */
5
+ readonly Standard: "STANDARD";
6
+ /**
7
+ * For IAM roles used with AWS Fargate profiles.
8
+ */
9
+ readonly FargateLinux: "FARGATE_LINUX";
10
+ /**
11
+ * For IAM roles associated with self-managed Linux node groups. Allows the nodes to join the cluster.
12
+ */
13
+ readonly EC2Linux: "EC2_LINUX";
14
+ /**
15
+ * For IAM roles associated with self-managed Windows node groups. Allows the nodes to join the cluster.
16
+ */
17
+ readonly EC2Windows: "EC2_WINDOWS";
18
+ /**
19
+ * @deprecated Use `Standard` instead`
20
+ */
21
+ readonly STANDARD: "STANDARD";
22
+ /**
23
+ * @deprecated Use `FargateLinux` instead`
24
+ */
25
+ readonly FARGATE_LINUX: "FARGATE_LINUX";
26
+ /**
27
+ * @deprecated Use `EC2Linux` instead`
28
+ */
29
+ readonly EC2_LINUX: "EC2_LINUX";
30
+ /**
31
+ * @deprecated Use `EC2Windows` instead`
32
+ */
33
+ readonly EC2_WINDOWS: "EC2_WINDOWS";
34
+ };
35
+ /**
36
+ * The type of the new access entry. Valid values are STANDARD, FARGATE_LINUX, EC2_LINUX, and EC2_WINDOWS.
37
+ * Defaults to STANDARD which provides the standard workflow. EC2_LINUX and EC2_WINDOWS types disallow users to input a kubernetesGroup, and prevent associating access policies.
38
+ */
39
+ export type AccessEntryType = (typeof AccessEntryType)[keyof typeof AccessEntryType];
40
+ export declare const AmiType: {
41
+ /**
42
+ * @deprecated Amazon Linux 2 is deprecated. Please use Amazon Linux 2023 instead.
43
+ See for more details: https://docs.aws.amazon.com/eks/latest/userguide/al2023.html
44
+ */
45
+ readonly AL2X86_64: "AL2_x86_64";
46
+ /**
47
+ * @deprecated Amazon Linux 2 is deprecated. Please use Amazon Linux 2023 instead.
48
+ See for more details: https://docs.aws.amazon.com/eks/latest/userguide/al2023.html
49
+ */
50
+ readonly AL2X86_64GPU: "AL2_x86_64_GPU";
51
+ /**
52
+ * @deprecated Amazon Linux 2 is deprecated. Please use Amazon Linux 2023 instead.
53
+ See for more details: https://docs.aws.amazon.com/eks/latest/userguide/al2023.html
54
+ */
55
+ readonly AL2Arm64: "AL2_ARM_64";
56
+ readonly AL2023X86_64Standard: "AL2023_x86_64_STANDARD";
57
+ readonly AL2023Arm64Standard: "AL2023_ARM_64_STANDARD";
58
+ readonly BottlerocketArm64: "BOTTLEROCKET_ARM_64";
59
+ readonly BottlerocketX86_64: "BOTTLEROCKET_x86_64";
60
+ readonly BottlerocketArm64Nvidia: "BOTTLEROCKET_ARM_64_NVIDIA";
61
+ readonly BottlerocketX86_64Nvidia: "BOTTLEROCKET_x86_64_NVIDIA";
62
+ };
63
+ /**
64
+ * Predefined AMI types for EKS optimized AMIs. Can be used to select the latest EKS optimized AMI for a node group.
65
+ */
66
+ export type AmiType = (typeof AmiType)[keyof typeof AmiType];
67
+ export declare const AuthenticationMode: {
68
+ /**
69
+ * Only aws-auth ConfigMap will be used for authenticating to the Kubernetes API.
70
+ *
71
+ * @deprecated The aws-auth ConfigMap is deprecated. The recommended method to manage access to Kubernetes APIs is Access Entries with the AuthenticationMode API.
72
+ For more information and instructions how to upgrade, see https://docs.aws.amazon.com/eks/latest/userguide/migrating-access-entries.html.
73
+ */
74
+ readonly ConfigMap: "CONFIG_MAP";
75
+ /**
76
+ * Only Access Entries will be used for authenticating to the Kubernetes API.
77
+ */
78
+ readonly Api: "API";
79
+ /**
80
+ * Both aws-auth ConfigMap and Access Entries can be used for authenticating to the Kubernetes API.
81
+ *
82
+ * @deprecated The aws-auth ConfigMap is deprecated. The recommended method to manage access to Kubernetes APIs is Access Entries with the AuthenticationMode API.
83
+ For more information and instructions how to upgrade, see https://docs.aws.amazon.com/eks/latest/userguide/migrating-access-entries.html.
84
+ */
85
+ readonly ApiAndConfigMap: "API_AND_CONFIG_MAP";
86
+ /**
87
+ * @deprecated Use `ConfigMap` instead
88
+ */
89
+ readonly CONFIG_MAP: "CONFIG_MAP";
90
+ /**
91
+ * @deprecated Use `Api` instead
92
+ */
93
+ readonly API: "API";
94
+ /**
95
+ * @deprecated Use `ApiAndConfigMap` instead
96
+ */
97
+ readonly API_AND_CONFIG_MAP: "API_AND_CONFIG_MAP";
98
+ };
99
+ /**
100
+ * The authentication mode of the cluster. Valid values are `CONFIG_MAP`, `API` or `API_AND_CONFIG_MAP`.
101
+ *
102
+ * See for more details:
103
+ * https://docs.aws.amazon.com/eks/latest/userguide/grant-k8s-access.html#set-cam
104
+ */
105
+ export type AuthenticationMode = (typeof AuthenticationMode)[keyof typeof AuthenticationMode];
106
+ export declare const OperatingSystem: {
107
+ /**
108
+ * EKS optimized OS based on Amazon Linux 2 (AL2).
109
+ *
110
+ * @deprecated Amazon Linux 2 is deprecated. Please use Amazon Linux 2023 instead.
111
+ See for more details: https://docs.aws.amazon.com/eks/latest/userguide/al2023.html
112
+ */
113
+ readonly AL2: "AL2";
114
+ /**
115
+ * EKS optimized OS based on Amazon Linux 2023 (AL2023).
116
+ * See for more details: https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html
117
+ */
118
+ readonly AL2023: "AL2023";
119
+ /**
120
+ * EKS optimized Container OS based on Bottlerocket.
121
+ * See for more details: https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami-bottlerocket.html
122
+ */
123
+ readonly Bottlerocket: "Bottlerocket";
124
+ /**
125
+ * The recommended EKS optimized OS. Currently Amazon Linux 2023 (AL2023).
126
+ * This will be kept up to date with AWS' recommendations for EKS optimized operating systems.
127
+ *
128
+ * See for more details: https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html
129
+ */
130
+ readonly RECOMMENDED: "AL2023";
131
+ };
132
+ /**
133
+ * The type of EKS optimized Operating System to use for node groups.
134
+ *
135
+ * See for more details:
136
+ * https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-amis.html
137
+ */
138
+ export type OperatingSystem = (typeof OperatingSystem)[keyof typeof OperatingSystem];
139
+ export declare const ResolveConflictsOnCreate: {
140
+ /**
141
+ * If the self-managed version of the add-on is installed on your cluster, Amazon EKS doesn't change the value. Creation of the add-on might fail.
142
+ */
143
+ readonly None: "NONE";
144
+ /**
145
+ * If the self-managed version of the add-on is installed on your cluster and the Amazon EKS default value is different than the existing value, Amazon EKS changes the value to the Amazon EKS default value.
146
+ */
147
+ readonly Overwrite: "OVERWRITE";
148
+ };
149
+ /**
150
+ * How to resolve field value conflicts when migrating a self-managed add-on to an Amazon EKS add-on. Valid values are `NONE` and `OVERWRITE`. For more details see the [CreateAddon](https://docs.aws.amazon.com/eks/latest/APIReference/API_CreateAddon.html) API Docs.
151
+ */
152
+ export type ResolveConflictsOnCreate = (typeof ResolveConflictsOnCreate)[keyof typeof ResolveConflictsOnCreate];
153
+ export declare const ResolveConflictsOnUpdate: {
154
+ /**
155
+ * Amazon EKS doesn't change the value. The update might fail.
156
+ */
157
+ readonly None: "NONE";
158
+ /**
159
+ * Amazon EKS overwrites the changed value back to the Amazon EKS default value.
160
+ */
161
+ readonly Overwrite: "OVERWRITE";
162
+ /**
163
+ * Amazon EKS preserves the value. If you choose this option, we recommend that you test any field and value changes on a non-production cluster before updating the add-on on your production cluster.
164
+ */
165
+ readonly Preserve: "PRESERVE";
166
+ };
167
+ /**
168
+ * How to resolve field value conflicts for an Amazon EKS add-on if you've changed a value from the Amazon EKS default value. Valid values are `NONE`, `OVERWRITE`, and `PRESERVE`. For more details see the [UpdateAddon](https://docs.aws.amazon.com/eks/latest/APIReference/API_UpdateAddon.html) API Docs.
169
+ */
170
+ export type ResolveConflictsOnUpdate = (typeof ResolveConflictsOnUpdate)[keyof typeof ResolveConflictsOnUpdate];