eks_cli 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +7 -1
- data/lib/assets/dns_autoscaler.dep.yaml +31 -0
- data/lib/eks_cli/cli.rb +11 -0
- data/lib/eks_cli/k8s/client.rb +5 -0
- data/lib/eks_cli/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 50585476099aa020424c90d5eb6ad32e5d19c29c
|
4
|
+
data.tar.gz: b1ff683504ec2367c90052de3deb26a68f8af015
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a143b01e227eb884cd2bbf27f310773f35b69ce84407c92d6be3ba04d6b2513f133194eb5d29f98edc3f699a1e89ca558da1a0fad02c68a048e55115cdc5924d
|
7
|
+
data.tar.gz: f7d0209784c21b0d19286fc112a7db914ddc4de2bc171db8169e4327e703f1149a5b5fcc8c967c036498166dce84c69b675bc7b12a5ca44cb08b27e3e847219c
|
data/README.md
CHANGED
@@ -14,7 +14,7 @@ EKS cluster bootstrap with batteries included
|
|
14
14
|
## Usage
|
15
15
|
|
16
16
|
```
|
17
|
-
$ gem install eks_cli -v 0.1.
|
17
|
+
$ gem install eks_cli -v 0.1.4
|
18
18
|
$ eks create us-west-2 --cluster-name=My-EKS-Cluster
|
19
19
|
$ eks create-nodegroup --cluster-name My-EKS-Cluster --group-name nodes --ssh-key-name my-ssh-key --min 1 --max 3
|
20
20
|
$ 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
|
@@ -66,6 +66,12 @@ Adds your dockerhub credentials as a secret and attaches it to the default servi
|
|
66
66
|
|
67
67
|
Creates a standard gp2 default storage class named gp2
|
68
68
|
|
69
|
+
### Installing DNS autosclaer
|
70
|
+
|
71
|
+
`$ eks create-dns-autoscaler --cluster-name My-EKS-Cluster`
|
72
|
+
|
73
|
+
Creates kube-dns autoscaler with sane defaults
|
74
|
+
|
69
75
|
### Connecting to an existing VPC
|
70
76
|
|
71
77
|
`$ eks set-inter-vpc-networking VPC_ID SG_ID`
|
@@ -0,0 +1,31 @@
|
|
1
|
+
apiVersion: apps/v1
|
2
|
+
kind: Deployment
|
3
|
+
metadata:
|
4
|
+
name: dns-autoscaler
|
5
|
+
namespace: kube-system
|
6
|
+
labels:
|
7
|
+
k8s-app: dns-autoscaler
|
8
|
+
spec:
|
9
|
+
selector:
|
10
|
+
matchLabels:
|
11
|
+
k8s-app: dns-autoscaler
|
12
|
+
template:
|
13
|
+
metadata:
|
14
|
+
labels:
|
15
|
+
k8s-app: dns-autoscaler
|
16
|
+
spec:
|
17
|
+
containers:
|
18
|
+
- name: autoscaler
|
19
|
+
image: k8s.gcr.io/cluster-proportional-autoscaler-amd64:1.1.1
|
20
|
+
resources:
|
21
|
+
requests:
|
22
|
+
cpu: "20m"
|
23
|
+
memory: "10Mi"
|
24
|
+
command:
|
25
|
+
- /cluster-proportional-autoscaler
|
26
|
+
- --namespace=kube-system
|
27
|
+
- --configmap=dns-autoscaler
|
28
|
+
- --target=Deployment/kube-dns
|
29
|
+
- --default-params={"linear":{"coresPerReplica":64,"nodesPerReplica":4,"min":3}}
|
30
|
+
- --logtostderr=true
|
31
|
+
- --v=2
|
data/lib/eks_cli/cli.rb
CHANGED
@@ -37,12 +37,18 @@ module EksCli
|
|
37
37
|
|
38
38
|
desc "create REGION", "creates a new EKS cluster"
|
39
39
|
option :open_ports, type: :array, default: [], desc: "open ports on cluster nodes (eg 22 for SSH access)"
|
40
|
+
option :enable_gpu, type: :boolean, default: false, desc: "installs nvidia device plugin daemon set"
|
41
|
+
option :create_default_storage_class, type: :boolean, default: true, desc: "creates a default gp2 storage class"
|
42
|
+
option :create_dns_autoscaler, type: :boolean, default: true, desc: "creates dns autoscaler on the cluster"
|
40
43
|
def create(region)
|
41
44
|
Config[cluster_name].bootstrap({region: region})
|
42
45
|
create_eks_role
|
43
46
|
create_cluster_vpc
|
44
47
|
create_eks_cluster
|
45
48
|
create_cluster_security_group
|
49
|
+
enable_gpu if options[:enable_gpu]
|
50
|
+
create_default_storage_class if options[:create_default_storage_class]
|
51
|
+
create_dns_autoscaler if options[:create_dns_autoscaler]
|
46
52
|
end
|
47
53
|
|
48
54
|
desc "create-eks-role", "creates an IAM role for usage by EKS"
|
@@ -157,6 +163,11 @@ module EksCli
|
|
157
163
|
VPC::Client.new(cluster_name).set_inter_vpc_networking(to_vpc_id, to_sg_id)
|
158
164
|
end
|
159
165
|
|
166
|
+
desc "create-dns-autoscaler", "creates kube dns autoscaler"
|
167
|
+
def create_dns_autoscaler
|
168
|
+
K8s::Client.new(cluster_name).create_dns_autoscaler
|
169
|
+
end
|
170
|
+
|
160
171
|
disable_required_check! :version
|
161
172
|
desc "version", "prints eks_cli version"
|
162
173
|
def version
|
data/lib/eks_cli/k8s/client.rb
CHANGED
@@ -34,6 +34,11 @@ module EksCli
|
|
34
34
|
Log.info self.create_storage_class(resource_from_yaml("default_storage_class.yaml"))
|
35
35
|
end
|
36
36
|
|
37
|
+
def create_dns_autoscaler
|
38
|
+
Log.info "creating kube-dns autoscaler"
|
39
|
+
Log.info self.create_deployment(resource_from_yaml("dns_autoscaler.dep.yaml"))
|
40
|
+
end
|
41
|
+
|
37
42
|
private
|
38
43
|
|
39
44
|
def resource_from_yaml(filename)
|
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.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Erez Rabih
|
@@ -137,6 +137,7 @@ files:
|
|
137
137
|
- bin/eks
|
138
138
|
- eks_cli.gemspec
|
139
139
|
- lib/assets/default_storage_class.yaml
|
140
|
+
- lib/assets/dns_autoscaler.dep.yaml
|
140
141
|
- lib/assets/nodegroup_cf_template.yaml
|
141
142
|
- lib/assets/nvidia_device_plugin.yaml
|
142
143
|
- lib/eks_cli.rb
|