class EksCli::EKS::Cluster
Public Class Methods
new(cluster_name)
click to toggle source
# File lib/eks_cli/eks/cluster.rb, line 12 def initialize(cluster_name) @cluster_name = cluster_name end
Public Instance Methods
config()
click to toggle source
# File lib/eks_cli/eks/cluster.rb, line 31 def config; Config[@cluster_name]; end
create()
click to toggle source
# File lib/eks_cli/eks/cluster.rb, line 16 def create Log.info "creating cluster #{@cluster_name}" cf_stack_outputs = CloudFormation::EKS.new(@cluster_name).create config.write(cf_stack_outputs) self end
delete()
click to toggle source
# File lib/eks_cli/eks/cluster.rb, line 23 def delete delete_vpc_peering delete_services delete_nodegroups delete_cf_stack delete_config end
services()
click to toggle source
# File lib/eks_cli/eks/cluster.rb, line 38 def services k8s_client.get_services(namespace: "default").select {|s| s[:spec][:type] == "LoadBalancer"} end
update_kubeconfig()
click to toggle source
# File lib/eks_cli/eks/cluster.rb, line 33 def update_kubeconfig Log.info "updating kubeconfig for cluster #{@cluster_name}" Log.info `aws eks update-kubeconfig --name=#{@cluster_name} --region=#{config["region"]}` end
Private Instance Methods
delete_cf_stack()
click to toggle source
# File lib/eks_cli/eks/cluster.rb, line 48 def delete_cf_stack CloudFormation::EKS.new(@cluster_name).delete end
delete_config()
click to toggle source
# File lib/eks_cli/eks/cluster.rb, line 44 def delete_config config.delete end
delete_nodegroups()
click to toggle source
# File lib/eks_cli/eks/cluster.rb, line 75 def delete_nodegroups nodegroups.keys.each {|n| NodeGroup.new(@cluster_name, n).delete} end
delete_services()
click to toggle source
# File lib/eks_cli/eks/cluster.rb, line 60 def delete_services services.each do |s| name = s[:metadata][:name] elb = s[:status][:loadBalancer][:ingress].first[:hostname].split("-").first Log.info "deleting ELB #{elb}" elb_client.delete_load_balancer(load_balancer_name: elb) Log.info "deleting service #{name}" k8s_client.delete_service(name, "default") end end
delete_vpc_peering()
click to toggle source
# File lib/eks_cli/eks/cluster.rb, line 52 def delete_vpc_peering VPC::Client.new(@cluster_name).delete_vpc_peering_connection end
elb_client()
click to toggle source
# File lib/eks_cli/eks/cluster.rb, line 79 def elb_client @elb_client ||= Aws::ElasticLoadBalancing::Client.new(region: config["region"]) end
k8s_client()
click to toggle source
# File lib/eks_cli/eks/cluster.rb, line 56 def k8s_client @k8s_client ||= EksCli::K8s::Client.new(@cluster_name) end
nodegroups()
click to toggle source
# File lib/eks_cli/eks/cluster.rb, line 71 def nodegroups config["groups"] || {} end