Class: EksCli::K8s::ConfigmapBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/eks_cli/k8s/configmap_builder.rb

Class Method Summary collapse

Class Method Details

.build(node_arns, users) ⇒ Object



8
9
10
11
12
13
14
15
16
17
# File 'lib/eks_cli/k8s/configmap_builder.rb', line 8

def build(node_arns, users)
  cm = Kubeclient::Resource.new
  cm.={}
  cm..name = "aws-auth"
  cm..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) ⇒ Object



27
28
29
# 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) ⇒ Object



19
20
21
# 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) ⇒ Object



23
24
25
# 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) ⇒ Object



31
32
33
34
35
# 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) ⇒ Object



37
38
39
# 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) ⇒ Object



41
42
43
# 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