class EksCli::K8s::ConfigmapBuilder

Public Class Methods

build(node_arns, users) click to toggle source
# File lib/eks_cli/k8s/configmap_builder.rb, line 8
def build(node_arns, users)
  cm = Kubeclient::Resource.new
  cm.metadata={}
  cm.metadata.name = "aws-auth"
  cm.metadata.namespace = "kube-system"
  cm.data = {}
  cm.data.mapRoles = map_roles(node_arns)
  cm.data.mapUsers = map_users(users) if users && !users.empty?
  cm
end
map_role(stack_arn) click to toggle source
# File lib/eks_cli/k8s/configmap_builder.rb, line 27
def map_role(stack_arn)
  to_role_obj(stack_arn, "system:node:{{EC2PrivateDNSName}}", ["system:bootstrappers", "system:nodes"])
end
map_roles(node_arns) click to toggle source
# File lib/eks_cli/k8s/configmap_builder.rb, line 19
def map_roles(node_arns)
  node_arns.map {|a| map_role(a)}.to_yaml.sub("---\n","")
end
map_users(users) click to toggle source
# File lib/eks_cli/k8s/configmap_builder.rb, line 23
def map_users(users)
  users.map {|arn, attrs| to_user_obj(arn, attrs["username"], attrs["groups"]) }.to_yaml.sub("---\n","")
end
to_auth_obj(type, arn, username, groups) click to toggle source
# File lib/eks_cli/k8s/configmap_builder.rb, line 31
def to_auth_obj(type, arn, username, groups)
  {"#{type}arn" => arn,
   "username" => username,
   "groups" => groups}
end
to_role_obj(arn, username, groups) click to toggle source
# File lib/eks_cli/k8s/configmap_builder.rb, line 37
def to_role_obj(arn, username, groups)
  to_auth_obj("role", arn ,username, groups)
end
to_user_obj(arn, username, groups) click to toggle source
# File lib/eks_cli/k8s/configmap_builder.rb, line 41
def to_user_obj(arn, username, groups)
  to_auth_obj("user", arn ,username, groups)
end