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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 13604399317ad223e406ab42975a58de062eba61d6f5f2f073c545818c89b625
4
- data.tar.gz: 237117a49388e1d2dde8044a8935e5a2dd56ae9c92769930919df1d1750fa01f
3
+ metadata.gz: e102cb3931260341e379116c618a7ea87a9965923ea1799c054081362fe3d69a
4
+ data.tar.gz: 7bc35061ea5dd401e599c5deb1ecedf57c6de8b36898a79d0ab74127ab5e2d45
5
5
  SHA512:
6
- metadata.gz: 25568fb30b957afd895a46666fc1e7b6f6a83c119b5294031f7505a933d81c4fbf112a805de02ca0d66c490c483b585f7253316da942cba22b37c8d8c7c18253
7
- data.tar.gz: d982788e52ef2485652940c5506a6ba654d77f33bbcd331a3149cb37858f0a7c58493a0582590768b60a85cb2e1a0d50760e49371e65c77b2223d882b622db50
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 use 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.
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
@@ -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'
@@ -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
@@ -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.map {|s| s[:metadata][:name]}.each do |s|
61
- Log.info "deleting service #{s}"
62
- k8s_client.delete_service(s, "default")
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
@@ -1,3 +1,3 @@
1
1
  module EksCli
2
- VERSION = "0.4.5"
2
+ VERSION = "0.4.7"
3
3
  end
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.5
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