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