eks_cli 0.4.5 → 0.4.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +3 -1
- data/eks_cli.gemspec +1 -0
- data/lib/eks_cli/cli.rb +1 -1
- data/lib/eks_cli/eks/cluster.rb +16 -7
- data/lib/eks_cli/version.rb +1 -1
- metadata +15 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e102cb3931260341e379116c618a7ea87a9965923ea1799c054081362fe3d69a
|
4
|
+
data.tar.gz: 7bc35061ea5dd401e599c5deb1ecedf57c6de8b36898a79d0ab74127ab5e2d45
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8412cb6ff62d5ee0d4c8183494f28b187b40b2bc9b0e1b3e014323cb75c80493444231e0762c3806bb48a95df09d478b7d89a8cd61d2ebf8f4df88996af01dc6
|
7
|
+
data.tar.gz: 1d75c45b84715d072ac32b5973d45f622df4af130a6ab97e0557216b720502a10750dfe956469cf8bda9bae12cd564c8d0d2cfbd60ecaae77ee49da3ef44f5f8
|
data/README.md
CHANGED
@@ -63,13 +63,15 @@ Options:
|
|
63
63
|
|
64
64
|
## Environment variables
|
65
65
|
|
66
|
-
You are encouraged to
|
66
|
+
You are encouraged to export both `EKS_CLI_CLUSTER_NAME` and `EKS_CLI_S3_BUCKET` environment variables instead of using the corresponding flags on each command. It makes the command clearer and reduces the chance for typos.
|
67
67
|
The following selected commands assumes you have exported both environment variables:
|
68
68
|
```bash
|
69
69
|
export EKS_CLI_S3_BUCKET=my-eks-config-bucket
|
70
70
|
export EKS_CLI_CLUSTER_NAME=my-eks-cluster
|
71
71
|
```
|
72
72
|
|
73
|
+
`EKS_CLI_S3_BUCKET` can be safely put in your `~/.bash_profile` and `EKS_CLI_CLUSTER_NAME` may be exported on a cluster basis
|
74
|
+
|
73
75
|
## Selected Commands
|
74
76
|
|
75
77
|
### Creating more than a single nodegroup
|
data/eks_cli.gemspec
CHANGED
@@ -21,6 +21,7 @@ Gem::Specification.new do |s|
|
|
21
21
|
s.executables = ["eks"]
|
22
22
|
s.require_paths = ["lib"]
|
23
23
|
s.add_dependency 'aws-sdk-s3', '~> 1'
|
24
|
+
s.add_dependency 'aws-sdk-elasticloadbalancing', '~> 1'
|
24
25
|
s.add_dependency 'thor', '0.20.3'
|
25
26
|
s.add_dependency 'aws-sdk-ec2', '1.62.0'
|
26
27
|
s.add_dependency 'aws-sdk-cloudformation', '1.13.0'
|
data/lib/eks_cli/cli.rb
CHANGED
@@ -144,7 +144,7 @@ module EksCli
|
|
144
144
|
end
|
145
145
|
end
|
146
146
|
|
147
|
-
desc "delete-cluster", "deletes a cluster, including nodegroups/elastigroups and cloudformation stacks"
|
147
|
+
desc "delete-cluster", "deletes a cluster, including nodegroups/elastigroups, elbs, kubernetes services and cloudformation stacks"
|
148
148
|
def delete_cluster
|
149
149
|
with_context { EKS::Cluster.new(cluster_name).delete }
|
150
150
|
end
|
data/lib/eks_cli/eks/cluster.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'cloudformation/eks'
|
2
2
|
require 'vpc/client'
|
3
|
+
require 'aws-sdk-elasticloadbalancing'
|
3
4
|
require 'config'
|
4
5
|
require 'nodegroup'
|
5
6
|
require 'log'
|
@@ -34,6 +35,10 @@ module EksCli
|
|
34
35
|
Log.info `aws eks update-kubeconfig --name=#{@cluster_name} --region=#{config["region"]}`
|
35
36
|
end
|
36
37
|
|
38
|
+
def services
|
39
|
+
k8s_client.get_services(namespace: "default").select {|s| s[:spec][:type] == "LoadBalancer"}
|
40
|
+
end
|
41
|
+
|
37
42
|
private
|
38
43
|
|
39
44
|
def delete_config
|
@@ -52,14 +57,14 @@ module EksCli
|
|
52
57
|
@k8s_client ||= EksCli::K8s::Client.new(@cluster_name)
|
53
58
|
end
|
54
59
|
|
55
|
-
def services
|
56
|
-
k8s_client.get_services(namespace: "default").select {|s| s[:spec][:type] == "LoadBalancer"}
|
57
|
-
end
|
58
|
-
|
59
60
|
def delete_services
|
60
|
-
services.
|
61
|
-
|
62
|
-
|
61
|
+
services.each do |s|
|
62
|
+
name = s[:metadata][:name]
|
63
|
+
elb = s[:status][:loadBalancer][:ingress].first[:hostname].split("-").first
|
64
|
+
Log.info "deleting ELB #{elb}"
|
65
|
+
elb_client.delete_load_balancer(load_balancer_name: elb)
|
66
|
+
Log.info "deleting service #{name}"
|
67
|
+
k8s_client.delete_service(name, "default")
|
63
68
|
end
|
64
69
|
end
|
65
70
|
|
@@ -71,6 +76,10 @@ module EksCli
|
|
71
76
|
nodegroups.keys.each {|n| NodeGroup.new(@cluster_name, n).delete}
|
72
77
|
end
|
73
78
|
|
79
|
+
def elb_client
|
80
|
+
@elb_client ||= Aws::ElasticLoadBalancing::Client.new(region: config["region"])
|
81
|
+
end
|
82
|
+
|
74
83
|
end
|
75
84
|
end
|
76
85
|
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.4.
|
4
|
+
version: 0.4.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Erez Rabih
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: aws-sdk-elasticloadbalancing
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: thor
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|