class EksCli::Route53::Client

Public Class Methods

new(cluster_name) click to toggle source
# File lib/eks_cli/route53/client.rb, line 9
def initialize(cluster_name)
  @cluster_name = cluster_name
end

Public Instance Methods

update_dns(hostname, k8s_service_name, k8s_ns, route53_hosted_zone_id, elb_hosted_zone_id) click to toggle source
# File lib/eks_cli/route53/client.rb, line 13
def update_dns(hostname, k8s_service_name, k8s_ns, route53_hosted_zone_id, elb_hosted_zone_id)
  change_dns_target(hostname, k8s.get_elb(k8s_service_name, k8s_ns), route53_hosted_zone_id, elb_hosted_zone_id)
end

Private Instance Methods

change_dns_target(route53_host, elb_host, route53_hosted_zone_id, elb_hosted_zone_id) click to toggle source
# File lib/eks_cli/route53/client.rb, line 23
def change_dns_target(route53_host, elb_host, route53_hosted_zone_id, elb_hosted_zone_id)
  Log.info "Setting Route53 record #{route53_host} --> #{elb_host}"
  resp = client.change_resource_record_sets({
    change_batch: {
      changes: [
        {
          action: "UPSERT", 
          resource_record_set: {
            name: route53_host, 
            type: "A", 
            alias_target: {
              dns_name: elb_host, 
              evaluate_target_health: false, 
              hosted_zone_id: elb_hosted_zone_id, 
            }, 
          }, 
        }, 
      ], 
    }, 
    hosted_zone_id: route53_hosted_zone_id, 
  })
  Log.info "Done: #{resp}"
end
client() click to toggle source
# File lib/eks_cli/route53/client.rb, line 59
def client
  @client ||= Aws::Route53::Client.new(region: config["region"])
end
config() click to toggle source
# File lib/eks_cli/route53/client.rb, line 47
def config
  @config ||= Config[@cluster_name]
end
elb_hosted_zone_id() click to toggle source
# File lib/eks_cli/route53/client.rb, line 51
def elb_hosted_zone_id
  config["elb_hosted_zone_id"]
end
k8s() click to toggle source
# File lib/eks_cli/route53/client.rb, line 19
def k8s
  @k8s ||= K8s::Client.new(@cluster_name)
end
route53_hosted_zone_id() click to toggle source
# File lib/eks_cli/route53/client.rb, line 55
def route53_hosted_zone_id
  config["route53_hosted_zone_id"]
end