eks_cli 0.1.4 → 0.1.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.
- checksums.yaml +4 -4
- data/Gemfile.lock +24 -593
- data/README.md +20 -3
- data/eks_cli.gemspec +1 -0
- data/lib/eks_cli/cli.rb +23 -0
- data/lib/eks_cli/cloudformation/stack.rb +4 -0
- data/lib/eks_cli/config.rb +8 -4
- data/lib/eks_cli/k8s/auth.rb +7 -2
- data/lib/eks_cli/k8s/client.rb +20 -2
- data/lib/eks_cli/k8s/configmap_builder.rb +25 -7
- data/lib/eks_cli/nodegroup.rb +15 -0
- data/lib/eks_cli/spotinst/client.rb +33 -0
- data/lib/eks_cli/version.rb +1 -1
- metadata +16 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 22350ee29cfbc535b744189a8c4ccafc08c6f636
|
|
4
|
+
data.tar.gz: e22b96f6721ecab906ba9220ae27e39a0d5e25c9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 47a77f799f44e5664cec74104d6ab217ba1780cf4a3b4f46159ccd1a6820c6ceaedb35b0107fa12f9dc178e47c9b5fd0bbd5e8617391e9b966f6e9f64b62e9fa
|
|
7
|
+
data.tar.gz: cf738bb420aed7e184451bc6ab143fc15bc323644cee5252d15b1364894c303cfdc46f9c9832b092369b6f96044b698335df10642c76e261390c4e788a62babb
|
data/Gemfile.lock
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
eks_cli (0.1.
|
|
4
|
+
eks_cli (0.1.6)
|
|
5
5
|
activesupport
|
|
6
|
-
aws-sdk
|
|
6
|
+
aws-sdk-cloudformation
|
|
7
|
+
aws-sdk-ec2
|
|
8
|
+
aws-sdk-eks
|
|
9
|
+
aws-sdk-iam
|
|
10
|
+
aws-sdk-route53
|
|
11
|
+
httparty
|
|
7
12
|
kubeclient
|
|
8
13
|
thor
|
|
9
14
|
|
|
@@ -18,605 +23,27 @@ GEM
|
|
|
18
23
|
addressable (2.5.2)
|
|
19
24
|
public_suffix (>= 2.0.2, < 4.0)
|
|
20
25
|
aws-eventstream (1.0.1)
|
|
21
|
-
aws-partitions (1.
|
|
22
|
-
aws-sdk (
|
|
23
|
-
aws-sdk-
|
|
24
|
-
aws-sdk-acm (1.13.0)
|
|
25
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
26
|
+
aws-partitions (1.115.0)
|
|
27
|
+
aws-sdk-cloudformation (1.13.0)
|
|
28
|
+
aws-sdk-core (~> 3, >= 3.39.0)
|
|
26
29
|
aws-sigv4 (~> 1.0)
|
|
27
|
-
aws-sdk-
|
|
28
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
29
|
-
aws-sigv4 (~> 1.0)
|
|
30
|
-
aws-sdk-alexaforbusiness (1.12.0)
|
|
31
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
32
|
-
aws-sigv4 (~> 1.0)
|
|
33
|
-
aws-sdk-apigateway (1.22.0)
|
|
34
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
35
|
-
aws-sigv4 (~> 1.0)
|
|
36
|
-
aws-sdk-applicationautoscaling (1.15.0)
|
|
37
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
38
|
-
aws-sigv4 (~> 1.0)
|
|
39
|
-
aws-sdk-applicationdiscoveryservice (1.7.0)
|
|
40
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
41
|
-
aws-sigv4 (~> 1.0)
|
|
42
|
-
aws-sdk-appstream (1.18.0)
|
|
43
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
44
|
-
aws-sigv4 (~> 1.0)
|
|
45
|
-
aws-sdk-appsync (1.8.0)
|
|
46
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
47
|
-
aws-sigv4 (~> 1.0)
|
|
48
|
-
aws-sdk-athena (1.6.0)
|
|
49
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
50
|
-
aws-sigv4 (~> 1.0)
|
|
51
|
-
aws-sdk-autoscaling (1.11.0)
|
|
52
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
53
|
-
aws-sigv4 (~> 1.0)
|
|
54
|
-
aws-sdk-autoscalingplans (1.7.0)
|
|
55
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
56
|
-
aws-sigv4 (~> 1.0)
|
|
57
|
-
aws-sdk-batch (1.10.0)
|
|
58
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
59
|
-
aws-sigv4 (~> 1.0)
|
|
60
|
-
aws-sdk-budgets (1.14.0)
|
|
61
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
62
|
-
aws-sigv4 (~> 1.0)
|
|
63
|
-
aws-sdk-chime (1.1.0)
|
|
64
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
65
|
-
aws-sigv4 (~> 1.0)
|
|
66
|
-
aws-sdk-cloud9 (1.6.0)
|
|
67
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
68
|
-
aws-sigv4 (~> 1.0)
|
|
69
|
-
aws-sdk-clouddirectory (1.10.0)
|
|
70
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
71
|
-
aws-sigv4 (~> 1.0)
|
|
72
|
-
aws-sdk-cloudformation (1.11.0)
|
|
73
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
74
|
-
aws-sigv4 (~> 1.0)
|
|
75
|
-
aws-sdk-cloudfront (1.10.1)
|
|
76
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
77
|
-
aws-sigv4 (~> 1.0)
|
|
78
|
-
aws-sdk-cloudhsm (1.8.0)
|
|
79
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
80
|
-
aws-sigv4 (~> 1.0)
|
|
81
|
-
aws-sdk-cloudhsmv2 (1.8.0)
|
|
82
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
83
|
-
aws-sigv4 (~> 1.0)
|
|
84
|
-
aws-sdk-cloudsearch (1.5.0)
|
|
85
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
86
|
-
aws-sigv4 (~> 1.0)
|
|
87
|
-
aws-sdk-cloudsearchdomain (1.5.0)
|
|
88
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
89
|
-
aws-sigv4 (~> 1.0)
|
|
90
|
-
aws-sdk-cloudtrail (1.6.0)
|
|
91
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
92
|
-
aws-sigv4 (~> 1.0)
|
|
93
|
-
aws-sdk-cloudwatch (1.12.0)
|
|
94
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
95
|
-
aws-sigv4 (~> 1.0)
|
|
96
|
-
aws-sdk-cloudwatchevents (1.11.0)
|
|
97
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
98
|
-
aws-sigv4 (~> 1.0)
|
|
99
|
-
aws-sdk-cloudwatchlogs (1.10.0)
|
|
100
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
101
|
-
aws-sigv4 (~> 1.0)
|
|
102
|
-
aws-sdk-codebuild (1.22.0)
|
|
103
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
104
|
-
aws-sigv4 (~> 1.0)
|
|
105
|
-
aws-sdk-codecommit (1.10.0)
|
|
106
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
107
|
-
aws-sigv4 (~> 1.0)
|
|
108
|
-
aws-sdk-codedeploy (1.10.0)
|
|
109
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
110
|
-
aws-sigv4 (~> 1.0)
|
|
111
|
-
aws-sdk-codepipeline (1.10.0)
|
|
112
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
113
|
-
aws-sigv4 (~> 1.0)
|
|
114
|
-
aws-sdk-codestar (1.7.0)
|
|
115
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
116
|
-
aws-sigv4 (~> 1.0)
|
|
117
|
-
aws-sdk-cognitoidentity (1.5.0)
|
|
118
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
119
|
-
aws-sigv4 (~> 1.0)
|
|
120
|
-
aws-sdk-cognitoidentityprovider (1.10.0)
|
|
121
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
122
|
-
aws-sigv4 (~> 1.0)
|
|
123
|
-
aws-sdk-cognitosync (1.5.0)
|
|
124
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
125
|
-
aws-sigv4 (~> 1.0)
|
|
126
|
-
aws-sdk-comprehend (1.8.0)
|
|
127
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
128
|
-
aws-sigv4 (~> 1.0)
|
|
129
|
-
aws-sdk-configservice (1.19.0)
|
|
130
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
131
|
-
aws-sigv4 (~> 1.0)
|
|
132
|
-
aws-sdk-connect (1.8.0)
|
|
133
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
134
|
-
aws-sigv4 (~> 1.0)
|
|
135
|
-
aws-sdk-core (3.38.0)
|
|
30
|
+
aws-sdk-core (3.39.0)
|
|
136
31
|
aws-eventstream (~> 1.0)
|
|
137
32
|
aws-partitions (~> 1.0)
|
|
138
33
|
aws-sigv4 (~> 1.0)
|
|
139
34
|
jmespath (~> 1.0)
|
|
140
|
-
aws-sdk-
|
|
141
|
-
aws-sdk-core (~> 3, >= 3.
|
|
142
|
-
aws-sigv4 (~> 1.0)
|
|
143
|
-
aws-sdk-costexplorer (1.12.0)
|
|
144
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
145
|
-
aws-sigv4 (~> 1.0)
|
|
146
|
-
aws-sdk-databasemigrationservice (1.13.0)
|
|
147
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
148
|
-
aws-sigv4 (~> 1.0)
|
|
149
|
-
aws-sdk-datapipeline (1.5.0)
|
|
150
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
151
|
-
aws-sigv4 (~> 1.0)
|
|
152
|
-
aws-sdk-dax (1.7.0)
|
|
153
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
154
|
-
aws-sigv4 (~> 1.0)
|
|
155
|
-
aws-sdk-devicefarm (1.12.0)
|
|
156
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
157
|
-
aws-sigv4 (~> 1.0)
|
|
158
|
-
aws-sdk-directconnect (1.8.0)
|
|
159
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
160
|
-
aws-sigv4 (~> 1.0)
|
|
161
|
-
aws-sdk-directoryservice (1.10.0)
|
|
162
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
163
|
-
aws-sigv4 (~> 1.0)
|
|
164
|
-
aws-sdk-dlm (1.6.0)
|
|
165
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
166
|
-
aws-sigv4 (~> 1.0)
|
|
167
|
-
aws-sdk-dynamodb (1.16.0)
|
|
168
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
169
|
-
aws-sigv4 (~> 1.0)
|
|
170
|
-
aws-sdk-dynamodbstreams (1.5.0)
|
|
171
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
172
|
-
aws-sigv4 (~> 1.0)
|
|
173
|
-
aws-sdk-ec2 (1.56.0)
|
|
174
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
175
|
-
aws-sigv4 (~> 1.0)
|
|
176
|
-
aws-sdk-ecr (1.8.0)
|
|
177
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
178
|
-
aws-sigv4 (~> 1.0)
|
|
179
|
-
aws-sdk-ecs (1.22.0)
|
|
180
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
181
|
-
aws-sigv4 (~> 1.0)
|
|
182
|
-
aws-sdk-efs (1.6.0)
|
|
183
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
184
|
-
aws-sigv4 (~> 1.0)
|
|
185
|
-
aws-sdk-eks (1.7.0)
|
|
186
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
187
|
-
aws-sigv4 (~> 1.0)
|
|
188
|
-
aws-sdk-elasticache (1.9.0)
|
|
189
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
190
|
-
aws-sigv4 (~> 1.0)
|
|
191
|
-
aws-sdk-elasticbeanstalk (1.13.0)
|
|
192
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
193
|
-
aws-sigv4 (~> 1.0)
|
|
194
|
-
aws-sdk-elasticloadbalancing (1.7.0)
|
|
195
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
196
|
-
aws-sigv4 (~> 1.0)
|
|
197
|
-
aws-sdk-elasticloadbalancingv2 (1.16.0)
|
|
198
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
199
|
-
aws-sigv4 (~> 1.0)
|
|
200
|
-
aws-sdk-elasticsearchservice (1.14.0)
|
|
201
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
202
|
-
aws-sigv4 (~> 1.0)
|
|
203
|
-
aws-sdk-elastictranscoder (1.6.0)
|
|
204
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
205
|
-
aws-sigv4 (~> 1.0)
|
|
206
|
-
aws-sdk-emr (1.7.0)
|
|
207
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
208
|
-
aws-sigv4 (~> 1.0)
|
|
209
|
-
aws-sdk-firehose (1.9.0)
|
|
210
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
211
|
-
aws-sigv4 (~> 1.0)
|
|
212
|
-
aws-sdk-fms (1.6.0)
|
|
213
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
214
|
-
aws-sigv4 (~> 1.0)
|
|
215
|
-
aws-sdk-gamelift (1.9.0)
|
|
216
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
217
|
-
aws-sigv4 (~> 1.0)
|
|
218
|
-
aws-sdk-glacier (1.13.0)
|
|
219
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
220
|
-
aws-sigv4 (~> 1.0)
|
|
221
|
-
aws-sdk-glue (1.20.0)
|
|
222
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
223
|
-
aws-sigv4 (~> 1.0)
|
|
224
|
-
aws-sdk-greengrass (1.10.0)
|
|
225
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
226
|
-
aws-sigv4 (~> 1.0)
|
|
227
|
-
aws-sdk-guardduty (1.10.0)
|
|
228
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
229
|
-
aws-sigv4 (~> 1.0)
|
|
230
|
-
aws-sdk-health (1.7.0)
|
|
231
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
232
|
-
aws-sigv4 (~> 1.0)
|
|
233
|
-
aws-sdk-iam (1.10.0)
|
|
234
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
235
|
-
aws-sigv4 (~> 1.0)
|
|
236
|
-
aws-sdk-importexport (1.5.0)
|
|
237
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
238
|
-
aws-sigv2 (~> 1.0)
|
|
239
|
-
aws-sdk-inspector (1.11.0)
|
|
240
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
241
|
-
aws-sigv4 (~> 1.0)
|
|
242
|
-
aws-sdk-iot (1.18.0)
|
|
243
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
244
|
-
aws-sigv4 (~> 1.0)
|
|
245
|
-
aws-sdk-iot1clickdevicesservice (1.5.0)
|
|
246
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
247
|
-
aws-sigv4 (~> 1.0)
|
|
248
|
-
aws-sdk-iot1clickprojects (1.5.0)
|
|
249
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
250
|
-
aws-sigv4 (~> 1.0)
|
|
251
|
-
aws-sdk-iotanalytics (1.9.0)
|
|
252
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
253
|
-
aws-sigv4 (~> 1.0)
|
|
254
|
-
aws-sdk-iotdataplane (1.5.0)
|
|
255
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
256
|
-
aws-sigv4 (~> 1.0)
|
|
257
|
-
aws-sdk-iotjobsdataplane (1.6.0)
|
|
258
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
259
|
-
aws-sigv4 (~> 1.0)
|
|
260
|
-
aws-sdk-kinesis (1.8.0)
|
|
261
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
262
|
-
aws-sigv4 (~> 1.0)
|
|
263
|
-
aws-sdk-kinesisanalytics (1.7.0)
|
|
264
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
265
|
-
aws-sigv4 (~> 1.0)
|
|
266
|
-
aws-sdk-kinesisvideo (1.6.0)
|
|
267
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
268
|
-
aws-sigv4 (~> 1.0)
|
|
269
|
-
aws-sdk-kinesisvideoarchivedmedia (1.6.0)
|
|
270
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
271
|
-
aws-sigv4 (~> 1.0)
|
|
272
|
-
aws-sdk-kinesisvideomedia (1.5.0)
|
|
273
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
274
|
-
aws-sigv4 (~> 1.0)
|
|
275
|
-
aws-sdk-kms (1.11.0)
|
|
276
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
277
|
-
aws-sigv4 (~> 1.0)
|
|
278
|
-
aws-sdk-lambda (1.13.0)
|
|
279
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
280
|
-
aws-sigv4 (~> 1.0)
|
|
281
|
-
aws-sdk-lambdapreview (1.5.0)
|
|
282
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
283
|
-
aws-sigv4 (~> 1.0)
|
|
284
|
-
aws-sdk-lex (1.8.0)
|
|
285
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
286
|
-
aws-sigv4 (~> 1.0)
|
|
287
|
-
aws-sdk-lexmodelbuildingservice (1.11.0)
|
|
288
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
289
|
-
aws-sigv4 (~> 1.0)
|
|
290
|
-
aws-sdk-lightsail (1.10.0)
|
|
291
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
292
|
-
aws-sigv4 (~> 1.0)
|
|
293
|
-
aws-sdk-machinelearning (1.5.0)
|
|
294
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
295
|
-
aws-sigv4 (~> 1.0)
|
|
296
|
-
aws-sdk-macie (1.5.0)
|
|
297
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
298
|
-
aws-sigv4 (~> 1.0)
|
|
299
|
-
aws-sdk-marketplacecommerceanalytics (1.5.0)
|
|
300
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
301
|
-
aws-sigv4 (~> 1.0)
|
|
302
|
-
aws-sdk-marketplaceentitlementservice (1.5.0)
|
|
303
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
304
|
-
aws-sigv4 (~> 1.0)
|
|
305
|
-
aws-sdk-marketplacemetering (1.5.0)
|
|
306
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
307
|
-
aws-sigv4 (~> 1.0)
|
|
308
|
-
aws-sdk-mediaconvert (1.16.0)
|
|
309
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
310
|
-
aws-sigv4 (~> 1.0)
|
|
311
|
-
aws-sdk-medialive (1.15.0)
|
|
312
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
313
|
-
aws-sigv4 (~> 1.0)
|
|
314
|
-
aws-sdk-mediapackage (1.9.0)
|
|
315
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
316
|
-
aws-sigv4 (~> 1.0)
|
|
317
|
-
aws-sdk-mediastore (1.6.0)
|
|
318
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
319
|
-
aws-sigv4 (~> 1.0)
|
|
320
|
-
aws-sdk-mediastoredata (1.7.0)
|
|
321
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
322
|
-
aws-sigv4 (~> 1.0)
|
|
323
|
-
aws-sdk-mediatailor (1.6.0)
|
|
324
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
325
|
-
aws-sigv4 (~> 1.0)
|
|
326
|
-
aws-sdk-migrationhub (1.7.0)
|
|
327
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
328
|
-
aws-sigv4 (~> 1.0)
|
|
329
|
-
aws-sdk-mobile (1.5.0)
|
|
330
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
331
|
-
aws-sigv4 (~> 1.0)
|
|
332
|
-
aws-sdk-mq (1.7.0)
|
|
333
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
334
|
-
aws-sigv4 (~> 1.0)
|
|
335
|
-
aws-sdk-mturk (1.8.0)
|
|
336
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
337
|
-
aws-sigv4 (~> 1.0)
|
|
338
|
-
aws-sdk-neptune (1.6.0)
|
|
339
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
340
|
-
aws-sigv4 (~> 1.0)
|
|
341
|
-
aws-sdk-opsworks (1.8.0)
|
|
342
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
343
|
-
aws-sigv4 (~> 1.0)
|
|
344
|
-
aws-sdk-opsworkscm (1.9.0)
|
|
345
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
346
|
-
aws-sigv4 (~> 1.0)
|
|
347
|
-
aws-sdk-organizations (1.15.0)
|
|
348
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
349
|
-
aws-sigv4 (~> 1.0)
|
|
350
|
-
aws-sdk-pi (1.5.0)
|
|
351
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
352
|
-
aws-sigv4 (~> 1.0)
|
|
353
|
-
aws-sdk-pinpoint (1.12.0)
|
|
354
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
355
|
-
aws-sigv4 (~> 1.0)
|
|
356
|
-
aws-sdk-pinpointemail (1.0.0)
|
|
357
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
358
|
-
aws-sigv4 (~> 1.0)
|
|
359
|
-
aws-sdk-polly (1.14.0)
|
|
360
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
361
|
-
aws-sigv4 (~> 1.0)
|
|
362
|
-
aws-sdk-pricing (1.5.0)
|
|
363
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
364
|
-
aws-sigv4 (~> 1.0)
|
|
365
|
-
aws-sdk-rds (1.37.0)
|
|
366
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
367
|
-
aws-sigv4 (~> 1.0)
|
|
368
|
-
aws-sdk-redshift (1.14.0)
|
|
369
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
370
|
-
aws-sigv4 (~> 1.0)
|
|
371
|
-
aws-sdk-rekognition (1.14.0)
|
|
372
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
373
|
-
aws-sigv4 (~> 1.0)
|
|
374
|
-
aws-sdk-resourcegroups (1.7.0)
|
|
375
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
376
|
-
aws-sigv4 (~> 1.0)
|
|
377
|
-
aws-sdk-resourcegroupstaggingapi (1.5.0)
|
|
378
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
379
|
-
aws-sigv4 (~> 1.0)
|
|
380
|
-
aws-sdk-resources (3.27.0)
|
|
381
|
-
aws-sdk-acm (~> 1)
|
|
382
|
-
aws-sdk-acmpca (~> 1)
|
|
383
|
-
aws-sdk-alexaforbusiness (~> 1)
|
|
384
|
-
aws-sdk-apigateway (~> 1)
|
|
385
|
-
aws-sdk-applicationautoscaling (~> 1)
|
|
386
|
-
aws-sdk-applicationdiscoveryservice (~> 1)
|
|
387
|
-
aws-sdk-appstream (~> 1)
|
|
388
|
-
aws-sdk-appsync (~> 1)
|
|
389
|
-
aws-sdk-athena (~> 1)
|
|
390
|
-
aws-sdk-autoscaling (~> 1)
|
|
391
|
-
aws-sdk-autoscalingplans (~> 1)
|
|
392
|
-
aws-sdk-batch (~> 1)
|
|
393
|
-
aws-sdk-budgets (~> 1)
|
|
394
|
-
aws-sdk-chime (~> 1)
|
|
395
|
-
aws-sdk-cloud9 (~> 1)
|
|
396
|
-
aws-sdk-clouddirectory (~> 1)
|
|
397
|
-
aws-sdk-cloudformation (~> 1)
|
|
398
|
-
aws-sdk-cloudfront (~> 1)
|
|
399
|
-
aws-sdk-cloudhsm (~> 1)
|
|
400
|
-
aws-sdk-cloudhsmv2 (~> 1)
|
|
401
|
-
aws-sdk-cloudsearch (~> 1)
|
|
402
|
-
aws-sdk-cloudsearchdomain (~> 1)
|
|
403
|
-
aws-sdk-cloudtrail (~> 1)
|
|
404
|
-
aws-sdk-cloudwatch (~> 1)
|
|
405
|
-
aws-sdk-cloudwatchevents (~> 1)
|
|
406
|
-
aws-sdk-cloudwatchlogs (~> 1)
|
|
407
|
-
aws-sdk-codebuild (~> 1)
|
|
408
|
-
aws-sdk-codecommit (~> 1)
|
|
409
|
-
aws-sdk-codedeploy (~> 1)
|
|
410
|
-
aws-sdk-codepipeline (~> 1)
|
|
411
|
-
aws-sdk-codestar (~> 1)
|
|
412
|
-
aws-sdk-cognitoidentity (~> 1)
|
|
413
|
-
aws-sdk-cognitoidentityprovider (~> 1)
|
|
414
|
-
aws-sdk-cognitosync (~> 1)
|
|
415
|
-
aws-sdk-comprehend (~> 1)
|
|
416
|
-
aws-sdk-configservice (~> 1)
|
|
417
|
-
aws-sdk-connect (~> 1)
|
|
418
|
-
aws-sdk-costandusagereportservice (~> 1)
|
|
419
|
-
aws-sdk-costexplorer (~> 1)
|
|
420
|
-
aws-sdk-databasemigrationservice (~> 1)
|
|
421
|
-
aws-sdk-datapipeline (~> 1)
|
|
422
|
-
aws-sdk-dax (~> 1)
|
|
423
|
-
aws-sdk-devicefarm (~> 1)
|
|
424
|
-
aws-sdk-directconnect (~> 1)
|
|
425
|
-
aws-sdk-directoryservice (~> 1)
|
|
426
|
-
aws-sdk-dlm (~> 1)
|
|
427
|
-
aws-sdk-dynamodb (~> 1)
|
|
428
|
-
aws-sdk-dynamodbstreams (~> 1)
|
|
429
|
-
aws-sdk-ec2 (~> 1)
|
|
430
|
-
aws-sdk-ecr (~> 1)
|
|
431
|
-
aws-sdk-ecs (~> 1)
|
|
432
|
-
aws-sdk-efs (~> 1)
|
|
433
|
-
aws-sdk-eks (~> 1)
|
|
434
|
-
aws-sdk-elasticache (~> 1)
|
|
435
|
-
aws-sdk-elasticbeanstalk (~> 1)
|
|
436
|
-
aws-sdk-elasticloadbalancing (~> 1)
|
|
437
|
-
aws-sdk-elasticloadbalancingv2 (~> 1)
|
|
438
|
-
aws-sdk-elasticsearchservice (~> 1)
|
|
439
|
-
aws-sdk-elastictranscoder (~> 1)
|
|
440
|
-
aws-sdk-emr (~> 1)
|
|
441
|
-
aws-sdk-firehose (~> 1)
|
|
442
|
-
aws-sdk-fms (~> 1)
|
|
443
|
-
aws-sdk-gamelift (~> 1)
|
|
444
|
-
aws-sdk-glacier (~> 1)
|
|
445
|
-
aws-sdk-glue (~> 1)
|
|
446
|
-
aws-sdk-greengrass (~> 1)
|
|
447
|
-
aws-sdk-guardduty (~> 1)
|
|
448
|
-
aws-sdk-health (~> 1)
|
|
449
|
-
aws-sdk-iam (~> 1)
|
|
450
|
-
aws-sdk-importexport (~> 1)
|
|
451
|
-
aws-sdk-inspector (~> 1)
|
|
452
|
-
aws-sdk-iot (~> 1)
|
|
453
|
-
aws-sdk-iot1clickdevicesservice (~> 1)
|
|
454
|
-
aws-sdk-iot1clickprojects (~> 1)
|
|
455
|
-
aws-sdk-iotanalytics (~> 1)
|
|
456
|
-
aws-sdk-iotdataplane (~> 1)
|
|
457
|
-
aws-sdk-iotjobsdataplane (~> 1)
|
|
458
|
-
aws-sdk-kinesis (~> 1)
|
|
459
|
-
aws-sdk-kinesisanalytics (~> 1)
|
|
460
|
-
aws-sdk-kinesisvideo (~> 1)
|
|
461
|
-
aws-sdk-kinesisvideoarchivedmedia (~> 1)
|
|
462
|
-
aws-sdk-kinesisvideomedia (~> 1)
|
|
463
|
-
aws-sdk-kms (~> 1)
|
|
464
|
-
aws-sdk-lambda (~> 1)
|
|
465
|
-
aws-sdk-lambdapreview (~> 1)
|
|
466
|
-
aws-sdk-lex (~> 1)
|
|
467
|
-
aws-sdk-lexmodelbuildingservice (~> 1)
|
|
468
|
-
aws-sdk-lightsail (~> 1)
|
|
469
|
-
aws-sdk-machinelearning (~> 1)
|
|
470
|
-
aws-sdk-macie (~> 1)
|
|
471
|
-
aws-sdk-marketplacecommerceanalytics (~> 1)
|
|
472
|
-
aws-sdk-marketplaceentitlementservice (~> 1)
|
|
473
|
-
aws-sdk-marketplacemetering (~> 1)
|
|
474
|
-
aws-sdk-mediaconvert (~> 1)
|
|
475
|
-
aws-sdk-medialive (~> 1)
|
|
476
|
-
aws-sdk-mediapackage (~> 1)
|
|
477
|
-
aws-sdk-mediastore (~> 1)
|
|
478
|
-
aws-sdk-mediastoredata (~> 1)
|
|
479
|
-
aws-sdk-mediatailor (~> 1)
|
|
480
|
-
aws-sdk-migrationhub (~> 1)
|
|
481
|
-
aws-sdk-mobile (~> 1)
|
|
482
|
-
aws-sdk-mq (~> 1)
|
|
483
|
-
aws-sdk-mturk (~> 1)
|
|
484
|
-
aws-sdk-neptune (~> 1)
|
|
485
|
-
aws-sdk-opsworks (~> 1)
|
|
486
|
-
aws-sdk-opsworkscm (~> 1)
|
|
487
|
-
aws-sdk-organizations (~> 1)
|
|
488
|
-
aws-sdk-pi (~> 1)
|
|
489
|
-
aws-sdk-pinpoint (~> 1)
|
|
490
|
-
aws-sdk-pinpointemail (~> 1)
|
|
491
|
-
aws-sdk-polly (~> 1)
|
|
492
|
-
aws-sdk-pricing (~> 1)
|
|
493
|
-
aws-sdk-rds (~> 1)
|
|
494
|
-
aws-sdk-redshift (~> 1)
|
|
495
|
-
aws-sdk-rekognition (~> 1)
|
|
496
|
-
aws-sdk-resourcegroups (~> 1)
|
|
497
|
-
aws-sdk-resourcegroupstaggingapi (~> 1)
|
|
498
|
-
aws-sdk-route53 (~> 1)
|
|
499
|
-
aws-sdk-route53domains (~> 1)
|
|
500
|
-
aws-sdk-s3 (~> 1)
|
|
501
|
-
aws-sdk-sagemaker (~> 1)
|
|
502
|
-
aws-sdk-sagemakerruntime (~> 1)
|
|
503
|
-
aws-sdk-secretsmanager (~> 1)
|
|
504
|
-
aws-sdk-serverlessapplicationrepository (~> 1)
|
|
505
|
-
aws-sdk-servicecatalog (~> 1)
|
|
506
|
-
aws-sdk-servicediscovery (~> 1)
|
|
507
|
-
aws-sdk-ses (~> 1)
|
|
508
|
-
aws-sdk-shield (~> 1)
|
|
509
|
-
aws-sdk-signer (~> 1)
|
|
510
|
-
aws-sdk-simpledb (~> 1)
|
|
511
|
-
aws-sdk-sms (~> 1)
|
|
512
|
-
aws-sdk-snowball (~> 1)
|
|
513
|
-
aws-sdk-sns (~> 1)
|
|
514
|
-
aws-sdk-sqs (~> 1)
|
|
515
|
-
aws-sdk-ssm (~> 1)
|
|
516
|
-
aws-sdk-states (~> 1)
|
|
517
|
-
aws-sdk-storagegateway (~> 1)
|
|
518
|
-
aws-sdk-support (~> 1)
|
|
519
|
-
aws-sdk-swf (~> 1)
|
|
520
|
-
aws-sdk-transcribeservice (~> 1)
|
|
521
|
-
aws-sdk-translate (~> 1)
|
|
522
|
-
aws-sdk-waf (~> 1)
|
|
523
|
-
aws-sdk-wafregional (~> 1)
|
|
524
|
-
aws-sdk-workdocs (~> 1)
|
|
525
|
-
aws-sdk-workmail (~> 1)
|
|
526
|
-
aws-sdk-workspaces (~> 1)
|
|
527
|
-
aws-sdk-xray (~> 1)
|
|
528
|
-
aws-sdk-route53 (1.15.0)
|
|
529
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
530
|
-
aws-sigv4 (~> 1.0)
|
|
531
|
-
aws-sdk-route53domains (1.7.0)
|
|
532
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
533
|
-
aws-sigv4 (~> 1.0)
|
|
534
|
-
aws-sdk-s3 (1.23.1)
|
|
535
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
536
|
-
aws-sdk-kms (~> 1)
|
|
537
|
-
aws-sigv4 (~> 1.0)
|
|
538
|
-
aws-sdk-sagemaker (1.22.0)
|
|
539
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
540
|
-
aws-sigv4 (~> 1.0)
|
|
541
|
-
aws-sdk-sagemakerruntime (1.6.0)
|
|
542
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
543
|
-
aws-sigv4 (~> 1.0)
|
|
544
|
-
aws-sdk-secretsmanager (1.19.0)
|
|
545
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
546
|
-
aws-sigv4 (~> 1.0)
|
|
547
|
-
aws-sdk-serverlessapplicationrepository (1.9.0)
|
|
548
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
549
|
-
aws-sigv4 (~> 1.0)
|
|
550
|
-
aws-sdk-servicecatalog (1.12.0)
|
|
551
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
552
|
-
aws-sigv4 (~> 1.0)
|
|
553
|
-
aws-sdk-servicediscovery (1.7.0)
|
|
554
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
555
|
-
aws-sigv4 (~> 1.0)
|
|
556
|
-
aws-sdk-ses (1.13.0)
|
|
557
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
558
|
-
aws-sigv4 (~> 1.0)
|
|
559
|
-
aws-sdk-shield (1.8.0)
|
|
560
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
561
|
-
aws-sigv4 (~> 1.0)
|
|
562
|
-
aws-sdk-signer (1.4.0)
|
|
563
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
564
|
-
aws-sigv4 (~> 1.0)
|
|
565
|
-
aws-sdk-simpledb (1.5.0)
|
|
566
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
567
|
-
aws-sigv2 (~> 1.0)
|
|
568
|
-
aws-sdk-sms (1.5.0)
|
|
569
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
570
|
-
aws-sigv4 (~> 1.0)
|
|
571
|
-
aws-sdk-snowball (1.9.0)
|
|
572
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
573
|
-
aws-sigv4 (~> 1.0)
|
|
574
|
-
aws-sdk-sns (1.7.0)
|
|
575
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
576
|
-
aws-sigv4 (~> 1.0)
|
|
577
|
-
aws-sdk-sqs (1.9.0)
|
|
578
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
579
|
-
aws-sigv4 (~> 1.0)
|
|
580
|
-
aws-sdk-ssm (1.32.0)
|
|
581
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
582
|
-
aws-sigv4 (~> 1.0)
|
|
583
|
-
aws-sdk-states (1.7.0)
|
|
584
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
585
|
-
aws-sigv4 (~> 1.0)
|
|
586
|
-
aws-sdk-storagegateway (1.12.0)
|
|
587
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
588
|
-
aws-sigv4 (~> 1.0)
|
|
589
|
-
aws-sdk-support (1.5.0)
|
|
590
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
591
|
-
aws-sigv4 (~> 1.0)
|
|
592
|
-
aws-sdk-swf (1.5.0)
|
|
593
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
594
|
-
aws-sigv4 (~> 1.0)
|
|
595
|
-
aws-sdk-transcribeservice (1.10.0)
|
|
596
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
597
|
-
aws-sigv4 (~> 1.0)
|
|
598
|
-
aws-sdk-translate (1.6.0)
|
|
599
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
600
|
-
aws-sigv4 (~> 1.0)
|
|
601
|
-
aws-sdk-waf (1.10.0)
|
|
602
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
603
|
-
aws-sigv4 (~> 1.0)
|
|
604
|
-
aws-sdk-wafregional (1.11.0)
|
|
605
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
606
|
-
aws-sigv4 (~> 1.0)
|
|
607
|
-
aws-sdk-workdocs (1.6.0)
|
|
608
|
-
aws-sdk-core (~> 3, >= 3.26.0)
|
|
35
|
+
aws-sdk-ec2 (1.59.0)
|
|
36
|
+
aws-sdk-core (~> 3, >= 3.39.0)
|
|
609
37
|
aws-sigv4 (~> 1.0)
|
|
610
|
-
aws-sdk-
|
|
611
|
-
aws-sdk-core (~> 3, >= 3.
|
|
38
|
+
aws-sdk-eks (1.8.0)
|
|
39
|
+
aws-sdk-core (~> 3, >= 3.39.0)
|
|
612
40
|
aws-sigv4 (~> 1.0)
|
|
613
|
-
aws-sdk-
|
|
614
|
-
aws-sdk-core (~> 3, >= 3.
|
|
41
|
+
aws-sdk-iam (1.12.0)
|
|
42
|
+
aws-sdk-core (~> 3, >= 3.39.0)
|
|
615
43
|
aws-sigv4 (~> 1.0)
|
|
616
|
-
aws-sdk-
|
|
617
|
-
aws-sdk-core (~> 3, >= 3.
|
|
44
|
+
aws-sdk-route53 (1.16.0)
|
|
45
|
+
aws-sdk-core (~> 3, >= 3.39.0)
|
|
618
46
|
aws-sigv4 (~> 1.0)
|
|
619
|
-
aws-sigv2 (1.0.1)
|
|
620
47
|
aws-sigv4 (1.0.3)
|
|
621
48
|
concurrent-ruby (1.1.3)
|
|
622
49
|
domain_name (0.5.20180417)
|
|
@@ -630,6 +57,9 @@ GEM
|
|
|
630
57
|
domain_name (~> 0.5)
|
|
631
58
|
http-form_data (2.1.1)
|
|
632
59
|
http_parser.rb (0.6.0)
|
|
60
|
+
httparty (0.16.3)
|
|
61
|
+
mime-types (~> 3.0)
|
|
62
|
+
multi_xml (>= 0.5.2)
|
|
633
63
|
i18n (1.1.1)
|
|
634
64
|
concurrent-ruby (~> 1.0)
|
|
635
65
|
jmespath (1.4.0)
|
|
@@ -641,6 +71,7 @@ GEM
|
|
|
641
71
|
mime-types-data (~> 3.2015)
|
|
642
72
|
mime-types-data (3.2018.0812)
|
|
643
73
|
minitest (5.11.3)
|
|
74
|
+
multi_xml (0.6.0)
|
|
644
75
|
netrc (0.11.0)
|
|
645
76
|
public_suffix (3.0.3)
|
|
646
77
|
recursive-open-struct (1.1.0)
|
|
@@ -663,4 +94,4 @@ DEPENDENCIES
|
|
|
663
94
|
eks_cli!
|
|
664
95
|
|
|
665
96
|
BUNDLED WITH
|
|
666
|
-
1.
|
|
97
|
+
1.17.1
|
data/README.md
CHANGED
|
@@ -6,15 +6,17 @@ EKS cluster bootstrap with batteries included
|
|
|
6
6
|
|
|
7
7
|
* Supports creation of multiple node groups of different types with communication enabled between them
|
|
8
8
|
* Taint and label your nodegroups
|
|
9
|
+
* Authorize IAM users for cluster access
|
|
9
10
|
* Manage IAM policies that will be attached to your nodes
|
|
10
11
|
* Easily configure docker repository secrets to allow pulling private images
|
|
11
12
|
* Manage Route53 DNS records to point at your Kubernetes services
|
|
13
|
+
* Export nodegroups to SporInst Elastigroups
|
|
12
14
|
* Even more...
|
|
13
15
|
|
|
14
16
|
## Usage
|
|
15
17
|
|
|
16
18
|
```
|
|
17
|
-
$ gem install eks_cli -v 0.1.
|
|
19
|
+
$ gem install eks_cli -v 0.1.6
|
|
18
20
|
$ eks create us-west-2 --cluster-name=My-EKS-Cluster
|
|
19
21
|
$ eks create-nodegroup --cluster-name My-EKS-Cluster --group-name nodes --ssh-key-name my-ssh-key --min 1 --max 3
|
|
20
22
|
$ eks create-nodegroup --cluster-name My-EKS-Cluster --group-name other-nodes --ssh-key-name my-ssh-key --min 3 --max 3 --instance-type m5.2xlarge
|
|
@@ -31,6 +33,12 @@ You can type `eks` in your shell to get the full synopsis of available commands
|
|
|
31
33
|
|
|
32
34
|
## Extra Stuff
|
|
33
35
|
|
|
36
|
+
### Authorize an IAM user to access the cluster
|
|
37
|
+
|
|
38
|
+
`$ eks add-iam-user arn:aws:iam::XXXXXXXX:user/XXXXXXXX --cluster-name=My-EKS-Cluster --yes`
|
|
39
|
+
|
|
40
|
+
Edits `aws-auth` configmap and updates it on EKS
|
|
41
|
+
|
|
34
42
|
### Setting IAM policies to be attached to EKS nodes
|
|
35
43
|
|
|
36
44
|
`$ eks set-iam-policies --cluster-name=My-EKS-Cluster --policies=AmazonS3FullAccess AmazonDynamoDBFullAccess`
|
|
@@ -41,7 +49,7 @@ Makes sure all nodegroup instances are attached with the above policies once cre
|
|
|
41
49
|
|
|
42
50
|
`$ eks update-dns my-cool-service.my-company.com cool-service --route53-hosted-zone-id=XXXXX --elb-hosted-zone-id=XXXXXX --cluster-name=My-EKS-Cluster`
|
|
43
51
|
|
|
44
|
-
Takes the ELB endpoint from `cool-service` and puts it as an alias record of `my-cool-service.my-company.com`
|
|
52
|
+
Takes the ELB endpoint from `cool-service` and puts it as an alias record of `my-cool-service.my-company.com` on Route53
|
|
45
53
|
|
|
46
54
|
### Enabling GPU
|
|
47
55
|
|
|
@@ -66,7 +74,7 @@ Adds your dockerhub credentials as a secret and attaches it to the default servi
|
|
|
66
74
|
|
|
67
75
|
Creates a standard gp2 default storage class named gp2
|
|
68
76
|
|
|
69
|
-
### Installing DNS
|
|
77
|
+
### Installing DNS autoscaler
|
|
70
78
|
|
|
71
79
|
`$ eks create-dns-autoscaler --cluster-name My-EKS-Cluster`
|
|
72
80
|
|
|
@@ -82,6 +90,15 @@ Assuming you have some shared resources on another VPC (an RDS instance for exam
|
|
|
82
90
|
2. Setting route tables on both directions to allow communication
|
|
83
91
|
3. Adding an ingress role to SG_ID to accept all communication from your new cluster nodes.
|
|
84
92
|
|
|
93
|
+
### Exporting nodegroups to Spotinst
|
|
94
|
+
|
|
95
|
+
`$ eks export-nodegroup --group-name=other-nodes`
|
|
96
|
+
|
|
97
|
+
Exports the corresponding Auto Scaling Group to a Spotinst Elastigroup
|
|
98
|
+
|
|
99
|
+
Requires the following environment variables to be set:
|
|
100
|
+
* SPOTINST_ACCOUNT_ID
|
|
101
|
+
* SPOTINST_API_TOKEN
|
|
85
102
|
|
|
86
103
|
## Contributing
|
|
87
104
|
|
data/eks_cli.gemspec
CHANGED
data/lib/eks_cli/cli.rb
CHANGED
|
@@ -46,9 +46,11 @@ module EksCli
|
|
|
46
46
|
create_cluster_vpc
|
|
47
47
|
create_eks_cluster
|
|
48
48
|
create_cluster_security_group
|
|
49
|
+
wait_for_cluster
|
|
49
50
|
enable_gpu if options[:enable_gpu]
|
|
50
51
|
create_default_storage_class if options[:create_default_storage_class]
|
|
51
52
|
create_dns_autoscaler if options[:create_dns_autoscaler]
|
|
53
|
+
say "cluster creation completed"
|
|
52
54
|
end
|
|
53
55
|
|
|
54
56
|
desc "create-eks-role", "creates an IAM role for usage by EKS"
|
|
@@ -168,6 +170,27 @@ module EksCli
|
|
|
168
170
|
K8s::Client.new(cluster_name).create_dns_autoscaler
|
|
169
171
|
end
|
|
170
172
|
|
|
173
|
+
desc "wait-for-cluster", "waits until cluster responds to HTTP requests"
|
|
174
|
+
def wait_for_cluster
|
|
175
|
+
K8s::Client.new(cluster_name).wait_for_cluster
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
desc "export-nodegroup", "exports nodegroup auto scaling group to spotinst"
|
|
179
|
+
option :all, type: :boolean, default: false, desc: "create all nodegroups. must be used in conjunction with --yes"
|
|
180
|
+
option :group_name, type: :string, desc: "create a specific nodegroup. can't be used with --all"
|
|
181
|
+
def export_nodegroup
|
|
182
|
+
nodegroups.each {|ng| ng.export_to_spotinst }
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
desc "add-iam-user IAM_ARN", "adds an IAM user as an authorized member on the EKS cluster"
|
|
186
|
+
option :username, default: "admin", desc: "the username on the k8s cluster"
|
|
187
|
+
option :groups, type: :array, default: ["system:masters"], desc: "which group should the user be added to"
|
|
188
|
+
option :yes, type: :boolean, default: false, desc: "update aws-auth configmap"
|
|
189
|
+
def add_iam_user(iam_arn)
|
|
190
|
+
Config[cluster_name].add_user(iam_arn, options[:username], options[:groups])
|
|
191
|
+
K8s::Auth.new(cluster_name).update if options[:yes]
|
|
192
|
+
end
|
|
193
|
+
|
|
171
194
|
disable_required_check! :version
|
|
172
195
|
desc "version", "prints eks_cli version"
|
|
173
196
|
def version
|
data/lib/eks_cli/config.rb
CHANGED
|
@@ -36,12 +36,12 @@ module EksCli
|
|
|
36
36
|
end
|
|
37
37
|
|
|
38
38
|
def write(attrs, to = :state)
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
path = resolve_config_file(to)
|
|
40
|
+
current = read(path) rescue {}
|
|
41
|
+
Log.info "updating configuration file #{path}:\n#{attrs}"
|
|
41
42
|
attrs = attrs.inject({}) {|h,(k,v)| h[k.to_s] = v; h}
|
|
42
|
-
current = read(to_path) rescue {}
|
|
43
43
|
updated = current.deep_merge(attrs)
|
|
44
|
-
write_to_file(updated,
|
|
44
|
+
write_to_file(updated, path)
|
|
45
45
|
end
|
|
46
46
|
|
|
47
47
|
def bootstrap(attrs)
|
|
@@ -60,6 +60,10 @@ module EksCli
|
|
|
60
60
|
raise "bad nodegroup name #{options["group_name"]}" if options["group_name"] == nil || options["group_name"].empty?
|
|
61
61
|
write({groups: { options["group_name"] => options }}, :groups)
|
|
62
62
|
end
|
|
63
|
+
|
|
64
|
+
def add_user(arn, username, groups)
|
|
65
|
+
write({"users" => {arn => {"username" => username, "groups" => groups}}})
|
|
66
|
+
end
|
|
63
67
|
|
|
64
68
|
private
|
|
65
69
|
|
data/lib/eks_cli/k8s/auth.rb
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
require 'k8s/configmap_builder'
|
|
2
2
|
require 'k8s/client'
|
|
3
|
+
require 'config'
|
|
3
4
|
require 'cloudformation/client'
|
|
4
5
|
require 'cloudformation/stack'
|
|
5
6
|
require 'log'
|
|
@@ -34,7 +35,7 @@ module EksCli
|
|
|
34
35
|
CloudFormation::Client.get(@cluster_name)
|
|
35
36
|
end
|
|
36
37
|
|
|
37
|
-
def
|
|
38
|
+
def node_arns
|
|
38
39
|
client
|
|
39
40
|
.list_stacks(stack_status_filter: ["CREATE_COMPLETE"])
|
|
40
41
|
.stack_summaries
|
|
@@ -44,8 +45,12 @@ module EksCli
|
|
|
44
45
|
.map {|stack| stack.node_instance_role_arn}
|
|
45
46
|
end
|
|
46
47
|
|
|
48
|
+
def users
|
|
49
|
+
Config[@cluster_name]["users"]
|
|
50
|
+
end
|
|
51
|
+
|
|
47
52
|
def configmap
|
|
48
|
-
ConfigmapBuilder.build(
|
|
53
|
+
ConfigmapBuilder.build(node_arns, users)
|
|
49
54
|
end
|
|
50
55
|
|
|
51
56
|
end
|
data/lib/eks_cli/k8s/client.rb
CHANGED
|
@@ -6,6 +6,7 @@ require_relative '../config'
|
|
|
6
6
|
module EksCli
|
|
7
7
|
module K8s
|
|
8
8
|
class Client
|
|
9
|
+
TIMEOUTS = {open: 10, read: 20}
|
|
9
10
|
|
|
10
11
|
def initialize(cluster_name)
|
|
11
12
|
@cluster_name = cluster_name
|
|
@@ -16,6 +17,7 @@ module EksCli
|
|
|
16
17
|
end
|
|
17
18
|
|
|
18
19
|
def enable_gpu
|
|
20
|
+
Log.info "installing nvidia device plugin daemon set (GPU support)"
|
|
19
21
|
self.create_daemon_set(resource_from_yaml("nvidia_device_plugin.yaml"))
|
|
20
22
|
end
|
|
21
23
|
|
|
@@ -39,6 +41,22 @@ module EksCli
|
|
|
39
41
|
Log.info self.create_deployment(resource_from_yaml("dns_autoscaler.dep.yaml"))
|
|
40
42
|
end
|
|
41
43
|
|
|
44
|
+
def wait_for_cluster
|
|
45
|
+
Log.info "waiting for cluster #{@cluster_name} to respond"
|
|
46
|
+
ready = false
|
|
47
|
+
while !ready
|
|
48
|
+
begin
|
|
49
|
+
res = self.get_services
|
|
50
|
+
if res.count > 0
|
|
51
|
+
Log.info "#{@cluster_name} is up and running!"
|
|
52
|
+
ready = true
|
|
53
|
+
end
|
|
54
|
+
rescue Kubeclient::HttpError
|
|
55
|
+
Log.info "couldn't connect to server, retrying..."
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
42
60
|
private
|
|
43
61
|
|
|
44
62
|
def resource_from_yaml(filename)
|
|
@@ -75,7 +93,8 @@ module EksCli
|
|
|
75
93
|
[context.api_endpoint, suffix].join,
|
|
76
94
|
context.api_version,
|
|
77
95
|
ssl_options: context.ssl_options,
|
|
78
|
-
auth_options: {bearer_token: token}
|
|
96
|
+
auth_options: {bearer_token: token},
|
|
97
|
+
timeouts: TIMEOUTS)
|
|
79
98
|
end
|
|
80
99
|
|
|
81
100
|
def config
|
|
@@ -94,7 +113,6 @@ module EksCli
|
|
|
94
113
|
kube_config.context(config["cluster_arn"])
|
|
95
114
|
end
|
|
96
115
|
|
|
97
|
-
|
|
98
116
|
end
|
|
99
117
|
end
|
|
100
118
|
end
|
|
@@ -5,25 +5,43 @@ module EksCli
|
|
|
5
5
|
module K8s
|
|
6
6
|
class ConfigmapBuilder
|
|
7
7
|
class << self
|
|
8
|
-
def build(
|
|
8
|
+
def build(node_arns, users)
|
|
9
9
|
cm = Kubeclient::Resource.new
|
|
10
10
|
cm.metadata={}
|
|
11
11
|
cm.metadata.name = "aws-auth"
|
|
12
12
|
cm.metadata.namespace = "kube-system"
|
|
13
13
|
cm.data = {}
|
|
14
|
-
cm.data.mapRoles = map_roles(
|
|
14
|
+
cm.data.mapRoles = map_roles(node_arns)
|
|
15
|
+
cm.data.mapUsers = map_users(users)
|
|
15
16
|
cm
|
|
16
17
|
end
|
|
17
18
|
|
|
18
|
-
def map_roles(
|
|
19
|
-
|
|
19
|
+
def map_roles(node_arns)
|
|
20
|
+
node_arns.map {|a| map_role(a)}.to_yaml.sub("---\n","")
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def map_users(users)
|
|
24
|
+
users.map {|arn, attrs| to_user_obj(arn, attrs["username"], attrs["groups"]) }.to_yaml.sub("---\n","")
|
|
20
25
|
end
|
|
21
26
|
|
|
22
27
|
def map_role(stack_arn)
|
|
23
|
-
{"
|
|
24
|
-
"username" => "system:node:{{EC2PrivateDNSName}}",
|
|
25
|
-
"groups" => ["system:bootstrappers", "system:nodes"]}
|
|
28
|
+
to_role_obj(stack_arn, "system:node:{{EC2PrivateDNSName}}", ["system:bootstrappers", "system:nodes"])
|
|
26
29
|
end
|
|
30
|
+
|
|
31
|
+
def to_auth_obj(type, arn, username, groups)
|
|
32
|
+
{"#{type}arn" => arn,
|
|
33
|
+
"username" => username,
|
|
34
|
+
"groups" => groups}
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def to_role_obj(arn, username, groups)
|
|
38
|
+
to_auth_obj("role", arn ,username, groups)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def to_user_obj(arn, username, groups)
|
|
42
|
+
to_auth_obj("user", arn ,username, groups)
|
|
43
|
+
end
|
|
44
|
+
|
|
27
45
|
end
|
|
28
46
|
end
|
|
29
47
|
end
|
data/lib/eks_cli/nodegroup.rb
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
require 'active_support/core_ext/hash'
|
|
2
2
|
require 'config'
|
|
3
|
+
require 'spotinst/client'
|
|
3
4
|
require 'cloudformation/stack'
|
|
4
5
|
require 'iam/client'
|
|
5
6
|
require 'k8s/auth'
|
|
@@ -26,6 +27,7 @@ module EksCli
|
|
|
26
27
|
|
|
27
28
|
def initialize(cluster_name, name)
|
|
28
29
|
@cluster_name = cluster_name
|
|
30
|
+
@name = name
|
|
29
31
|
@group = Config[cluster_name].for_group(name)
|
|
30
32
|
end
|
|
31
33
|
|
|
@@ -53,6 +55,19 @@ module EksCli
|
|
|
53
55
|
cf_stack.delete
|
|
54
56
|
end
|
|
55
57
|
|
|
58
|
+
def asg
|
|
59
|
+
cf_stack.resource("NodeGroup")
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def instance_type
|
|
63
|
+
@group["instance_type"]
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def export_to_spotinst
|
|
67
|
+
Log.info "exporting nodegroup #{@name} to spotinst"
|
|
68
|
+
Log.info Spotinst::Client.new.import_asg(Config[@cluster_name]["region"], asg, [instance_type])
|
|
69
|
+
end
|
|
70
|
+
|
|
56
71
|
private
|
|
57
72
|
|
|
58
73
|
def cf_template_body
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
require 'httparty'
|
|
2
|
+
module EksCli
|
|
3
|
+
module Spotinst
|
|
4
|
+
class Client
|
|
5
|
+
include HTTParty
|
|
6
|
+
|
|
7
|
+
base_uri "https://api.spotinst.io"
|
|
8
|
+
|
|
9
|
+
def initialize(account_id: nil, api_token: nil)
|
|
10
|
+
@account_id = account_id || ENV['SPOTINST_ACCOUNT_ID']
|
|
11
|
+
@api_token = api_token || ENV['SPOTINST_API_TOKEN']
|
|
12
|
+
if @account_id == nil
|
|
13
|
+
raise "please set SPOTINST_ACCOUNT_ID environment variable"
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
if @api_token == nil
|
|
17
|
+
raise "please set SPOTINST_API_TOKEN environment variable"
|
|
18
|
+
end
|
|
19
|
+
self.class.headers({"Authorization" => "Bearer #{@api_token}",
|
|
20
|
+
"Content-Type" => "application/json"})
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def import_asg(region, asg_name, instance_types)
|
|
24
|
+
self.class.post("/aws/ec2/group/autoScalingGroup/import?region=#{region}&accountId=#{@account_id}&autoScalingGroupName=#{asg_name}",
|
|
25
|
+
body: {group: {spotInstanceTypes: instance_types} }.to_json)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def list_groups
|
|
29
|
+
self.class.get("/aws/ec2/group?accountId=#{@account_id}")
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
data/lib/eks_cli/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: eks_cli
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.6
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Erez Rabih
|
|
@@ -122,6 +122,20 @@ dependencies:
|
|
|
122
122
|
- - ">="
|
|
123
123
|
- !ruby/object:Gem::Version
|
|
124
124
|
version: '0'
|
|
125
|
+
- !ruby/object:Gem::Dependency
|
|
126
|
+
name: httparty
|
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
|
128
|
+
requirements:
|
|
129
|
+
- - ">="
|
|
130
|
+
- !ruby/object:Gem::Version
|
|
131
|
+
version: '0'
|
|
132
|
+
type: :runtime
|
|
133
|
+
prerelease: false
|
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
135
|
+
requirements:
|
|
136
|
+
- - ">="
|
|
137
|
+
- !ruby/object:Gem::Version
|
|
138
|
+
version: '0'
|
|
125
139
|
description: A utility to manage and create EKS (Kubernetes) cluster on Amazon Web
|
|
126
140
|
Services
|
|
127
141
|
email: erez.rabih@gmail.com
|
|
@@ -156,6 +170,7 @@ files:
|
|
|
156
170
|
- lib/eks_cli/log.rb
|
|
157
171
|
- lib/eks_cli/nodegroup.rb
|
|
158
172
|
- lib/eks_cli/route53/client.rb
|
|
173
|
+
- lib/eks_cli/spotinst/client.rb
|
|
159
174
|
- lib/eks_cli/version.rb
|
|
160
175
|
- lib/eks_cli/vpc/client.rb
|
|
161
176
|
homepage: https://github.com/nanit/eks_cli
|